Excel - 从VLOOKUP

时间:2016-01-22 16:32:36

标签: excel lookup countif

我不知道我是否会以错误的方式解决这个问题,但似乎应该很简单。 A列有一个名称列表。沿着每一行是几个“W”。另一个单独的字段有一个代表A列名称的下拉列表。我想计算与我选择的名称相对应的行中“W”的数量。我已经尝试过使用VLOOKUP和COUNTIF,但我无法弄清楚如何选择整个数组,然后挑出与我所选名称相匹配的一行。我可以使用一堆IF语句,但这太费时了,因为我手动将名称与行匹配(并且它不是未来证明)。

2 个答案:

答案 0 :(得分:1)

有几种方法可以先缩小&缩小范围。在您正在寻找的行上,之后您可以使用简单的COUNTIFS来检查该行中的W的数量。

一种方法是简单地使用INDIRECT,并动态创建行引用,如此[假设您的搜索单元格为C1]:

=COUNTIFS(INDIRECT(MATCH(C1,A:A,0)&":"&MATCH(C1,A:A,0)),"W")

首先使用MATCH找到合适的行,然后构建对该行的引用[例如" 24:24"],这将成为INDIRECT传递给COUNTIFS的行,后者将该行计为W' S。

对于INDIRECT的一次使用,INDIRECT的高计算成本不应成为问题。

另一种方法是指出数据可以包含的完整可能框[让我们假设最多只使用H列],然后使用INDEX给我们相应的行号,像这样:

=COUNTIFS(INDEX(A:H,MATCH(C1,A:A,0)),0,"W")

这再次使用MATCH查找包含在A列中的C1中找到的值的行。然后它从INDEX获取完整的可能框,并返回特定行中的所有列[注意告诉索引返回0表示column#实际上返回所有列而不是]。

其他方法也是可能的[例如OFFSET],但我相信这两种方法相当好。

答案 1 :(得分:0)

您可以使用“助手”列方法:

enter image description here

在帮助栏中:

=COUNTIF(B2:H2,"W")

然后在总计列中使用SUMIF():

=SUMIF($A$2:$A$9,K2,$I$2:$I$9)