[英]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的方式不同。
COUNTA 計算數據集中的所有值,包括出現多次的值和文本值(包括零長度字符串和空格)。
這意味着“使[單元格]完全為空”的唯一方法是刪除全部內容、公式和所有內容。 但不要害怕...
可以想像,你應該能夠做到這一點=COUNTIF(A3:A8,"<>"&"")
但谷歌電子表格不支持不等於運營商在COUNTIF函數根據這些論壇:1 ,2 ,3
一種解決方法是根據條件創建一個真值或假數組,並使用 SUMPRODUCT 來計算真值,如下所示:
=SUMPRODUCT((A3:A8<>"")*1)
您可以采用的另一種選擇是編寫自定義函數並將其添加到 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.