簡體   English   中英

COUNTA 在新的 Google 表格中沒有按我的預期工作

[英]COUNTA not working as I expect in new Google Sheets

我正在使用命令=COUNTA(I31:I)來計算列中的所有非空單元格。 列中的單元格包含以下代碼行:

=IF(ISNUMBER(D31), "X", "")

結果是單元格要么是空字符串(不添加任何內容的行"" )或包含X

現在的問題是COUNTA計算此過程后的所有單元格,無論是否為空。 如果我刪除長命令行,單元格不會被計算在內,它工作正常。 所以這個長命令行向單元格添加了一些東西,所以它看起來不是空的,即使它看起來是空的。

那是什么的任何線索? 我的猜測是我應該使用某種Null運算符而不是""來向單元格添加任何內容。

注意:出於某種原因,這似乎適用於我以前版本的 Google 電子表格。

作為一種潛在的解決方法,我可以通過使用=COUNTIF(I31:I;"X")專門檢查x來替換=COUNTA(I31:I) =COUNTIF(I31:I;"X") 但我仍然對 COUNTA 的問題感到好奇。

如果事實證明我的單元格對於此命令來說不夠“足夠”,那么我該如何使它們完全為空?

另請參閱:計算非空值的行


不幸的是,這是 Google設計的功能
雖然我不確定為什么它與Excel 計算 COUNTA的方式不同。

根據COUNTAGoogle 電子表格文檔

COUNTA 計算數據集中的所有值,包括出現多次的值和文本值(包括零長度字符串和空格)。

這意味着“使[單元格]完全為空”的唯一方法是刪除全部內容、公式和所有內容。 但不要害怕...

一些解決方法:

  1. 可以想像,你應該能夠做到這一點=COUNTIF(A3:A8,"<>"&"")但谷歌電子表格不支持不等於運營商在COUNTIF函數根據這些論壇:12 ,3

  2. 一種解決方法是根據條件創建一個真值或假數組,並使用 SUMPRODUCT 來計算真值,如下所示:

     =SUMPRODUCT((A3:A8<>"")*1)
  3. 您可以采用的另一種選擇是編寫自定義函數並將其添加到 Drive。
    這樣做實際上很容易。 轉到“工具”>“腳本編輯器”並添加以下腳本:

     /** * Works like COUNTA except does not include null strings * * @param {cellRange} myArray The value or range to consider when counting. * @return Returns the a count of the number of values in a dataset. * @customfunction */ function CountNotBlank(myArray) { var output = 0; for (i = 0; i < myArray.length; i++) { if (myArray[i] != "") { output += 1 } } return output; }

    然后像這樣使用:

     =CountNotBlank(I31:I)

我會嘗試: =IF(ISNUMBER(D31), "X", iferror(1/0))

我被告知 iferror(1/0) 根本不返回任何內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM