Excel公式求助:提取多行单元格中的相同与不同动物名称
Excel提取共同存在与部分存在动物的公式方案
假设你的3行动物数据分别存在A1、A2、A3单元格,都是逗号分隔的文本(比如A1是cat,dog,bird)。以下是具体的公式解决方案:
第一步:生成所有唯一动物的列表
适用于Excel 365/2021(支持动态数组)
在空白单元格(比如B1)直接输入下面的公式,它会自动生成所有不重复的动物,无需手动下拉填充:
=UNIQUE(TEXTSPLIT(TEXTJOIN(",", TRUE, A1:A3), ","))
逻辑:先把三行的内容合并成一个长字符串,按逗号拆成单个动物,最后去除重复值。
适用于旧版Excel(无动态数组功能)
在空白单元格输入下面的公式,按Ctrl+Shift+Enter作为数组公式确认输入,之后下拉填充直到出现空值:
=INDEX(UNIQUE(FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN(",",TRUE,A1:A3),",","</s><s>")&"</s></t>","//s")),ROW(A1))
逻辑:通过XML解析拆分合并后的文本,提取所有单个动物节点,再逐个取出唯一值。
第二步:标记每个动物的存在类型
在C1单元格输入下面的公式,下拉填充对应B列的所有动物,即可区分哪些是三行共有的,哪些只在部分行出现:
=IF(AND(ISNUMBER(SEARCH(B1,A1)),ISNUMBER(SEARCH(B1,A2)),ISNUMBER(SEARCH(B1,A3))),"共同存在","部分行存在")
逻辑:检查当前动物是否在A1、A2、A3中全部存在,全匹配则标记为"共同存在",否则标记为"部分行存在"。
最终效果示例
| A列数据 | B列唯一动物 | C列标记 |
|---|---|---|
| cat,dog,bird | cat | 部分行存在 |
| dog,tiger,lion | dog | 共同存在 |
| bear,cat,dog | bird | 部分行存在 |
| tiger | 部分行存在 | |
| lion | 部分行存在 | |
| bear | 部分行存在 |
内容的提问来源于stack exchange,提问作者Amy Diana
相关产品推荐
相关产品推荐

