Excel VLookup基于条件的唯一N值

时间:2018-06-19 18:24:40

标签: excel vlookup

我有一个这样构成的电子表格(还有与此相关的其他财务数据,但我只会显示与此问题相关的相关数据)

A   B   
ID  Year
1   2018
1   2018
1   2019
2   2018
3   2019
4   2018
4   2019
5   2018
4   2018
4   2019
6   2018
7   2019

在另一个电子表格中,我试图提取每个ID的前2个唯一年份。例如:ID 1拥有3条记录,分别是2018年和2019年两次,因此我想分别为ID 1和2018获得2019年和2019年。最终结果应该像这样,将公式放在1年和2年列中。

A           B       C
ID          Year 1  Year 2
1           2018    2019
2           2018
3           2019
4           2018    2019
5           2018
6           2018
7           2019

我一直无法使年份值唯一。我几乎有使用SMALL和LARGE函数的解决方案:

=SMALL(IF($A$2:$A$14 = A2,$B$2:$B$14),1)

我最终两次拉到2018年,因为它多次出现。如果有3年,这也是不可行的,因为我需要第2个。如何更改它以使其与众不同,以便可以相应地查找第1个和第2个值?

1 个答案:

答案 0 :(得分:1)

将其放置在B2中,并复制到一栏内并向下移动:

=IFERROR(AGGREGATE(15,6,Sheet1!$B$2:$B$13/((Sheet1!$A$2:$A$13=$A2)*(Sheet1!$B$2:$B$13<>A2)),1),"")

enter image description here


如果要保留SMALL(IF())的数组形式,则将此作为数组公式:

=IFERROR(SMALL(IF((Sheet1!$A$2:$A$13=$A2)*(Sheet1!$B$2:$B$13<>A2),Sheet1!$B$2:$B$13),1),"")

使用Ctrl-Shift-Enter确认。


如果您具有Office 365 Excel,则可以使用MINIFS()完成:

=MINIFS(Sheet1!$B:$B,Sheet1!$A:$A,$A2,Sheet1!$B:$B,"<>"&A2)