Excel:SUMIF取决于字段中的数字

时间:2009-12-01 00:02:42

标签: excel split

大家好吧

更新

你知道吗,我应该让你知道我实际上是想用数字而不是字母表来做这件事。例如,我有一个像225566这样的值的字段,我试图找出其中有55个字段。直到现在我才意识到这可能会产生巨大的差异

  

ColumnA | ColumnB |
  225566 | 2
  125589 | 3
  95543 | 2

(以下是我先问及后来发现我没有问正确的问题。) *假设我有一张桌子

  

ColumnA | ColumnB |
  AABBC | 2
  AADDC | 3
  ZZBBC | 2

     

现在我怎样才能为那些列A中有BB字段的行获取SUMIF?假设有数百行。我意识到我必须从文本到列的方式从概念上借用一些东西。但我想知道是否有人会知道如何做到这一点。非常感谢。*

4 个答案:

答案 0 :(得分:2)

由于您尝试对数字执行此操作,因此您需要使用数组公式。

如果您的测试值在A3:A5中,并且您的总和值在B3:B5中,则可以使用:

=SUM( IF(ISERROR(FIND("55", TEXT(A3:A5,"#"))), 0, 1) * B3:B5 )

输入数组公式时,请使用Ctrl-Shift-Enter而不是按Enter键。

它将和值的乘积与IF()语句中的0或1相加,后者测试每个测试值在转换为文本后是否包含“55”。

答案 1 :(得分:2)

我认为你需要一个矩阵/数组公式来做到这一点:

{= SUM(IF(ISERROR(芬登( “55”; A2:A4; 1)); 0; 1))}

奇怪的brakets {}表示它是一个矩阵公式,你可以通过在编辑公式时按SHIFT + CTRL + RETURN而不是Return来获得它们。

此公式将在A2:A4范围内循环,检查内部是否找到“55”,如果是,则在总和中加1。

Google数组/矩阵公式,因为它们不能自我解释。

最佳

答案 2 :(得分:1)

在Excel 2003和2007(可能是早期版本,我无法测试)中,您可以在匹配中使用*作为通配符。例如,将样本数据集C1转换为

=SUMIF(A1:A3,"*BB*",B1:B3)

你应该看到值4。

答案 3 :(得分:0)

创建第3列(ColumnC)并将此公式放入其中:

=Text(A2,0)

向下拖动该列以完成列。这会将值格式化为文本。接下来,使用SUMIF作为DocMax解释,但使用不同的列:

=SUMIF(C1:C3,"*BB*",B1:B3)

执行此操作的原因是,在使用Text Number的{​​{1}}比较时,您需要读取*BB*值,而不是SUMIF值。好问题。