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

如何在Excel中计算两个集合的交集元素数量

Excel 筛选后两个集合的唯一值交集计数方法

基础固定区域的交集计数(无隐藏行)

如果两个集合是明确的固定单元格区域(比如A1:A10为Jan-23的sid列表,A20:A30为Feb-23的sid列表,所有单元格均可见),用以下公式直接计算共同唯一元素的数量:

=ROWS(UNIQUE(FILTER(区域1, COUNTIF(区域2, 区域1)>0)))

示例用法:
代入你的Jan和Feb数据区域,公式为:

=ROWS(UNIQUE(FILTER(A1:A10, COUNTIF(A20:A30, A1:A10)>0)))

逻辑说明:

  1. COUNTIF(A20:A30, A1:A10) 判断Jan区域的每个sid是否在Feb区域出现
  2. FILTER 筛选出Jan区域中在Feb区域存在的sid
  3. UNIQUE 去除重复的sid
  4. ROWS 统计最终唯一交集的数量(对应你的示例结果7)

筛选后可见区域的交集计数(忽略隐藏行)

如果两个集合是通过筛选整张表格得到的可见单元格(比如原表格含日期列,筛选Jan-23后A列可见单元格为Jan的sid,筛选Feb-23后A列可见单元格为Feb的sid),需要忽略隐藏行,可按以下方式操作:

步骤1:提取单个筛选区域的可见唯一值

以提取Jan-23筛选后的可见sid为例(假设日期在B列):

=UNIQUE(FILTER(A:A, (B:B="Jan-23")*(SUBTOTAL(3, OFFSET(A:A, ROW(A:A)-MIN(ROW(A:A)), 0, 1))=1), ""))

SUBTOTAL(3,...) 用于判断单元格是否可见(返回1为可见,0为隐藏),结合日期筛选条件,最终得到Jan区域的可见唯一sid。

步骤2:计算两个可见区域的交集数量

假设Jan的可见唯一值存于D:D,Feb的存于E:E,用以下公式计算交集数量:

=ROWS(UNIQUE(FILTER(D:D, COUNTIF(E:E, D:D)>0)))

旧版Excel兼容方案(无动态数组)

如果使用Excel 2019及更早版本,不支持UNIQUE/FILTER,用以下数组公式(输入后按Ctrl+Shift+Enter确认):

=SUM(1/COUNTIF(A1:A10, A1:A10)*(COUNTIF(A20:A30, A1:A10)>0))

公式通过1/COUNTIF去除重复值,再统计同时存在于两个区域的元素数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:40:19