0

我有一个非常大的 Excel 文档(20k 个条目),其中的数据类似于:

ARTICLE     TIME
article 1   1s
article 1   2s
article 2   1s
article 2   2s
article 2   3s
...

我需要从文章列中提取唯一值并将其相应的时间值放在一行中,如下所示:

ARTICLE     TIMES
article 1   1s  2s
article 2   1s  2s  3s
...

我尝试使用公式(索引、匹配、查找等),但没有得到任何正确的结果。

我怎样才能使用 VBA 做到这一点(也许?)谢谢。

4

2 回答 2

1

在 Before Click 事件中尝试以下代码:

cnt = 8
For i = 2 To 6
strg = strg & Cells(i, 2)
If Cells(i, 1) <> Cells(i + 1, 1) Then
Cells(cnt, 1) = Cells(i, 1)
Cells(cnt, 2) = strg
strg = ""
cnt = cnt + 1
End If
Next

时间值填充在每个文章的单个单元格中

于 2013-07-09T07:10:36.407 回答
0

这是一个不使用 VBA 的食谱

  1. 为每篇文章构建聚合时间

    ARTICLE   TIME    SAME                 TIMES
    article 1 1s      =if(A3=A2;"YES";"")  =B2
    article 1 2s      =if(A3=A2;"YES";"")  = if(A3=A2;Concatenate(B3;" ";D2);B3)
    article 1 3s      =if(A4=A3;"YES";"")  = if(A4=A3;Concatenate(B4;" ";D3);B4)
    article 2 1s      (extend the formulas down to the end of range)
    
  2. 创建一个副本,将 SAME 和 TIMES 中的公式替换为结果选择 C ​​和 D 列菜单 -> 复制选择 C ​​和 D 列 agin 菜单 -> 特殊粘贴;仅值

  3. 按“相同”对列表进行排序(这会将所有“是”放在一个块中)

  4. 删除所有 SAME="YES" 列

  5. 排序回升序的文章列表

  6. 删除“TIME”和“YES”列

完毕。

于 2013-07-09T06:43:55.020 回答