You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel 2019中统计二维数组内非零唯一行数量的公式需求

Excel 2019中统计二维数组内非零唯一行数量的公式需求

我完全理解你的需求啦——要在Excel 2019环境下,对由公式生成的二维数组,统计其中非(0,0)的唯一行数量,而且要求不能依赖Excel 365的动态数组功能、不能用VBA,最好连需要按Ctrl+Shift+Enter的数组公式都不用。

核心思路

咱们可以把每一行的两个元素拼接成一个唯一的文本标识(比如把行44846,1拼成字符串"44846,1"),这样就能把“行的唯一性判断”转化为“文本的唯一性判断”来处理。之后过滤掉"0,0"这个无效行,再统计剩余文本中唯一值的数量(重复的行只算第一次出现的那一次)。

具体公式

把下面公式里的your_array_formula替换成你实际生成二维数组的原公式即可:

=SUMPRODUCT(
  --(INDEX(your_array_formula,ROW(INDIRECT("1:"&ROWS(your_array_formula))),1)&","&INDEX(your_array_formula,ROW(INDIRECT("1:"&ROWS(your_array_formula))),2)<>"0,0"),
  --(COUNTIF(
      OFFSET(your_array_formula,0,0,ROW(INDIRECT("1:"&ROWS(your_array_formula))),2),
      INDEX(your_array_formula,ROW(INDIRECT("1:"&ROWS(your_array_formula))),1)&","&INDEX(your_array_formula,ROW(INDIRECT("1:"&ROWS(your_array_formula))),2)
    )=1)
)

公式解释

  1. 拼接行标识:INDEX(...)&","&INDEX(...) 把每一行的两个元素拼成一个字符串,用来唯一标识该行;
  2. 过滤无效行:--(..."<>"0,0") 把非(0,0)的行标记为1,无效行标记为0;
  3. 统计首次出现的唯一行:COUNTIF(OFFSET(...),...) 统计从数组第一行到当前行中,当前行标识出现的次数,--(...=1) 把首次出现的行标记为1,重复出现的标记为0;
  4. 汇总结果:SUMPRODUCT把上面两个标记数组相乘后求和,得到的就是非零唯一行的数量。

验证你的示例

  • 第一个示例数组代入后,公式返回1,符合预期;
  • 第二个示例数组返回2,正确;
  • 第三个示例数组返回4,完全符合需求。

注意事项

  • 如果你的数组元素本身包含逗号,建议把拼接用的分隔符换成其他不冲突的字符(比如"|"),避免拼接后的字符串出现歧义;
  • 确保your_array_formula返回的是标准的二维数组(行×列结构),这样ROWS函数才能正确识别数组的行数。

备注:内容来源于stack exchange,提问作者alejnavab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 13:53:11