凭什么让领导刮目相看?学会这个Excel函数就可以!
=MODE(B2:B11)=MODE.MULT(B2:B11)=IFERROR(INDEX(MODE.MULT(B$2:B$11),ROW(A1)),"")❶ MODE.MULT(B$2:B$11)返回「B2:B11」区域中出现次数最多的值组成的垂直数组;本示例中出现次数最多的是 1 和 2,所以返回值是数组{1;2};
❷ ROW(A1)是可变的,公式在 D2 单元格时,返回值是 1,当公式向下填充到 D3 单元格时,变为 ROW(A2),返回值是 2;
❸ 然后用 INDEX 函数,返回数组{1;2}中 ROW(A1)函数指定的位置的值:D2 单元格返回数值的第一个值,即是 1,D2 单元格返回数值的第二个值,即为 2;
❹ 最后用 IFERROR 函数屏蔽出现的错误值,如果有两个出现次数最多的数值,公式填充到第 2、第 3……第 n 行,也不会出现错误值。
=INDEX(B:B,MODE(MATCH(B3:B12,B:B,)))❶ 首先用 MATCH(B3:B12,B:B,)求出每个数据在 B 列第一次出现的位置,结果是{3;4;4;6;6;3;3;3;6;3};
❷ 再用 MODE({3;4;4;6;6;3;3;3;6;3})求得出现次数最多的数字位置是 3;
❸ 最后用 INDEX(B:B,3)重新转化,得到对应的文本「清远漂流」。
=IF(ISNA(MODE(B2:B11)),"有","无")❶ 当单元格区域「B2:B11」中没有重复值出现时,MODE(B2:B11)返回错误值#N/A;
❷ 然后用 ISNA 函数判断值是否为错误值;
❸ 最后用 IF 函数返回判断的结果。
=IF(D2,D2/INT(MODE(ROW($1:$11)+(C3:D13>0)%)),E1)❶ C3:D13>0 判断单元格区域「C3:D13」(即公式所在行下面的区域)的每个单元格是否为空,如果为空返回 FALSE,否则为 TRUE。两个并排为 TRUE(标红字体部分)即为出现合并的位置;
❷ (C3:D13>0)%用百分比符号参与运算,将上面的结果缩小百倍,转化为小数;
❸ ROW($1:$11)+(C3:D13>0)%相当于在(C3:D13>0)%的每一行加上对应序号,生成一个多行两列的数组;
❹ INT(MODE(ROW($1:$11)+(C3:D13>0)%))从生成的数组结果中可以看出,相同的数字最多出现两次,用 MODE 函数返回出现次数最多的第一个数值,即是 3.01,然后用 INT 函数取整,就是当前参与消费的人数;
❺最后用 IF 函数判断,当 D 列单元格不为空时,用消费金额除以人数,即为分摊金额;否则返回 E 列上一行的金额。