2016-07-06 97 views
-1

根据存储在另一个参数中的参数,我需要计算特定范围的单元格(包含字符串或数字)中给定值的所有出现次数细胞。计算特定范围内的值的发生(Excel)(无VBA)

我准备了一个简单的Excel表格作为例子(参见附图):假设我想要计算BASE“100”的VALUE“4”的所有出现次数。结果应该是:2(C4 + C5)。

Attached image

我试图用COUNTIFS和查找功能,但没有结果。前者只考虑精确值(因此单元格C5中的4将被忽略),而我似乎无法向后者添加另一个条件 - BASE列。

事实是我需要用公式解决这个问题,没有编程。

在此先感谢您的帮助!

+0

使用带有通配符的countifs。 –

+0

嗨@ScottCraner感谢您的回复!我考虑过这种情况,但在这种情况下只考虑C1,C3和C5单元。 –

+1

你是对的,看到我的答案在下面。下一次,请将数据直接粘贴到帖子中而不是图片上,这样我们就不需要重新输入您已输入的内容。 –

回答

0

使用SUMPRODUCT:

=SUMPRODUCT(($B$2:$B$10=100)*(ISNUMBER(SEARCH(4,$C$2:$C$10)))) 

enter image description here

0

有一对夫妇的其他方法,简单的一个就是加入其中确定了你比赛的另一列,然后让你的计算了笔结果该列。

Solution image

所以我们把我们要在一些参考单元找到值,则BASE比赛去的是G2,和我们正在寻找的价值远远在G3。

在列d我们把在公式中D2: “= IF(B2 = $ G $ 2,IF(ISERR(SEARCH($ G $ 3 C2)),0,1),0)”

返回0,如果BASE的比赛,我们可以找到值的至少一个occurent

  • B2 = $ G $ 2 - 难道基列匹配,我们正在寻找
  • ISERR(SEARCH($ G的BASE $ 3,C2)) - 搜索VALUE是否返回错误(如果是,我们知道VALUE不存在)

将此公式复制到D列中的所有单元格,然后您可以使用简单的SUM(D:D)来计算满足条件的出现次数。


整洁但稍微复杂的替代方法是使用数组公式来计算匹配,并在一个公式中进行计数。这看起来像这样:

“{= SUM(IF(B:B = $ G $ 2,IF(ISERR(SEARCH($ G $ 3,C:C)),0,1)))}”

与D列中的公式几乎相同,但现在我们用B:B和C:C代替B2/C2等,并将SUM粘在整个事物上。如果您使用Ctrl + Shift + Enter完成编辑,而不是仅输入,则会使其成为数组公式。

Microsoft Array Formula Guidelines

NB:这不会在单个VALUE细胞计数的4多次出现。

p.s.假设你希望它在这种情况下实际返回3(你错过了C7中的4)