因此,先与数组{1,1}相乘的原因是,当我们将SMALL构造(一个20行1列的数组)与数组{1,1}(一个1行2列的数组)相乘时,生成20行2列的数组,其每行中列的元素都是相同的 。这样:
SMALL(IF(COUNTIF(A1:D5,A1:D5+1)+COUNTIF(A1:D5,A1:D5-1),A1:D5),ROW(A1:A20))*{1,1}
转换为:
{1;2;3;12;13;14;15;16;17;36;37;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!}*{1,1}
结果为:
{1,1;2,2;3,3;12,12;13,13;14,14;15,15;16,16;17,17;36,36;37,37;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!}
可以看出,我们已经成功地使每个元素的数量简单地翻了一倍,现在可以安全地将其传递给MODE.MULT函数 。但是,我们先要消除这些错误值 。像绝大多数函数一样,MODE.MULT函数不会处理包含此类错误值的数组 。
这样,公式中的:
IFERROR(SMALL(IF(COUNTIF(A1:D5,A1:D5+1)+COUNTIF(A1:D5,A1:D5-1),A1:D5),ROW(A1:A20))*{1,1},””)
转换为:
IFERROR({1,1;2,2;3,3;12,12;13,13;14,14;15,15;16,16;17,17;36,36;37,37;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!},””)
得到:
{1,1;2,2;3,3;12,12;13,13;14,14;15,15;16,16;17,17;36,36;37,37;””,””;””,””;””,””;””,””;””,””;””,””;””,””;””,””;””,””}
最后,将其传递给MODE.MULT函数:
MODE.MULT(IFERROR(SMALL(IF(COUNTIF(A1:D5,A1:D5+1)+COUNTIF(A1:D5,A1:D5-1),A1:D5),ROW(A1:A20))*{1,1},””))
转换为:
MODE.MULT({1,1;2,2;3,3;12,12;13,13;14,14;15,15;16,16;17,17;36,36;37,37;””,””;””,””;””,””;””,””;””,””;””,””;””,””;””,””;””,””})
得到:
{1;2;3;12;13;14;15;16;17;36;37}
小结
MODE.MULT函数的妙用!
推荐阅读
- excel公式怎么统计至少在一列中满足条件的行数
- excel公式技巧: 比较字符串中的字符
- 怎么中excel单元格中返回多个条件的数据
- excel表格获取指定区域中每行首次出现指定值的位置
- excel公式技巧:在方形区域内填充不重复的随机整数
- excel公式技巧:根据频率和大小返回唯一值列表
- excel技巧:强制返回数组的公式技术
- 当同事偷偷修改了你的Excel文件名.....
- 多个工资表汇总 的最简单公式
- 复合饼图的做法,一分钟学会