如何让Excel函数支持精准匹配与通配符模糊匹配切换?
解决方案
完全可以通过调整匹配逻辑实现你的需求,修改后的公式如下:
=IFERROR(INDEX(AllData,SMALL(IF(ISNUMBER(SEARCH($K$3,AnalCode))*IF(RIGHT($K$4,1)="*",ISNUMBER(MATCH(LEFT($K$4,LEN($K$4)-1)&"*",ProjectCode,0)),IF(LEN($K$4)=1,ISNUMBER(SEARCH($K$4,ProjectCode)),ProjectCode=$K$4)),ROW(AllData)-MIN(ROW(AllData))+1),ROW(H1)),COLUMN(H1)),"")
匹配逻辑拆解
- 输入
E5*:识别到末尾的*,自动截取E5并拼接通配符,用MATCH实现「以E5开头」的匹配 - 输入
E5:直接判断ProjectCode是否等于E5,实现精确匹配 - 输入
E:保留原逻辑用SEARCH做「包含E」的匹配 - 分析代码
$K$3的包含匹配逻辑不变
注意事项
- 旧版Excel需要按
Ctrl+Shift+Enter作为数组公式输入;新版Excel支持动态数组,直接回车即可 - 要保证
ProjectCode、AnalCode和AllData这三个命名区域的范围一致
内容的提问来源于stack exchange,提问作者David Banks
相关产品推荐
相关产品推荐

