具有多个标准的INDEX / MATCH

时间:2014-12-17 05:36:37

标签: excel indexing excel-formula match unique

需要Excel公式的帮助。

我正在尝试获取范围的摘要。我一直在使用Match,Index,Countif函数,可以创建一个唯一日期列表,然后使用vlookup返回人名。

我需要一些东西来考虑人名,所以如果两个人出现相同的日期,它会在输出中显示为2个不同的行。

请参阅下表 - A& B是输入,D& E是我目前可以得到的,G& H是我想要的输出。

提前致谢。

       A        B       C       D       E      F     G         H
1   13/01/15  RYAN           13/01/15  RYAN        13/01/15   RYAN
2   13/01/15  RYAN           14/01/15  RYAN        14/01/15   RYAN
3   14/01/15  RYAN           15/01/15  RYAN        14/01/15   FRANK
4   14/01/15  RYAN                                 15/01/15   RYAN
5   14/01/15  RYAN
6   14/01/15  RYAN
7   14/01/15  FRANK
8   14/01/15  FRANK
9   14/01/15  FRANK
10  15/01/15  RYAN
11  15/01/15  RYAN

我自学过Excel的所有知识感谢stackoverflow等论坛所以非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

实现这一目标的最简单方法是使用数据透视表。向列A和B添加标签(比如日期和名称),然后选择A:B,INSERT,Tables - 数据透视表,选择现有工作表或新工作表中的位置,然后将日期和名称(下方)拖到ROWS中。

根据需要重新格式化。

答案 1 :(得分:1)

我喜欢的数组公式的样式要求在第一个公式的正上方有一个未使用的单元格以避免循环引用。此未使用的单元格可用作列标题标签。

D2:E2中使用的数组公式¹是

=IFERROR(INDEX(A:A, MATCH(0, COUNTIFS(D$1:D1,A$1:INDEX(A:A, MATCH(1E+99, A:A))&"",
                                      E$1:E1,B$1:INDEX(B:B, MATCH(1E+99, A:A))&""), 0)), "")
=IFERROR(INDEX(B:B, MATCH(0, COUNTIFS(D$1:D1,A$1:INDEX(A:A, MATCH(1E+99, A:A))&"",
                                      E$1:E1,B$1:INDEX(B:B, MATCH(1E+99, A:A))&""), 0)), "")

根据需要填写。这些数组公式的最活跃查找范围在包含A列中最后一个日期的行中动态截断,以将计算周期缩减到必要的最小值。

two_column_unique

我在示例数据列表的底部为Frank添加了一个额外的条目,以进一步演示双重唯一查找。

¹数组公式需要用 Ctrl + Shift + Enter↵完成。如果输入正确,Excel将公式包装在大括号中(例如 {} )。您不要自己键入大括号。一旦正确进入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。尝试并减少对更接近表示实际数据范围的范围的全列引用。数组公式以对数方式计算计算周期,因此将参考范围缩小到最小值是一种好习惯。有关详细信息,请参阅Guidelines and examples of array formulas

答案 2 :(得分:0)

使用辅助列可以在没有任何数组公式的情况下实现。我们的想法是首先得到日期和名称的串联,然后只得到列表中第一次出现的日期和名称的行号,得到那些没有重复的行号,最后从A:A获得这些行号的INDEXes和B:B。

enter image description here

公式:

D1:D13  =A1&B1
E1:E13  =IF($D1<>"",MATCH($D1,$D:$D,0),"empty")
F1      =MIN($E:$E)
F2:F13  =LARGE($E:$E,COUNTIF($E:$E,">"&$F1))
H1:H13  =INDEX($A:$A,$F1)
I1:I13  =INDEX($B:$B,$F1)