我想从下面给出的示例数据中按日期提取项目的最后状态: http://i.stack.imgur.com/T4I5W.png
我想要以下结果: http://i.stack.imgur.com/xDF55.png
可以使用公式或数据透视表来实现吗?
答案 0 :(得分:0)
使用数据透视表,您可以轻松提取每个项目的最大日期。但状态将是有问题的。 因此,最好的方法是使用数据透视表。但是有3个步骤。
1)将您的项目列表复制到另一个工作表到第一列。 (我假设您的第一张纸是Sheet1,第二张是Sheet2)选择第二张纸中的整个列并删除重复。 (日期功能区 - >删除重复项)
2)找到每个项目的最大数据。 假设您的第一行是标题,因此在b列的第2行输入:
=max(if(Sheet1!b:b=b3,Sheet1!a:a,""))
请注意,这是一个数组公式,所以你必须使用ctrl + shift + enter
输入它现在将此公式拖到行尾
3)找到每个项目的最后状态
你必须做双重查找公式 在c2上输入:
=index(Sheet1!c:c,match(a2&b2,Sheet1!b:b&Sheet1!a:a,0),1)
同样,这是一个数组公式,所以你必须使用ctrl + shift + enter
输入它再次,将此公式拖到行尾。
答案 1 :(得分:0)
实际上,这只能通过公式和完成,而无需复制其他工作表中的数据。
假设您的数据在A1:C16
范围内(根据需要更改),您可以输入以下数组公式(按[Ctrl] + Shift] + [Enter]一起):
在E1
中输入“Item”,然后在E2
中输入此数组公式,然后向下复制到最后一条记录(此示例为E16
)< / em>的
=IFERROR(INDEX($B$2:$B$16,MATCH(0,COUNTIF(E$1:E1,$B$2:$B$16),0)*1),"")
在F1
中输入“日期”,然后在F2
中输入此数组公式,然后向下复制到最后一条记录(此示例为F16
)< / em>的
=IF($E2="","",MAX(IF($B$2:$B$16=E2,$A$2:$A$16,"")))
最后在G1
中输入“状态”,然后在G2
中输入此数组公式,然后向下复制到最后一条记录(此示例为G16
)
=IF($E2="","",INDEX($C$2:$C$16,MATCH($E2&$F2,$B$2:$B$16&$A$2:$A$16,0),1))
公式中的范围应根据需要进行调整,无需指向工作表中的所有行。