我有一张电子表格,其中有一列单元格,每个单元格包含一个单词。我想计算某些单词的出现次数。我可以对大多数单词使用 COUNTIF 函数,但如果单词为“真”或“假”,则结果为 0。
A 乙 1 苹果 2 2 真 0 3 假 0 4 橘子 1 5 苹果
在上面的电子表格中,我在单元格 B1、B2、B3 和 B4 中有以下公式:
=COUNTIF(A1:A5,"apples")
=COUNTIF(A1:A5,"true")
=COUNTIF(A1:A5,"false")
=COUNTIF(A1:A5,"oranges)
如你所见,我可以数苹果和橘子,但不能数真或假。我也试过这个:
=COUNTIF(A1:A5,TRUE)
但这也不起作用。
注意——我使用的是 Excel 2007。
答案1
这应该有效:
=COUNTIF(A1:A5,"*true")
尽管如果单元格在 true 之前有任何文本,它也会将其计入。但这对您来说可能是一种粗暴的解决方法。
答案2
Excel 将 COUNTIF 公式的第二个参数解释为要执行的测试(例如,我们可以输入“>3”等)。在这种情况下,Excel 似乎正在将“true”和“false”字符串转换为 1 和 0。这与原始文本不匹配。
我知道的解决这个问题的唯一方法是编写 VBA 代码来进行计数。
如果可以接受更改输入数据,则将“true”替换为“T”,将“false”替换为“F”,然后更改为COUNTIF(A1:A5,"T")
。
当我被这个问题绊倒时,我放弃了战斗并改变了输入数据。
PS:使用 Excel 2003 - 同样的问题
答案3
看起来,当“true/TRUE”和“false/FALSE”出现在公式中时,Excel 会将它们视为魔术字符串 - 它们被视为函数:TRUE() 和 FALSE(),而不是字符串。
如果您需要统计某一列中的真假,则使用“true”或“=true”作为条件将无法获得计数。您可以使用一些方法将真假作为单词进行统计。
Use a pair of COUNTIF functions. Either of the following works:
=COUNTIF(A1:A5,"*true")-COUNTIF(A1:A5,"*?true")
or
=COUNTIF(A1:A5,"<truf")-COUNTIF(A1:A5,"<=trud")
Create a new column with true converted to "T" and false converted to "F" using the formula:
=IF(A1="true","T",IF(A1="false","F",""))
Then trues and falses can be counted using:
=COUNTIF(A1:A5,"T")
=COUNTIF(A1:A5,"F")
Don't use "true" and "false" to begin with, use something else (such as T and F).
感谢 Sux2Lose 提出的通配符想法,以及 Martin Smith 提出的使用大于或小于真或假的字符串进行比较的想法。
答案4
我能够使用以下公式解决这个问题:
=COUNTIF(A1:A5,"T*")。
"T*"
如果列中的条目仅限于一个“T”字,则替换“True”。