538掌握GROUPBY与XLOOKUP:实现精准数据筛选的秘诀

职场计划有古哥 2024-10-10 03:00:33

全文约2040字;

阅读时间:约6分钟;

听完时间:约12分钟;

某企业PMC部门的小张接到领导布置的一项任务,要求从《客户消费明细表》中提取每位客户的最后消费时间及对应购买的产品信息。由于该表中的记录没有遵循一定的规律,尤其是消费时间并非按照标准升序排列,且每位客户存在多条消费记录,因此在不使用表格函数的情况下找出每位客户的最新消费记录变得十分棘手。

案例分析

这是一个典型的数据清洗应用场景。为了完成领导布置的任务,首先需要对数据进行排序,排序依据是两个条件:首先是客户标识,其次是消费时间,且按照降序排列。这样做可以确保每个客户的最新消费记录位于其所有记录的最前面。

在完成排序后,接下来通过双条件查找与引用的方式,从《客户消费明细表》中筛选出每位客户去重后的信息,并提取出对应的最后一条消费记录及其购买的产品详情。整个处理过程主要包括以下几个步骤:数据排序、去除重复项、以及基于特定条件的信息检索与引用。

去重排序

在最新版本的Excel和WPS中,已经引入了聚合函数GROUPBY。因此,除了使用传统的UNIQUE去重函数、SORT排序函数以及XLOOKUP引用函数来解决这类问题外,利用GROUPBY函数可以更加高效地完成任务。在合适位置录入公式:

=GROUPBY(A2:A15,B2:B15,LAMBDA(X,TAKE(SORT(X),-1)),,0)

公式解释如下:

参数1: A2:A15 是行标签范围,这里指的是客户信息列,用于识别不同的客户并进行去重。

参数2: B2:B15 是值标签范围,这里是客户消费日期的信息列。这个参数将在LAMBDA函数中被定义为X。

参数3: 使用了一个复合函数TAKE(SORT(X), -1)。这部分首先对每个客户的消费日期进行排序,然后用TAKE函数选取排序后的最后一条记录,即最新的消费记录(通过设置参数为-1实现)。

这样,整个公式就能够帮助我们从数据集中提取出每位客户的最后一次消费时间。

消费记录

在提取每个客户的最后一次消费时间后,接下来的任务是确定这些消费记录中具体购买了哪些产品,例如{"牙签";"洗面奶";"花生酱"}等。这一步可以通过双条件查找来实现。请录入以下公式:

=XLOOKUP(E2:E6&F2:F6,A2:A15&B2:B15,C2:C15)

公式解释:

公式解释如下:

E2:E6 代表客户标识的范围。

F2:F6 代表已找到的每个客户的最后一次消费时间的范围。

A2:A15 是原始数据表中的客户标识列。

B2:B15 是原始数据表中的消费时间列。

C2:C15 是原始数据表中的产品信息列。

通过将E2:E6和F2:F6进行连接(使用&操作符),形成一个新的数组,该数组作为XLOOKUP函数的第一个参数。同样地,将A2:A15与B2:B15也进行连接,形成第二个参数,即查找范围。最后,C2:C15则是当匹配成功时返回的产品信息所在列。

这样,XLOOKUP函数就可以根据客户的标识和其对应的最后一次消费时间,从原始数据表中准确地查找出相应的消费产品信息。

公式合并

对于要求比较高的用户来说,可以用一个动态数组公式进行整合,在合适位置录入动态数组函数:

=LET(B,B2:B1500,C,C2:C1500,D,D2:D1500,A,GROUPBY(B,C,LAMBDA(X,TAKE(SORT(X),-1)),,0,,B<>""),HSTACK(A,XLOOKUP(INDEX(A,,1)&INDEX(A,,2),B&C,D)))

公式解释如下:

B 表示客户标识列(例如 B2:B1500)。

C 表示消费时间列(例如 C2:C1500)。

D 表示产品信息列(例如 D2:D1500)。

A 是通过 GROUPBY 函数生成的结果,该函数根据客户标识和消费时间进行分组,并对每个客户的消费时间进行降序排序,然后选取每组的最后一条记录(即最新的消费记录)。这里还添加了条件 B <> "" 以确保只有非空的客户标识被处理。

HSTACK 函数用于将两个数组水平合并:

第一个参数是 A,它包含了每个客户的最新消费时间和对应的客户标识。

第二个参数是 XLOOKUP 函数的结果,该函数查找由 INDEX(A, , 1) & INDEX(A, , 2) 组成的键(即客户标识与最后一次消费时间的组合),并在 B & C 中查找匹配项,最终返回 D 列中的相应产品信息。

这个综合公式的目的是在一个步骤中完成数据的去重、排序、查找和合并,从而高效地获取每个客户的最后一次消费记录及其购买的产品信息。

最后总结

通过以上步骤,小张能够有效地从《客户消费明细表》中提取出每位客户的最后消费时间及对应购买的产品信息。首先,通过对数据进行基于客户标识和消费时间的降序排序,确保了每个客户的最新消费记录处于最前位置。接着,利用Excel或WPS中的GROUPBY函数,实现了对每位客户的去重处理,并自动选取其最新的消费记录。

对于获取到的最后一次消费时间,采用XLOOKUP函数实现双条件匹配,准确找到相应的产品信息。最后,通过一个综合性的动态数组公式将整个过程简化,使得在单一操作下即可完成所有任务。这种方法不仅提高了工作效率,还减少了人为错误的可能性,为后续的数据分析提供了准确的基础。同时,这种处理方式也体现了数据分析中灵活运用函数的重要性,以及面对复杂数据清洗需求时的解决思路。

0 阅读:2

职场计划有古哥

简介:感谢大家的关注