Google Sheets:多单元格唯一值提取与计数问题咨询
解决电影角色登场场次的去重提取与计数问题
我完全懂你的需求——要从表格里提取某电影角色对应的唯一登场场次编号(去掉重复的场次),同时还要统计这个角色总共登场了多少个不同的场次。下面给你适配的公式方案,直接就能用:
1. 提取去重后的场次编号(逗号分隔)
你原来的公式会返回重复场次,只需要在IF筛选后加一层UNIQUE函数去重即可,最终公式:
=ArrayFormula(TEXTJOIN(", ", TRUE, UNIQUE(IF($B$11:$B$64=E13, $A$11:$A$64, ""))))
如果想在没有匹配场次时显示友好提示(比如“无登场记录”),可以套个IFERROR:
=ArrayFormula(IFERROR(TEXTJOIN(", ", TRUE, UNIQUE(IF($B$11:$B$64=E13, $A$11:$A$64, ""))), "无登场记录"))
公式逻辑:
IF($B$11:$B$64=E13, $A$11:$A$64, ""):先筛选出E13单元格角色对应的所有场次编号,不匹配的返回空值UNIQUE(...):对筛选出的场次编号去重,只保留唯一值TEXTJOIN(", ", TRUE, ...):把去重后的编号用逗号加空格连接成文本ArrayFormula:让公式对整个单元格区域生效
2. 统计唯一场次的数量
要统计不同场次的个数,用COUNTUNIQUE函数直接统计去重后的数量即可:
=ArrayFormula(COUNTUNIQUE(IF($B$11:$B$64=E13, $A$11:$A$64, "")))
同样,想优化无匹配时的显示:
=ArrayFormula(IFERROR(COUNTUNIQUE(IF($B$11:$B$64=E13, $A$11:$A$64, "")), 0))
公式逻辑:
- 先通过IF筛选出对应角色的所有场次
COUNTUNIQUE直接统计其中的唯一值数量,自动忽略重复和空值
兼容旧版Excel的备选方案(如果没有UNIQUE/COUNTUNIQUE函数)
如果你用的是旧版Excel(不支持动态数组函数),可以用以下方案:
去重提取场次编号
需要按Ctrl+Shift+Enter作为数组公式输入:
=TEXTJOIN(", ", TRUE, IF(MATCH($A$11:$A$64&$B$11:$B$64, $A$11:$A$64&$B$11:$B$64, 0)=ROW($A$11:$A$64)-ROW($A$11)+1, IF($B$11:$B$64=E13, $A$11:$A$64, ""), ""))
统计唯一场次数量
=SUMPRODUCT(($B$11:$B$64=E13)/COUNTIFS($B$11:$B$64, E13, $A$11:$A$64, $A$11:$A$64))
内容的提问来源于stack exchange,提问作者Shian Han
相关产品推荐
相关产品推荐

