excel函数技巧:reduce+textjoin+average形成前三名均值新表格-趣帮office教程网

如图,A列至E列是源数据,记录每个酒店每个技师的成绩,要求技师总收入(科目A,B,C之和)都>=18的酒店里,总收入前3技师名单及其对应科目的平均收入,公式如下:

=REDUCE(A1:E1,UNIQUE(A2:A31),LAMBDA(x,y,LET(

sum,MMULT(C2:E31,SEQUENCE(3)^0),

fil,FILTER(HSTACK(A2:E31,sum),(sum>=18)*(A2:A31=y)),

array_match,ISNUMBER(XMATCH(INDEX(fil,,6),LARGE(INDEX(fil,,6),SEQUENCE(3)))),

name,TEXTJOIN(",",1,FILTER(INDEX(fil,,2),array_match)),

average_kemu,MAP({3,4,5},LAMBDA(x,AVERAGE(FILTER(INDEX(fil,,x),array_match)))),

VSTACK(x,HSTACK(y,name,average_kemu)))

))

公式思路:本例公式主要结构为reduce(vstack(hstack……思路是将想要的结果通过hstack函数整理成一行,再通过vstack函数汇总或者说堆叠成一个二维表。

公式特色:

1、mmult函数的使用,实现了简洁的二维表加法。

2、map函数的使用,实现了将三列的平均值合并到一条公式里进行计算。