首页 > 解决方案 > Excel - 清理财务数据集以仅包含最新交易

问题描述

我有一个超过 30,000 行长、大约 30 列宽的数据集。它是按 Booking 分组的金融交易数据。例如,Booking 123ABC 可能有 3 笔交易 – 2 张发票和 1 笔退款。

我想要的是有一个“干净”的数据集,它只显示最后的发票交易。例如:

样本数据集

我只想要第三行(即 INV123-1),因为前两行是相互抵消的发票和退款。

我尝试创建一个基于预订和金额删除的宏,但最终删除了整个内容。请帮忙。示例数据集的链接如下:

https://drive.google.com/file/d/1eDNMwZE389_-kTnYSS_etgtFhofv-lKn/view?usp=sharing

标签: exceldata-cleaning

解决方案


使用正确的工作表和列尝试以下代码:

Sub Test()

Dim LastrowE As Long
Dim i As Long
Dim j As Long

With Sheet4

    LastrowE = .Range("E" & Rows.Count).End(xlUp).Row

    For i = LastrowE To 1 Step -1
        For j = LastrowE To 1 Step -1
            If (.Range("E" & i).Value = .Range("E" & j).Value) And ((.Range("E" & i).Offset(0, 4).Value) + (.Range("E" & j).Offset(0, 4).Value) = 0) Then
                Rows(i).Delete
                Rows(j).Delete
                Exit For
            End If
        Next j
    Next i

End With

End Sub

推荐阅读