从单一公式到复杂逻辑:通过实战案例揭示PMC面试中数据分析与解决问题的能力区分 No 289

古哥计划

优秀创作者

周末较为轻松,我们来尝试解答一道某工厂招聘PMC岗位的经典面试问题。这个问题基于以下情境:表1中包含一组数据,其中B列记录了不同的小组名称,且存在多个小组;C列列出了各个成员的姓名;D列则显示了每位成员的销售额。任务要求基于表1的数据源,找出每个小组销售额最高的成员姓名及其对应的销售额。同时,已附上了手工计算得到的结果。

与出题者交流后了解到:

能够仅通过一个公式简洁高效地解决问题的应聘者将被视为PMC经理级别的候选人;

能够以一个公式得出正确答案的应聘者会被视为PMC主管级别的候选人;

而需要用多个公式逐步分析才能完成解答的,则符合PMC专员级别的表现。

接下来,让我们模拟面试者按照这三个不同级别分别来解题。

题目如下图1所示:

图1

PMC专员级别

要求是每个小组对应的销售冠军,首先想到的就是把小组这列的数据进行去重,得到小组不重复的数据。

小组录入公式:

=UNIQUE(B3:B13),得到小组不重复数据

有了这个小组的数据后,可以通过返回一组给定条件的指定单元格的最大值函数MAXIFS来判断小组对应的最大值;

销售额录入公式:

=MAXIFS(D3:D13,B3:B13,F3#)

函数解释:

D3:D13 是求最大值的目标范围,即我们想要找到此范围内最大的数值。

B3:B13 是相关的条件范围,也就是说,我们将依据这一列的值来筛选要比较的最大值。

F3#对应的就是{"1组"; "2组"; "3组"} 是应用于条件范围的一个数组常量,表示我们要寻找的是在 B3:B13 区域内值为“1组”、“2组”或“3组”的行所对应的 D 列中的最大数值。也就是小组对应的最大销售额。

姓名录入公式:

=XLOOKUP(H3#,D3:D13,C3:C13)

函数释义:

通过销售额返回对应的小组姓名。如果有小时的销售额相同,有重复的风险。

效果如下图2所示:

图2

PMC主管级别

尽然需要一个公式完成,就用高阶公式REDUCE配合LAMBDA+VSTACK函数,用递归的方法来实现。在递归方法前,先写好第一个公式,也就是小组1的销售冠军的思路。

录入公式:

=TAKE(SORT(FILTER(B3:D13,B3:B13=B3),3,-1),1)

函数释义:

第一层:FILTER(B3:D13,B3:B13=B3):,这里筛选出B3,也就是1组对应的结果,并返回这些行的完整范围(包括 B、C 和 D 列的值)。

第二层:SORT(…,3,-1):

SORT 函数会对上述 FILTER 函数生成的数组进行排序。

参数3 表示按第3列(即 D 列)进行排序,因为Excel中的索引是从1开始的,所以3代表D列,也就销售额这一列;

参数-1 表示降序排列,也就是从高到低排序销售额的数值。

第三层:

TAKE(…,1):

TAKE 函数从排序后的数组中提取指定数量的元素。参数 1 表示只提取一个元素,即排好序之后 D 列数值最高的那一行。

得到如下图3的结果:

图3

有了这层就可以配合新函数进行递归了。B3就是1组,也就是Y值的第1个递归点,后续只需要把B3更改为Y就可以了;

录入以下函数:

=DROP(REDUCE("",UNIQUE(B3:B13),LAMBDA(X,Y,VSTACK(X,TAKE(SORT(FILTER(B3:D13,B3:B13=Y),3,-1),1)))),1)

函数释义:

递归的基础就是确定LAMBDA的定义的Y值,定义的X值可以固定用空值来替代,到最后用DROP支队。

UNIQUE(B3:B13),返回的是{"1组"; "2组"; "3组"},这样Y值就是这三个元素,用VSTACK递归合并X,Y就得到下图的结果,实在理解不了就是用以下固定格式:

=DROP(REDUCE("",F3#,LAMBDA(X,Y,VSTACK(X,

套上去即可。只需要把F3#,更改为对应的Y值就可以了。

效果如下图4所示:

图4

PMC经理级别

经理级别的思路就是不一样,利用筛选函数加上区域最大值函数一键搞定,不得不佩服这个思路,不仅仅实现了一键得到正确答案,而且公式的字符最短。

录入函数:

=FILTER(B3:D13,MAXIFS(D3:D13,B3:B13,B3:B13)=D3:D13)

函数释义:

第一层:MAXIFS(D3:D13, B3:B13, B3:B13),这里判断D列,也就是销售额这列,对应小组的最大值,因为这里的区域与条件使用的一样的条件,所以返回的结果就是符号B3/B4/B5……等最大值,也就是1组,1组,1组等对应的最大值,效果如下图5所示:

图5

有了这个结果后,配合筛选函数进行筛选,筛选函数的核心就是筛选条件,把筛选条件这样写:

=MAXIFS(D3:D13,B3:B13,B3:B13)=D3:D13

这样就得到筛选的结果,进而筛选第三层:

完成后效果如下图6所示:

最后总结:

在探讨一道PMC面试题目时,我们可以观察到一种现象,那就是不同的应试者可能会根据各自的理解和经验,构思并写出不尽相同的函数公式来解决问题。这种差异性不仅体现在使用的具体函数形式上,还包括了解题的整体思路和策略。

值得注意的是,我们并不能简单地断言采用多个公式解决就是次优选择,亦或是使用高阶函数就意味着解题方式更为高级。评判一个公式的好坏或者说解决方案是否出色,其核心在于能否以最高效的方式——即在保证计算准确性的同时尽可能减少字符数量,使公式更为简洁明了,更重要的是,所采用的公式必须具备较高的可读性和易理解性,这样才能更好地展示出答题者扎实的专业技能和出色的逻辑思维能力。

MRP多阶需求运算报表-WPS表格版本 (8 No 288

MRP多阶需求运算报表-WPS表格版本 (7) No 287

MRP多阶需求运算报表-WPS表格版本 (6) No 286

MRP多阶需求运算报表-WPS表格版本 (5) No 285

MRP多阶需求运算报表-WPS表格版本 (4) No 284

MRP多阶需求运算报表-WPS表格版本 (3) No 283

MRP多阶需求运算报表-WPS表格版本 (2) No 282

MRP多阶需求运算报表-WPS表格版本 (1) No 281

巧用WPS中UNIQUE与SUM函数,一步解决跨门店商品库存成本合计问题 No 280

利用XLOOKUP快速实现培训未参加人员的扣分 NO 279

278 挑战WPS AI 写出复杂的多层嵌套公式

277 超预期,原来WPS AI也可以写出复杂的多层嵌套公式

276 巧妙用VSTACK、HSTACK实现出货货柜合并的表格变形

275 录入查询产品型号的首字,提取对应首字相同的所有型号,并按销量降序

表格中录入简称查找包含全称的所有数据 No.274

如何快速提取不同单元格的内容,并汇总到一列 No 273

如何统计指定年和月后,汇总对应产品的销售数据 No272

表格中在一个单元格内有多个条件,如何快速求和 No271

WPS新函数:巧妙利用DROP 去重UNIQUE函数留下的“0” NO 270

快速计算出每名员工参与了几个项目No.269

统计每个城市的唯一商品明细No.268

WPS更新后的TAKE函数轻松实现动态求和 No 267

WPS 新函数 EXPAND 实现工单快速分拆 No 266

WPS 新函数 CHOOSECOLS 快速对齐错乱列 No 265

WPS新函数LET让公式的长度大大的简化了. No.264

自动分配客户对应业务的奖金No.263

浙江省
浏览 1040
6
89
分享
89 +1
46
6 +1
全部评论 46
 
学习
· 北京
回复
 
=MAXIFS(D3:D13,B3:B13,F3#),后面加的那个“#”是干啥的?还是搞错了?
· 河南省
回复
古哥计划

优秀创作者

动态数组引用一个区域
· 浙江省
回复
 
打卡
· 俄勒冈
回复
 
打卡
· 内蒙古
回复
 
打卡
· 广西
回复
 
学习了。
· 云南省
回复
 
打卡
· 河北省
回复
 
打卡
· 湖南省
回复
 
打卡
· 台湾省
回复
 
打卡
· 广东省
回复
 
· 浙江省
回复
 
姐弟俩

创作者俱乐部成员

打卡
· 广东省
回复
 
打卡
· 内蒙古
回复
 
打卡
· 广东省
回复
 
这个功能,用AI测试了下不太好用,有时会报错
· 广东省
回复
 
打个卡,新的知识又增加了!
· 黑龙江省
回复
 
打卡
· 浙江省
回复
 
打卡
· 河南省
回复
 
打卡
· 河北省
回复
 
打卡
· 天津
回复