Excel 公式:根据多个单元格匹配查找并返回对应值(支持重复值)
可以使用Excel的函数组合来实现。具体步骤如下:
-
使用IF函数判断B8、B9、B10是否为空,如果为空则返回空值,否则继续下一步。
-
使用INDEX函数和MATCH函数组合,在BOM工作表中查找BOM!C:C列中与B8、B9、B10单元格匹配的行,并返回该行的BOM!E:E列中的值。公式如下:
=IF(OR(B8='',B9='',B10=''),'',INDEX(BOM!E:E,MATCH(B8&B9&B10,BOM!C:C&BOM!D:D&BOM!E:E,0)))
上述公式中,MATCH函数的第一个参数为B8&B9&B10,表示将B8、B9、B10三个单元格的值合并成一个字符串进行匹配;MATCH函数的第二个参数为BOM!C:C&BOM!D:D&BOM!E:E,表示将BOM工作表中的C、D、E三列的值合并成一个字符串进行匹配;MATCH函数的第三个参数为0,表示精确匹配。
- 如果BOM工作表中C:C值都相等,需要使用数组公式来实现。具体步骤如下:
① 选中BOM工作表中C、D、E三列的所有单元格,输入公式:
{=IFERROR(IF(MMULT((BOM!C:C=B8)(BOM!D:D=B9)(BOM!E:E=B10),TRANSPOSE(COLUMN(BOM!C:C)^0))=1,INDEX(BOM!E:E,MATCH(B8&B9&B10,BOM!C:C&BOM!D:D&BOM!E:E,0)),''),'')}
② 按Ctrl+Shift+Enter将公式转换为数组公式。
上述公式中,MMULT函数用于将三个条件进行矩阵乘法运算,得到一个行向量,向量中的元素值都为1表示满足所有条件,否则为0;TRANSPOSE函数用于将矩阵转置;COLUMN函数用于返回列号;^0用于将列号转换为0次幂,得到一个列向量。最后将行向量和列向量进行矩阵乘法运算,得到一个数值,如果值为1表示满足所有条件,否则为0。如果满足条件,则使用INDEX函数和MATCH函数组合,在BOM工作表中查找BOM!C:C列中与B8、B9、B10单元格匹配的行,并返回该行的BOM!E:E列中的值。如果不满足条件,则返回空值。IFERROR函数用于处理错误值,避免出现#VALUE!等错误提示。
原文地址: https://www.cveoy.top/t/topic/oOed 著作权归作者所有。请勿转载和采集!