4
Contract No Price
D/019/09    17.85
D/019/09    17.85
D/019/09    17.85
D/019/09    17.85
D/023/09    17.85
D/023/09    17.85
D/026/09    0
D/026/09    0
D/038/11    20.6
D/038/11    20.6
D/038/11    20.6

以上是一个示例数据系列......我想只保留每个唯一合同编号的最后一次出现。在上面的示例中,我只想保留 D/023/09 17.85、D/026/09 0 和 D/038/11 20.6。所以应该只有 3 个唯一值。最有效的方法是什么?

4

3 回答 3

1

除了我的评论之外,还有另一种方式,它不需要对您的数据进行排序。参见示例D/019/09

=IF(COUNTIF($A2:$A$13,A2)>1,0,B2)

在此处输入图像描述

于 2013-04-18T07:33:09.553 回答
0

这里不需要 vba ... 添加列 C 并将其命名为“检查”。在单元格 C2 中插入以下公式:

=if(A2<>A3,1,0)

比复制该公式直到您的数据范围结束。接下来在 C 列中为 0 应用过滤器。删除所有行就可以了。

您之前的工作表:

在此处输入图像描述

您的工作表之后:

在此处输入图像描述

于 2013-04-18T07:23:22.367 回答
0

试试下面的代码。使用 VBA

在此处输入图像描述

Sub sample()

    Dim lastRow As Long, j As Long
    lastRow = Range("A65000").End(xlUp).Row

    j = 1
    For i = lastRow To 2 Step -1
        If Cells(i, 1).Value <> Cells(i + 1, 1) Then
            Cells(i, 1).Copy Cells(j, 3)
            Cells(i, 1).Offset(0, 1).Copy Cells(j, 4)
            j = j + 1
        End If
    Next
End Sub
于 2013-04-18T07:25:59.203 回答