分享

Excel函数循环解决大问题:如何统计每月明星产品 - 继续讨论BYROW/BYCOL

 ExcelEasy 2022-08-20 发布于北京

这次,我们继续讨论BYROW和BYCOL函数。

统计每月明星产品

所谓明星产品就是每月中所有达标的产品:

例如,如果将目标定为4000,所有超过4000的都属于明星产品。

从大的概念上,这个问题跟判断每月是否达标好像是类似的,都是判断每月的数量。

在筛选达标月份时,我们使用了FILTER函数和BYCOL函数的结合:

=FILTER(C2:N2,BYCOL(C3:N16,LAMBDA(c,SUM(c)))>C20)

但是,这里的问题却是截然不同的。

因为,我们需要找多种产品,并且连接成为一个字符串返回:

a,c,d,i,j,n

所以,我们需要换一个思路。

如果我们将目标放在一列,比如,1月:

显然,我们可以通过筛选得到所有达标产品,

=FILTER(B3:C16,C3:C16>C19)

这个公式也可以写成:

=FILTER(B3:B16,C3:C16>C19)

就可以得到产品名称了。

将这个公式与TEXTJOIN函数结合使用:

=TEXTJOIN(",",TRUE,FILTER(B3:B16,C3:C16>C19))

这是对于一列的情况,对于多列的情况呢?对于多列,当然要逐列完成了。而逐列完成就需要BYCOL函数出马了。

=BYCOL(   C3:N16,   LAMBDA(c,      TEXTJOIN(",", TRUE,          FILTER(B3:B16, c>C19)      )   ))

这就是BYCOL函数的本意。其中LAMBDA函数中的c就是数据中的每一列。

各产品销量最大的月份

将问题转个90度😀,看看如何得到各产品销量最大的月份:

我们可以进行同样的分析:

我们肯定可以找出每行当中销量最大的月份:

=FILTER(C2:N2,C3:N3=MAX(C3:N3))

那么只要通过BYROW函数逐行循环,然后将上面公式中的C3:N3用循环变量r替换即可:

=BYROW(C3:N16,LAMBDA(r,FILTER(C2:N2,r=MAX(r))))

一切都是那么简单!

详细解释请看视频

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多