使用excel,如何计算包含“ true”或“ false”文本的列中的单元格数量?


10

我有一个电子表格,其中有一列单元格,每个单元格包含一个单词。我想数一些单词的出现。我可以对大多数单词使用COUNTIF函数,但是如果单词为“ true”或“ false”,则得到0。

        A         B 
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。


3
为了什么值得,我改变了主意。我猜想Excel公式可以被视为一种声明性编程语言。我不认为不使用VBA就是图灵完整的,但正则表达式也不是-SO社区认为这是可以接受的!
马丁·史密斯

1
坚持使用通配符解决方案。 =COUNTIF(A1:A5,"<truf")-COUNTIF(A1:A5,"<=trud")计算以“ true”或“ trud” 开头的每个字符串,例如“ trudge”。
斯科特,

1
杰伊,这个老问题又因新帖而突然出现。将答案嵌入问题中,使网站的预期结构混乱。您可以将答案部分移到答案吗?
fixer1234

Answers:


5

这应该工作:

=COUNTIF(A1:A5,"*true")

但是如果它在true之前也有任何文本,它将计算一个单元格。但这可能是您的粗略解决方法。


1
很好的建议-我没有考虑过通配符。第二个COUNTIF可用于过滤掉以“ true”结尾的单词。这个公式起作用:= COUNTIF(A1:A5,“ true”)-COUNTIF(A1:A5,“?true”)我会赞成这个答案,但是到目前为止,我是一个新手,只会做11个代表。(我不能从stackoverflow中转移任何内容:-(
Jay Elston,2010年

1
这是另一种变化:=COUNTIFS(A1:A5, "tru?", A1:A5, "*e")
斯科特,

7

Excel将COUNTIF公式的第二个参数解释为要执行的测试(例如,我们可以输入“> 3”,依此类推)。在这种情况下,Excel似乎会将“ true”和“ false”字符串转换为1和0。这与原始文本不匹配。

我知道这个问题的唯一解决方案是编写VBA代码进行计数。

如果可以接受更改输入数据,则将“ true”替换为“ T”,将“ false”替换为“ F”,然后更改为COUNTIF(A1:A5,"T")

当我绊倒时,我放弃了战斗并更改了输入数据。

PS:使用Excel 2003-相同的问题


我的临时解决方法是这样的-我插入了另一列,并使用了以下公式:IF(A1 =“ true”,“ T”,IF(A1 =“ false”,“ F”,“”))填充单元格。

嗯,我可以看到沮丧。COUNTIF(A2,">=trud")而且COUNTIF(A2,"<=truf")都可以。COUNTIF(A2,A2)而且任何可能的变体都没有!
马丁·史密斯

似乎=COUNTIF(G1,">=true")并且=COUNTIF(G1,"<=true") 对于从CHAR(1)到的任何可能的输入始终返回0,CHAR(255)因此无论将其转换为什么都似乎是无法比拟的。它看起来像数据库中的NULL比较。
马丁·史密斯

3

当Excel出现在公式中时,似乎将“ true / TRUE”和“ false / FALSE”视为魔术字符串-它们被视为函数: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提供了将比较结果与大于或小于true或false的字符串立即进行比较的想法。


0

我能够使用以下公式:

=COUNTIF(A1:A5,"=apples")
=COUNTIF(A1:A5,"=true")
=COUNTIF(A1:A5,"=false")
=COUNTIF(A1:A5,"=oranges")

阅读的内置帮助COUNTIF。他们更详细地描述了在条件下使用运算符的能力。


1
对我不起作用。返回0
马丁·史密斯

1
这对我也不起作用。
杰伊·埃尔斯顿

0

我对SUMPRODUCT公式有类似的问题。通过删除术语FALSE周围的引号,该公式使用MS EXCEL 2003产生了正确的结果。


1
我在问题中提到我尝试过= COUNTIF(A1:A5,TRUE),并且我使用的是2007年版本的Excel。
杰伊·埃尔斯顿

0

我可以使用以下公式解决问题:

= COUNTIF(A1:A5,“ T *”)。

"T*" 如果列中的条目仅限于一个“ T”字,则替换“ True”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.