Excel公式求助:基于其他单元格内容动态填充指定文本
Excel无VBA公式实现C列按规则填充
核心逻辑
优先用B列团队名称 + A列提取的简化关键词;若B列无内容,用A列项目名 + 提取的关键词。
适用Excel 365/2021及以上版本的公式
直接在C1单元格输入以下公式,下拉填充即可:
=IF(B1<>"", B1&" "&IF(ISNUMBER(SEARCH("Enhancement",A1)),"Enh",TEXTBEFORE(TEXTAFTER(A1,": "),"/")), TEXTBEFORE(A1,":")&" "&IF(ISNUMBER(SEARCH("Enhancement",A1)),"Enh",TEXTBEFORE(TEXTAFTER(A1,": "),"/")))
公式拆解
- 判断B列有效性:
IF(B1<>"", ..., ...),B列有值则走优先格式,否则用备选格式 - 提取A列关键词:
TEXTAFTER(A1,": "):截取A列中冒号后的内容TEXTBEFORE(..., "/"):提取斜杠前的首个关键词(无斜杠则返回全部内容)IF(ISNUMBER(SEARCH("Enhancement",A1)),"Enh",...):将"Enhancement"替换为简化的"Enh"
- 拼接结果:优先格式为「团队名 + 空格 + 关键词」,备选格式为「项目名 + 空格 + 关键词」
兼容旧版Excel(无TEXTBEFORE/TEXTAFTER函数)的公式
若使用旧版Excel,可使用以下公式:
=IF(B1<>"", B1&" "&IF(ISNUMBER(SEARCH("Enhancement",A1)),"Enh",LEFT(TRIM(MID(A1,FIND(":",A1)+2,99)),IFERROR(FIND("/",TRIM(MID(A1,FIND(":",A1)+2,99)))-1,99))), LEFT(A1,FIND(":",A1)-1)&" "&IF(ISNUMBER(SEARCH("Enhancement",A1)),"Enh",LEFT(TRIM(MID(A1,FIND(":",A1)+2,99)),IFERROR(FIND("/",TRIM(MID(A1,FIND(":",A1)+2,99)))-1,99))))
公式拆解
- 提取冒号后内容:
TRIM(MID(A1,FIND(":",A1)+2,99)),截取并去除首尾空格 - 提取首个关键词:
LEFT(..., IFERROR(FIND("/",...)-1,99)),获取斜杠前内容(无斜杠则取全部) - 关键词简化:同样将"Enhancement"替换为"Enh"
- 结果拼接:同优先逻辑,分B列有值/无值两种情况
示例验证
| A列内容 | B列内容 | C列输出结果 |
|---|---|---|
| Project#1: O&M/Production Support/Defect FY22Q4 | Team_A | Team_A O&M |
| Project#1: Enhancement FY22Q4 | Team_B | Team_B Enh |
| Project#2: Bug Fix FY23Q1 | Project#2 Bug Fix |
内容的提问来源于stack exchange,提问作者MondayAMQB
相关产品推荐
相关产品推荐

