在符合条件的Excel表中返回记录

时间:2016-08-23 13:58:16

标签: excel pivot-table

我在Excel表格中有一个数据集,如下所示:

   ID       Date          BMI
-------  -------------- ---------
1        10/5/1984         35
1        10/5/1985         40
1        10/5/1986         45
2        10/5/1984         28
2        10/5/1985         32
3        10/5/1984         22

我想建立一个列表,在第一次访问时输出每个唯一ID及其BMI。我希望它与min(日期)有关但我无法使它工作。 我想我希望结果如下:

ID       BMI at First Visit
-------  --------------
1        35
2        28
3        22

非常新,如果我需要提供更多信息,请告诉我们,谢谢!

2 个答案:

答案 0 :(得分:0)

您将需要两个数组公式,一个用于获取唯一列表,第二个用于获取相应的BMI:

要获取ID,请将其放在F列的第二行:

=IFERROR(INDEX($A$2:$A$7,MATCH(TRUE,(COUNTIF($F$1:$F1,$A$2:$A$7)=0),0)),"")

退出编辑模式时,按Ctrl-Shift-Enter确认。如果操作正确,Excel会在公式周围放置{}。然后复制,直到你得到空白。

enter image description here

然后使用BMI的数组公式引用该列。把它放在G2:

=IFERROR(INDEX($C$2:$C$7,MATCH(MIN(IF($A$2:$A$7=F2,$B$2:$B$7)),IF($A$2:$A$7=F2,$B$2:$B$7),0)),"")

退出编辑模式时,按Ctrl-Shift-Enter确认。如果操作正确,Excel会在公式周围放置{}。然后复制,直到你得到空白。

enter image description here

答案 1 :(得分:0)

或者,您可以在Date列上对数据进行排序,然后在每个ID上执行VLOOKUP或INDEX / MATCH,如下所示: enter image description here

请注意,数据透视表的唯一用途是生成一个方便的不同ID列表,以及第一次访问的相关日期。由于Table按日期排序,所以真正的工作正在完成...... INDEX / MATCH公式只返回它在该排序列表中找到的第一条记录。

我在以下SO答案中进一步阐述了这种方法: Select Newest Record and Create New Table of Unique Values in Excel

在那个答案中,我再进一步,创建一个“Slaved”表,它位于我的查找公式所在的数据透视表旁边。此从属表自动扩展或与数据透视表一起收缩。值得一看,如果我自己这么说的话。