Excel使用公式删除带连字符姓名中连字符后内容的方法咨询
适配公式方案
适用Excel 365/2021及以上版本(推荐)
使用TEXTBEFORE函数直接处理连字符逻辑,无需额外错误捕获:
=CONCATENATE("cde\",LOWER(XLOOKUP(G578,Sheet4!M:M,Sheet4!B:B)),".",LOWER(TEXTBEFORE(XLOOKUP(G578,Sheet4!M:M,Sheet4!C:C),"-",,,,XLOOKUP(G578,Sheet4!M:M,Sheet4!C:C))))
TEXTBEFORE最后一个参数为未匹配到连字符时的返回值,直接填入原姓氏的查询结果即可。
兼容旧版本Excel
用IFERROR嵌套LEFT+FIND的逻辑,修复之前的引用错误问题:
=CONCATENATE("cde\",LOWER(XLOOKUP(G578,Sheet4!M:M,Sheet4!B:B)),".",LOWER(IFERROR(LEFT(XLOOKUP(G578,Sheet4!M:M,Sheet4!C:C),FIND("-",XLOOKUP(G578,Sheet4!M:M,Sheet4!C:C))-1),XLOOKUP(G578,Sheet4!M:M,Sheet4!C:C))))
优化建议
如果需要降低公式复杂度,可以单独新增一列存储XLOOKUP匹配到的姓氏,再对该列做连字符处理,后续维护更方便。
内容的提问来源于stack exchange,提问作者Max B
相关产品推荐
相关产品推荐

