用于VLOOKUP的COUNTIFS

希望这个头痛能解决。 我目前正试图find一个函数,将使用多个条件做一个vlookup。 类似于COUNTFS函数的工作方式或数据透视表的函数版本。 这可能需要做一个数组函数,但我不能弄明白。 我认为描述我所要做的最好的方法是举一个例子:

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 

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

 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 

我将键入的名称和函数将在“报告名称”列中。 一直玩function一段时间,但没有任何运气。 我想在这里尝试,而我一直玩耍。

谢谢,那个新手

你在这里要求的是相当复杂的,但如果你必须有一个公式…把这个公式放在单元格B2中 ,并将其复制下来。 你将需要用CTRL + SHIFT + ENTERinput这个公式:

 =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” ,所以您需要将其更改为实际的工作表名称。 您可以使用下面的图片排列公式:

在这里输入图像说明

在这里输入图像描述

有几点需要指出:

  1. 该公式在引用数据表(Sheet1)时使用了dynamic范围,这意味着您可以继续向表中添加数据。但是,您将需要在用户表上重构表(工作表中包含公式)作为数据被添加。

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

让我知道这是否适合你,如果你需要我调整任何东西。