我希望识别具有相同"CustomerName""ZipCode"和"DOB"的重复项,并仅保留具有最早"Date"的记录。
例如,在下面,我想删除第二个John Smith记录,因为它是较新的记录。
| 交易ID|日期|客户名称|邮政编码|出生日期|电子邮件|
| - ------|- ------|- ------|- ------|- ------|- ------|
| 5X42|2018年4月13日|约翰·史密斯|小行星90210|1987年11月23日|www.example.comjohnsmith@gmail.com|
| 7年5次|2021年1月27日|约翰·史密斯|小行星90210|1987年11月23日|www.example.comjohnsmith@gmail.com|
| 28N2|2020年11月17日|玛丽·琼斯|小行星56451|1991年5月16日|www.example.commaryjones@gmail.com|
我曾尝试使用MAXIFS(),但运气有限。
2条答案
按热度按时间q8l4jmvw1#
您可以通过按同一组中的Date列进行排名来实现,其中组由具有相同主键的行表示。在您的情况下,是以下列的组合:* * 客户名称**、邮政编码和出生日期。您可以在单元格
A6
中使用以下公式:下面是输出:
名称
rnk
对同一组中的每个元素进行排序,将值1
分配给最早的日期。这种方法不需要对数据进行排序,SUM
计算可以确保这一点。因此,输出与输入的顺序相同,只是删除了重复项。_
)不能出现在日期或邮政编码中,因此串联(以构建主键的方式)不会有误报的风险。请查看@JvdV对此问题的回答的注解部分:Finding pairs of cells in two columns。为了好玩,我们可以避免使用连接,并保持相同的方法,通过MMULT
来标识每行的组(grs
),其中grId
是组ID,在我们的情况下,我们只有1
、2
。注意,这种方法不需要对输入数据进行排序。
vnjpjtjt2#
基于多列删除重复项
要点
Head
)和数据(Data
)。rSeq
)中的升序整数序列。Sorted
)对其进行排序。uData
)中的唯一列。jData
)中连接的唯一列。rIndexes
)。rData
)。Head
)。