跨工作表按员工统计唯一账号数的Excel公式求助
Excel 按姓名统计唯一账号数的正确公式
一、准确匹配单个姓名(如John/Lisa)的唯一账号统计
你之前的公式错误使用了UNIQUE的参数逻辑,正确思路是先筛选对应姓名的B列数据,再提取唯一值并计数。
适用于Excel 365/2021(支持动态数组)
假设Report表中要统计的姓名在单元格A2(比如A2是John),统计July24表数据的公式:
=IFERROR(ROWS(UNIQUE(FILTER('July24'!B:B, 'July24'!A:A=A2))), 0)
- 逻辑:先用
FILTER筛选出July24表A列等于目标姓名的所有B列账号,再用UNIQUE提取唯一值,最后用ROWS统计数量,IFERROR处理无匹配数据的情况返回0。
如果要同时统计July24和July23两个表的唯一账号总数:
=IFERROR(ROWS(UNIQUE(VSTACK(FILTER('July24'!B:B, 'July24'!A:A=A2), FILTER('July23'!B:B, 'July23'!A:A=A2)))), 0)
- 逻辑:用
VSTACK把两个表筛选出的账号合并成一个数组,再去重计数。
适用于旧版Excel(不支持动态数组)
输入后按Ctrl+Shift+Enter确认数组公式:
=IFERROR(SUM(IF('July24'!B:B<>"", 1/COUNTIFS('July24'!A:A, A2, 'July24'!B:B, 'July24'!B:B))), 0)
- 额外加了
'July24'!B:B<>""的条件,避免空白单元格导致的计算错误。
二、合并变体姓名(如Karl的多个变体)的唯一账号统计
针对Karl的多个变体(KarlAM2、KarlE、KarlSW等),可以通过逻辑“或”匹配所有变体,再统计对应B列的唯一账号总数。
适用于Excel 365/2021
方式1:指定具体变体名称
=IFERROR(ROWS(UNIQUE(FILTER('July24'!B:B, ('July24'!A:A="KarlAM2")+('July24'!A:A="KarlE")+('July24'!A:A="KarlSW")))), 0)
- 逻辑:用
+表示逻辑“或”,筛选出A列是任意一个Karl变体的B列账号,再去重计数。
方式2:匹配所有包含"Karl"的姓名(通配符简化)
如果Karl的变体都包含"Karl",可以用通配符减少公式长度:
=IFERROR(ROWS(UNIQUE(FILTER('July24'!B:B, ISNUMBER(SEARCH("Karl", 'July24'!A:A))))), 0)
- 逻辑:
SEARCH查找A列中包含Karl的单元格,ISNUMBER转换为逻辑值,筛选出对应B列数据后去重计数。
如果要同时统计两个表的Karl变体唯一账号:
=IFERROR(ROWS(UNIQUE(VSTACK( FILTER('July24'!B:B, ISNUMBER(SEARCH("Karl", 'July24'!A:A))), FILTER('July23'!B:B, ISNUMBER(SEARCH("Karl", 'July23'!A:A))) ))), 0)
适用于旧版Excel
输入后按Ctrl+Shift+Enter确认数组公式:
指定具体变体:
=IFERROR(SUM(1/COUNTIFS('July24'!B:B, 'July24'!B:B, 'July24'!A:A, {"KarlAM2","KarlE","KarlSW"})), 0)
匹配包含Karl的姓名:
=IFERROR(SUM(IF(ISNUMBER(SEARCH("Karl", 'July24'!A:A))*('July24'!B:B<>""), 1/COUNTIFS('July24'!B:B, 'July24'!B:B, 'July24'!A:A, 'July24'!A:A))), 0)
内容的提问来源于stack exchange,提问作者BradenA8
相关产品推荐
相关产品推荐

