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

基于第三列条件统计两列合并后唯一值的问题求助

解决Excel中多列合并后统计符合条件的唯一值数量问题

核心需求

当第三列(M列)值为Ignore时,统计前两列(K、L列)所有值合并后的唯一值总数,预期结果为5(涉及值a、b、c、d、e)。

问题根源

之前尝试的公式要么统计行组合唯一值(如UNIQUE(FILTER(...),TRUE,FALSE)),要么将两列对应行的值拼接成字符串(如FILTER(K:K)&FILTER(L:L)),没有实现将两列数据合并为一维序列后去重统计。

解决方案

方案1:Excel 365/2021(支持TOCOL函数)

使用TOCOL将筛选后的二维区域转为一维列,再去重统计:

=COUNTA(UNIQUE(TOCOL(FILTER(K2:L23,M2:M23="Ignore"),3)))
  • FILTER(K2:L23,M2:M23="Ignore"):筛选出M列为Ignore的K、L列数据
  • TOCOL(...,3):将筛选得到的二维区域转为一维列,参数3自动忽略空值
  • UNIQUE(...):对一维列去重
  • COUNTA(...):统计去重后的非空值数量

方案2:旧版Excel(无TOCOL函数)

使用数组公式(需按Ctrl+Shift+Enter确认输入):

=SUM(IF(FREQUENCY(IF(M2:M23="Ignore",MATCH(K2:L23,K2:L23,0)),ROW(K2:L23)-ROW(K2)+1),1))
  • IF(M2:M23="Ignore",MATCH(K2:L23,K2:L23,0)):筛选符合条件的行,返回每个值在K:L区域的首次出现位置
  • FREQUENCY(...,ROW(K2:L23)-ROW(K2)+1):统计每个位置的出现频次,首次出现的位置会得到非零值
  • SUM(IF(...,1)):统计非零频次的数量,即唯一值总数

对原有公式的问题分析

  • 公式=UNIQUE(FILTER(K2:L23,M2:M23="Ignore",""),TRUE,FALSE):第二个参数TRUE指定按行去重,返回的是K、L列的行组合唯一值,而非所有值的唯一值。
  • 公式=COUNT(LEN(UNIQUE(FILTER(K2:K23,M2:M23="Ignore",""))&FILTER(L2:L23,M2:M23="Ignore",""),FALSE,FALSE))):将K、L列对应行的值拼接成字符串(如a&b),去重统计的是拼接后的字符串,而非原始值。

内容的提问来源于stack exchange,提问作者Danny

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 22:36:38