美文网首页
如何动态显示金额的TOP 3,并把对应的产品名称合并显示在1个单

如何动态显示金额的TOP 3,并把对应的产品名称合并显示在1个单

作者: 甘彬 | 来源:发表于2022-07-11 09:37 被阅读0次

如果你想把EXCEL表格的金额列的前3名对应的产品名称合并起来,用顿号分隔开来,显示在一个单元格中,比如:

销售额最高的前3种产品分别是:A、B、C

你会用什么方法来完成这个需求,学员小C告诉我她的方法是按金额降序排列,再一个个手工复制粘贴合并到一个单元格。因为数据一直在变动,用这个方法实现起来会很麻烦,每次数据一更新就又要再重来一次。

想要实现小C的需求,最简单又一劳永逸的方法就是结合OFFICE 365的特色函数来实现。

接下来我以上方这张成绩表为例,来介绍相关的函数。

01 LARGE筛选第几个最大值

首先,用LARGE函数返回出成绩列中第3名的成绩。

LARGE函数语法是:LARGE(数据区域,第几个最大值)

本例中的公式是:=LARGE(B2:B11,3)

02 FILTER筛选符合条件的数据

知道了第3个最大值之后,我们就要筛选出来哪些成绩是大于并等于这个成绩的,这就需要用到Office 365的特色的筛选函数FILTER。

FILTER函数语法是:FILTER(数据区域,筛选条件)

比如我要筛选出来不及格的人员名单,我就可以这样来写公式:

=FILTER(A2:B11,B2:B11<60)

而我们需要筛选的是考试成绩的前3名,就需要把刚刚的LARGE函数嵌套在FILTER函数中。

=FILTER(A2:B11,B2:B11>=LARGE(B2:B11,3))


03 SORT按列排序

虽然已经得到了考试成绩的前3名人员名单,但是成绩列并没有由高到低排序,所以我们还需要再嵌套排序的SORT函数。

SORT函数语法是:SORT(数据区域,排序依据的行或列序号,1升序/-1降序)

本例中我们只需要在刚刚函数的前面增加SORT函数即可。

=SORT(FILTER(A2:B11,B2:B11>=LARGE(B2:B11,3)),2,-1)

04 TEXTJOINE文本合并

最后我们需要把前3名的姓名用顿号隔开,合并到一个单元格中。以往要实现这个需求,我们只能用&连接符一个一个单元格选中,才能进行合并,现在有了TEXTJOIN函数,一次就可以搞定了。

TEXTJOIN函数的语法是:TEXTJOIN(分隔符,TRUE/FALSE是否忽略空单元格,要合并的文本)

本例中的公式是:=TEXTJOIN("、",,D2:D4)

第2个参数默认是忽略空单元格,一般可以省略不写。

这样做好的前3名的名单,可以根据成绩的更新动态更新,比如我现在把第1个人黄建强的成绩修改为100,我一修改完黄建强的成绩,右侧的两个表格的结果就会动态更新。

到此,我们就实现了小C需要的动态显示金额的TOP 3,并把对应的产品名称合并显示在1个单元格中的需求。

到我们遇到一些复杂的公式计算的时候,不要想着一次性把所有的函数全部写出来。拆解需求,从最里层的需求写起,就像玩俄罗斯套娃一样,一层层往外嵌套,你会发现公式嵌套没有你想象中的那么复杂。

相关文章

网友评论

      本文标题:如何动态显示金额的TOP 3,并把对应的产品名称合并显示在1个单

      本文链接:https://www.haomeiwen.com/subject/gqtnbrtx.html