Excel统计唯一邮箱在多邮箱单元格区域的出现次数
统计单个邮箱在多邮箱单元格区域的出现次数
一、传统函数法(兼容Excel 2019及更早版本)
- 假设唯一邮箱列从A2开始,待统计的多邮箱区域为C列(每个单元格内的邮箱用空格分隔)
- 在B2单元格输入公式:
=SUMPRODUCT(--(ISNUMBER(SEARCH(" "&A2&" "," "&C:C&" ")))) - 公式说明:
- 给目标邮箱和待统计单元格内容前后都加空格,是为了避免匹配到类似
test@abc.com和test1@abc.com这种部分重叠的邮箱 SEARCH负责查找目标邮箱在每个单元格中的位置,找到返回数字,找不到返回错误值ISNUMBER把查找结果转成布尔值(找到为TRUE,否则FALSE),--再把布尔值转成1和0SUMPRODUCT对所有结果求和,得到该邮箱的总出现次数
- 给目标邮箱和待统计单元格内容前后都加空格,是为了避免匹配到类似
- 下拉填充公式到所有邮箱行即可
二、动态数组法(适合Excel 365/2021及以上版本)
如果用新版Excel的动态数组功能,能更高效地生成结果:
- 假设唯一邮箱在A2:A10,待统计区域为C列
- 方法1:一次性生成所有统计结果,在B2单元格输入:
=BYROW(A2:A10,LAMBDA(x,SUMPRODUCT(--(ISNUMBER(SEARCH(" "&x&" "," "&C:C&" ")))))) - 方法2:拆分所有邮箱后统计,在B2单元格输入:
=COUNTIF(TEXTSPLIT(TEXTJOIN(" ",TRUE,C:C)," "),A2)- 该公式先把C列所有邮箱合并成一个大字符串,再拆分成单个邮箱的数组,最后用
COUNTIF统计目标邮箱的出现次数 - 注意:如果C列数据量极大,
TEXTJOIN可能会触发字符长度限制,此时优先用方法1
- 该公式先把C列所有邮箱合并成一个大字符串,再拆分成单个邮箱的数组,最后用
内容的提问来源于stack exchange,提问作者Diego Villagran Hernandez
相关产品推荐
相关产品推荐

