【问题标题】:Identify and output first and last records by group [closed]按组识别和输出第一条和最后一条记录[关闭]
【发布时间】:2014-10-07 00:25:32
【问题描述】:

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

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

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

我怎样才能做到这一点?

【问题讨论】:

  • 看起来像一个嵌套的Do Until 循环或其他类似的结构。如果不查看代码和数据示例,就无法为您提供帮助。
  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。另请参阅THIS
  • 拥有 200 万条记录,您将至少拥有两个工作表。确保您查看所有工作表中的类似任务,以便为每个任务获得准确的第一个和最后一个条目。你以前的努力太糟糕了,但通常,代码重写比编写更容易,所以我期待看到你以前努力的例子。

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


【解决方案1】:

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

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

对公式输出明显的列进行过滤以排除空白,将内容复制到另一张表并使用“文本到列”、管道分隔和合适的格式进行解析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    相关资源
    最近更新 更多