VLOOKUP的COUNTIFS

时间:2015-08-05 16:06:16

标签: excel excel-formula

希望这个头痛可以得到解决。我目前正在尝试使用多个条件来查找将执行vlookup的函数。类似于COUNTIFS函数的工作方式或数据透视表的函数版本。它可能与数组函数有关,但我无法弄明白。我认为描述我要做的事情的最好方法是举个例子:

Report Name        User Name      Report Category
Report 1           John Smith     Sales
Report 1           Jack Black     Sales
Report 1           Connie Rae     Sales
Report 1           Brain Bonds    Sales
Report 2           John Smith     Sales
Report 2           Connie Rae     Sales
Report 3           Jack Black     Inventory

该功能的目标是能够将John Smith作为一个标准,Sales作为另一个标准,并记录他使用的报告。输出将在不同的工作表上,如下所示:

User              Report Name    Report Category
John Smith        Report 1       Sales
                  Report 2       Sales

Connie Rae        Report 1       Sales
                  Report 2       Sales

Brian Bonds       Report 1       Sales

Jack Black        Report 1       Sales

我要键入的名称,该功能将位于“报告名称”列中。已经玩了一段时间的功能,但没有运气。想我在这里继续玩的时候试试。

谢谢, 那个新手

1 个答案:

答案 0 :(得分:1)

您要求的内容非常复杂,但如果您必须有公式...将此公式放在单元格 B2 中并将其复制下来。您需要使用 CTRL + SHIFT + ENTER

输入此公式
=IFERROR(LOOKUP(SMALL(IF(LOOKUP(REPT("Z",255),$A$2:INDEX(A:A,ROWS(A$1:A2)))=Sheet1!$B$2:INDEX(Sheet1!B:B,COUNTA(Sheet1!B:B)),IF(C2=Sheet1!$C$2:INDEX(Sheet1!C:C,COUNTA(Sheet1!C:C)),ROW(Sheet1!$A$2:INDEX(Sheet1!A:A,COUNTA(Sheet1!A:A)))-ROW(Sheet1!$A$2)+1)),COUNTIF(INDIRECT(ADDRESS(LOOKUP(9.99999999999999E+307,MATCH(A$1:A2,A$1:A2,0)),COLUMN()+1)&":"&ADDRESS(ROWS(A$1:A2),COLUMN()+1)),C2)),ROW(Sheet1!$A$2:INDEX(Sheet1!A:A,COUNTA(Sheet1!A:A)))-ROW(Sheet1!$A$2)+1,Sheet1!$A$2:INDEX(Sheet1!A:A,COUNTA(Sheet1!A:A))),"")

此公式假设两个工作表上的第一个标题位于单元格 A1 中,而两个工作表上的最后一个(第三个)标题位于单元格 C1 中。此外,公式引用“Sheet1”,因此您需要将其更改为实际的工作表名称。您可以使用下面的图像来排列公式:

enter image description here

enter image description here

有几点需要指出:

  1. 公式在引用数据表(Sheet1)时使用动态范围,这意味着您可以继续向表中添加数据。但是,您需要在用户表上重新构建表(带公式的工作表)作为数据添加。

  2. 该公式考虑到用户可能有多个报告类别(销售,库存等)。

  3. 请告诉我这是否适合您,如果您需要我调整任何内容。