如何在Excel中根据多列YES标记提取对应列标题到指定单元格?
解决方案
根据你的需求,以下是针对不同Excel版本的公式,可自动提取对应行中标记为YES的列标题,多个符合条件时用and连接:
适用于Excel 365/2021及后续版本
在Source列的第一个单元格(如D2)输入公式,下拉填充即可:
=TEXTJOIN(" and ", TRUE, IF(A2:C2="YES", A$1:C$1, ""))
A2:C2:替换为你需要检查YES标记的单元格范围A$1:C$1:替换为表头所在的行(使用绝对引用固定表头,避免下拉时偏移)TEXTJOIN函数会自动忽略空值,按指定分隔符拼接符合条件的表头
适用于旧版Excel(无TEXTJOIN函数)
如果使用不支持TEXTJOIN的旧版本,可使用嵌套IF与字符串拼接组合公式(以D2为例):
=SUBSTITUTE(TRIM(IF(A2="YES", A$1&" ", "")&IF(B2="YES", B$1&" ", "")&IF(C2="YES", C$1&" ", "")), " ", " and ", LEN(TRIM(IF(A2="YES", A$1&" ", "")&IF(B2="YES", B$1&" ", "")&IF(C2="YES", C$1&" ", "")))-LEN(SUBSTITUTE(TRIM(IF(A2="YES", A$1&" ", "")&IF(B2="YES", B$1&" ", "")&IF(C2="YES", C$1&" ", "")), " ", "")))
该公式会先拼接所有符合条件的表头,再将最后一个空格替换为and,实现示例中的格式效果。
内容的提问来源于stack exchange,提问作者kksweene
相关产品推荐
相关产品推荐

