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

Google Spreadsheet:如何统计两个数组的公共数据数量?

在Google Spreadsheet中统计两个数组的公共数据数量

针对你需要统计数组A[1,2,3]和B[3,4,5]公共元素数量(预期结果1)的需求,这里有几种实用的实现方法,根据你的场景选择即可:

方法1:用INTERSECT + COUNTA(最简洁直观)

这是Google Sheets较新版本支持的原生方法,一步到位:

=COUNTA(INTERSECT({1,2,3}, {3,4,5}))

如果你的数组是存储在单元格区域(比如A1:A3是[1,2,3],B1:B3是[3,4,5]),就改成:

=COUNTA(INTERSECT(A1:A3, B1:B3))

原理:INTERSECT函数直接返回两个数组的交集元素(这里就是[3]),COUNTA统计这个交集数组里的非空元素数量,正好得到公共数据的个数。

方法2:SUMPRODUCT + COUNTIF(兼容旧版本)

如果你的Google Sheets版本还没启用INTERSECT,或者需要更通用的兼容写法,用这个组合:

=SUMPRODUCT(--(COUNTIF({3,4,5}, {1,2,3})>0))

单元格区域版本:

=SUMPRODUCT(--(COUNTIF(B1:B3, A1:A3)>0))

原理:

  1. COUNTIF(B1:B3, A1:A3)会逐个检查A中的每个元素在B里出现的次数,返回数组[0,0,1];
  2. --把COUNTIF返回的结果转成布尔值对应的数字(0代表不存在,1代表存在);
  3. SUMPRODUCT把这些数字求和,最终得到公共元素的数量。

方法3:COUNTUNIQUE + FILTER(处理重复元素场景)

如果你的数组里存在重复值(比如A是[1,3,3],B是[3,3,5]),而你只想统计唯一的公共元素数量(结果还是1),用这个方法:

=COUNTUNIQUE(FILTER({1,2,3}, COUNTIF({3,4,5}, {1,2,3})>0))

单元格区域版本:

=COUNTUNIQUE(FILTER(A1:A3, COUNTIF(B1:B3, A1:A3)>0))

原理:FILTER先筛选出A中在B里存在的元素,COUNTUNIQUE统计这些元素里的唯一值数量,避免重复元素影响统计结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:48:23