Excell:一个值或另一个值出现在列中的次数

我在Excel上有一个列,我发现如何计算一个值出现在其中的次数(例如:列中有多less个1),但是我找不到如何计算一个OR值的次数出现在这个列(例如:有多less个单元格的值为1或2)。 这是我的一个例子:

A1 1;

A2 1; 2;

A3 1; 3;

A4 2;

A5 1;

A6 2; 3;

A7 1; 2;

  • 在这一列中,如果我想查找有多less个单元格,那么我会这样做:= COUNTIF(A1:A7,“ 1 ”),然后结果是:5

  • 但是如果我想知道有多less个单元格有数字1或数字2,我找不到怎么办,但是我知道结果是7(因为所有这些单元格都有数字1或数字2)我发现的唯一方法是计算数字1没有数字2的单元格的数量,并计算数字2没有数字1的单元格的数量,并添加总和那些与值为“ 1; 2 ”的单元格的数量,这给了我一个长的公式,例如:=(COUNTIF(A1:A7,“ 1 ”)-COUNTIFS(A1:A7,“ 1 ”,A1: A7,“ 2 ”))+(COUNTIF(A1:A7,“ 2 ”)-COUNTIFS(A1:A7,“ 2 ”,A1:A7,“ 1 ”))+ COUNTIF(A1:A7,“ 1; 2 “)

任何一个有一个更简单的公式? 如果有人能解决这个问题,非常感谢!

例如,我对你的公式,这部分有点困惑

=COUNTIFS(A1:A7,"1",A1:A7,"2")

…只能返回0,因为COUNTIFS在“AND”的基础上工作,同时没有一个单元可以同时为1和= 2

如果数据完全按照分号显示,那么肯定是这个公式

=COUNTIF(A1:A7,"1")

也会返回零,因为你的单元格值都不是1

你是否过度简化了你的问题的数据? 我不明白这个公式会给你7分的结果

尝试使用此公式来计算有多less个单元格包含1或2(或两者)

=SUMPRODUCT((ISNUMBER(FIND(1,A1:A7))+ISNUMBER(FIND(2,A1:A7))>0)+0)

如果它包含22或11,当然它也会计算一个单元格,在这种情况下是否要这样做?

你可以创build一个vba函数并引用它。

就像是

 Function MyOrTest(cell) If InStr(1, cell.Value, 1) Or InStr(1, cell.Value, 2) Then MyOrTest = 1 Else MyOrTest = 0 End If End Function 

您将需要将其添加到VBA中的新模块。 使用这将允许只是一个正常的总和function。