Excel公式优化:如何按输入产品代码顺序显示对应产品名称
解决Excel按输入代码顺序匹配显示产品名称的问题
我来帮你搞定这个问题!你的核心需求是让D列的结果严格按照C列输入代码的顺序显示对应的产品名称,而不是固定的先后排列。你当前用的IF嵌套写法只能覆盖两种固定组合,既不灵活也解决不了顺序问题,我们可以用更高效的公式实现需求。
方案1:适用于Excel 365/2021(支持动态数组)
这个方案最简洁,还能支持任意数量的产品代码输入(只要用/分隔):
=TEXTJOIN(" AND ", TRUE, XLOOKUP(TEXTSPLIT(C1, " / "), $B$1:$B$10, $A$1:$A$10, "", 0))
公式拆解:
TEXTSPLIT(C1, " / "):把C1中的输入内容按/拆分,得到一个和输入顺序完全一致的代码数组。比如输入pir / appl,会生成{"pir", "appl"}XLOOKUP(...):用拆分后的每个代码,在B列的产品代码区域精准匹配对应的A列产品名称,完全保留原输入顺序TEXTJOIN(" AND ", TRUE, ...):把匹配到的所有产品名称用AND连接起来,TRUE参数会自动忽略空值(如果输入的代码没有匹配项)
方案2:适用于旧版Excel(不支持动态数组)
如果你的Excel版本不支持动态数组函数,可以用这个针对双代码场景的公式:
=TRIM(IFERROR(XLOOKUP(LEFT(C1,SEARCH(" / ",C1)-1),$B$1:$B$10,$A$1:$A$10,""),"") & IF(ISNUMBER(SEARCH(" / ",C1))," AND " & XLOOKUP(MID(C1,SEARCH(" / ",C1)+3,99),$B$1:$B$10,$A$1:$A$10,""),""))
公式拆解:
LEFT(C1,SEARCH(" / ",C1)-1):提取第一个/分隔符前的代码,用XLOOKUP匹配对应的产品名ISNUMBER(SEARCH(" / ",C1)):判断是否有第二个代码,如果有,用MID提取分隔符后的内容,再匹配产品名- 最后用
&拼接两个产品名,并用TRIM去掉多余空格
验证效果
- 当C1输入
appl / pir时,D列会显示apple AND pear - 当C1输入
pir / appl时,D列会显示pear AND apple
完全符合你要的按输入顺序显示的需求!
内容的提问来源于stack exchange,提问作者dycodingcoda
相关产品推荐
相关产品推荐

