按日期和计数的最后状态

时间:2015-09-17 15:13:46

标签: excel excel-2010 pivot-table

我想从下面给出的示例数据中按日期提取项目的最后状态: http://i.stack.imgur.com/T4I5W.png

我想要以下结果: http://i.stack.imgur.com/xDF55.png

可以使用公式或数据透视表来实现吗?

2 个答案:

答案 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))

公式中的范围应根据需要进行调整,无需指向工作表中的所有行。