摘要:如图,源文件为销售单据号、产品款式和销量,每个单据里面有多个款号,如何统计各款号所在订单中出现频次最高的其他款号,公式如下:
如图,源文件为销售单据号、产品款式和销量,每个单据里面有多个款号,如何统计各款号所在订单中出现频次最高的其他款号,公式如下:
=MAP(unique(B2:B1000),LAMBDA(x,LET(
#将所有的产品款式去重,并进行循环
a,FILTER(A:A,B:B=x),
#筛选出当前款式所涉及的所有单据号
b,FILTER(B:B,(B:Bx)*ISnumber(XMATCH(A:A,a)),"无"),
#根据单据号筛选出所有涉及的款式,但不包括当前的款式
c,GROUPBY(b,b,counta,0,0),
#统计出每个款式出现的次数
rr,TEXTJOIN(",",1,"("&x&")","("&TEXTJOIN(",",,FILTER(INDEX(c,,1),INDEX(c,,2)=MAX(INDEX(c,,2)),"无"))&")"))),
#筛选出最高次数并合并成字符字符串与当前款式并列
rr)
公式思路:通过款式调出所有相关单据号;再通过单据号找到所有的款式,并进行统计。
50勇士共有map、unique、lambda、filter、isnumber、xmatch、groupby、counta、textjoin、index10个函数参与。
来源:热腾白开