在条件MODE函数的value_if_true中为MATCH添加{0,0}的作用是什么?
关于公式中
{0,0}的作用解析 先拆解你的公式核心逻辑,再讲{0,0}的必要性:
- 首先,
MATCH(A$1:A$43000,A$1:A$43000,0)的作用是返回A列每个单元格第一次出现的行号,重复值会得到同一个行号(比如A2和A5都是"苹果",两者的MATCH结果都是2)。 - 不加
{0,0}时,MODE函数只会提取出现频率最高的行号——也就是重复值对应的行号(因为重复值的MATCH结果重复次数最多);如果A列没有重复值,所有MATCH结果都是唯一的,MODE找不到众数,直接返回#N/A。
而添加{0,0}后,相当于给每个MATCH结果复制了一份(比如原结果是5,就变成{5,5}),这会从两个维度改变MODE的行为:
- 对于原本的重复值:它们的MATCH结果已经重复多次,加上
{0,0}后重复频率进一步提高,但这不是关键; - 对于原本的唯一值:它们的MATCH结果原本只出现1次,现在变成出现2次。此时整个数组里,所有值的出现次数至少是2次——如果没有重复值,所有值的出现次数都是2次,
MODE会返回第一个出现的“众数”;配合COUNTIF(C$1:C1)=0的动态筛选(排除已经输出到C列的内容),就能按顺序遍历输出A列的所有值,包括重复值和唯一值。
简单说:{0,0}的核心作用是给每个MATCH结果制造一个重复项,让唯一值也能满足MODE的“众数”判定条件,从而让公式在没有重复值时也能正常输出内容,最终实现遍历输出所有值的效果。
内容的提问来源于stack exchange,提问作者Alireza
相关产品推荐
相关产品推荐

