【问题标题】:Automatic copying of unique column values自动复制唯一列值
【发布时间】:2020-02-27 14:48:44
【问题描述】:

在表 1 的 B 列,我有以下信息:

我有多次 1-11-2019,下一次是 2-11-2019。

我希望在 2019 年 1 月 11 日的第 2 页的 A 列中出现一次,并在其下方没有空白 2019 年 2 月 11 日。

例子:

Currently:
1-11-2019
1-11-2019
1-11-2019
1-11-2019
1-11-2019
2-11-2019

And it needs to be:
1-11-2019
2-11-2019 
(In other sheet without blanks)

【问题讨论】:

  • 您可以将数据复制到新工作表中,然后单击功能区中的“数据”选项卡,并在选择第一列时单击“删除重复项”。
  • 所以你想删除重复项?您能否包含您尝试过的代码并告诉我们您遇到的问题
  • 感谢到目前为止的帮助。到目前为止,我还没有代码,我已经使用了数据并删除了重复的数据,但这并没有给我自动执行此操作的机会。如果可能的话,我确实想删除重复项并将它们放在另一张纸上,它们之间没有空格

标签: excel vba excel-formula excel-2010


【解决方案1】:

这条路有更多通往罗马的路,但你可以试试:

Sub RemDups()

Dim lr As Long
Dim arr As Variant

With Sheet1 'Change according to your sheet's codename
    lr = .Cells(.Rows.Count, 2).End(xlUp).Row
    arr = .Range("B1:B" & lr)
End With

With Sheet2 'Change according to your sheet's codename
    .Range("A1:A" & lr).Value = arr
    .Range("A1:A" & lr).RemoveDuplicates Columns:=Array(1), Header:=xlGuess
    .Range("A1:A" & lr).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlShiftUp
End With

End Sub

【讨论】:

    【解决方案2】:

    要使其“自动”,您可以使用公式。 确保公式中的范围引用略大于日期表的大小,并更改工作表引用以适合

    =IFERROR(AGGREGATE(15,6,1/(Sheet9!$A2:$A100<>Sheet9!$A3:$A101)*Sheet9!$A2:$A100,ROWS($1:1)),"")
    

    确保范围大小相同并且日期已排序,除非正在测试的日期不等于下一行的日期,否则我们会返回 DIV/0 错误。如果是这种情况,我们返回日期,使用AGGREGATE 函数忽略错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 2019-08-26
      • 1970-01-01
      • 2015-02-12
      相关资源
      最近更新 更多