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

基于第三列值统计两列唯一值出现次数的Excel函数问题

解决Excel中按条件统计跨列人员出现次数的问题

问题核心

仅统计第三列(Number)值为2的行中,Person1(A列)、Person2(B列)内各姓名的出现次数,需将唯一姓名与对应次数并列展示。

原公式报错原因

你用的=COUNTIFS(A2:B100,E2,C2:C100,">1")报错,是因为COUNTIFS要求条件区域与计数区域维度完全匹配:A2:B100是二维区域,而C2:C100是一维区域,两者无法对应匹配,导致数据类型错误。

可行解法

解法1:SUMPRODUCT(兼容多数Excel版本)

假设E列是你用=UNIQUE(VSTACK(A2:A100,B2:B100))得到的唯一姓名列表,在F2单元格输入以下公式,下拉填充即可:

=SUMPRODUCT((C2:C100=2)*((A2:A100=E2)+(B2:B100=E2)))
  • 逻辑拆解:
    • (C2:C100=2):筛选出Number列值为2的行,返回布尔值数组(TRUE=1,FALSE=0)
    • (A2:A100=E2)+(B2:B100=E2):统计每行中目标姓名在A/B列的出现次数(单次出现加1,两列都出现加2)
    • SUMPRODUCT将两个数组相乘后求和,得到符合条件的总次数

解法2:动态数组一步到位(适用于Excel 365/2021)

无需单独生成E列唯一值,直接输入以下公式,会自动溢出生成“唯一姓名+次数”的两列结果:

=LET(
    filtered_names, FILTER(VSTACK(A2:A100,B2:B100),C2:C100=2),
    unique_names, UNIQUE(filtered_names),
    counts, BYROW(unique_names,LAMBDA(x,COUNTIF(filtered_names,x))),
    HSTACK(unique_names, counts)
)
  • 逻辑拆解:
    1. 先筛选出所有Number=2的行中,A、B列的姓名并合并成数组
    2. 提取数组中的唯一姓名
    3. 统计每个唯一姓名的出现次数
    4. 用HSTACK将姓名和次数合并为两列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:17:34