如何用TEXTJOIN搭配INDEX MATCH匹配表头返回非空值对应价格
实现方案
直接在E2单元格输入以下公式即可,根据你使用的Excel版本选择对应输入方式:
适用版本:Excel 365 / 2021 及以上支持动态数组的版本
=TEXTJOIN(", ",TRUE,IF(A2:D2<>"",INDEX(H:H,MATCH(A1:D1,G:G,0)),""))
输入后直接回车即可生效。
适用版本:Excel 2019 及更早版本
输入上述公式后,按Ctrl+Shift+Enter组合键触发数组运算方可生效。
公式逻辑说明
A2:D2<>"":判断第2行对应列的单元格是否非空,你可以根据你的实际列范围调整(比如如果可选商品列到F列,就修改为A2:F2<>")A1:D1:对应列的表头区域,需要和上述判断区域的列范围保持一致INDEX(H:H,MATCH(A1:D1,G:G,0)):将非空单元格对应的列表头,到G列(商品名称列)做精确匹配,返回对应H列(价格列)的取值- TEXTJOIN第二个参数设为
TRUE,会自动忽略空值,不会把空单元格对应的无效内容拼接进结果
优化方案(可选)
如果存在表头在G列匹配不到的场景,可以嵌套IFERROR避免返回错误值,修改后公式如下:
=TEXTJOIN(", ",TRUE,IF(A2:D2<>"",IFERROR(INDEX(H:H,MATCH(A1:D1,G:G,0)),""),""))
使用方式和原公式完全一致。
内容的提问来源于stack exchange,提问作者Kobe2424
相关产品推荐
相关产品推荐

