按组识别并输出第一个和最后一个记录

时间:2014-10-07 00:25:33

标签: excel excel-vba excel-formula vlookup worksheet-function vba

我有超过200万条记录/行数据需要分析。每行数据在A列中都有一个任务标识符,只有在新任务开始时才会更改。单个任务可以包含任意数量的记录(Excel中的行)。同一任务的行始终按时间顺序排列,从最旧到最新。

我的想法是循环使用col A中的唯一任务标识符来确定与每个任务对应的行。确定每个行的第一行和最后一行后,通过从该任务的最后一行的col C中的日期减去第一行数据的col B中的日期来计算任务的AGE。

每个任务的唯一标识符,开始日期,结束日期和已用时间应输出到工作簿中的另一个工作表。

我怎么能实现这个目标?

1 个答案:

答案 0 :(得分:0)

如果能够在任务中按日期排序并确保任何后续工作表在新任务中开始,并且每个工作表上的最后一个ColumnB和ColumnC值在下面的行中重复,则公式可能适合:

=IF(A1<>A2,A1&"|"&VLOOKUP(A1,A:B,2,0)&"|"&C1&"|"&B2-VLOOKUP(A1,A:B,2,0),"")  

使用公式输出显而易见的列进行过滤以排除空白,将内容复制到另一个工作表并使用“文本到列”进行解析,管道分隔并使用合适的格式。