这是我一直试图弄清楚的情景。
在 Sheet1 的 B 列中,我有一个 SKU 列表,在 Sheet2 的 Y-AG 列中,我有多个 SKU 列表可以与 Sheet1 的 B 列中的内容匹配。
如果 Sheet2 列 Y-AG 中的任何值与 Sheet 1 列 B 匹配,则尝试返回 Sheet2 列 B 的值。
我尝试了以下公式,但遗憾的是它只返回错误。
=INDEX('Sheet2'!$B:$B,MATCH($C2,'Sheet2'!Y:AG,0),1)
谢谢各位好心人的帮助!
答案1
MMULT(矩阵乘法)和 INDEX 的组合,MATCH 从多列中查找值。
注意:
使用的公式查找名称,桑杰在单元格中A67
,在Sheet 1 A65:A72
,与名称匹配,桑杰in B39
、 inSheet 2 B37:D44
和 返回值金来自Sheet 2 Column A (A37:A44)
,在Sheet 1 Column B in Cell B67
。
在 Sheet 1 单元格中,有一个数组(CSE)公式
B65
:{=IFERROR(INDEX(Sheet2!$A$37:$A$44,MATCH(1,MMULT(--(Sheet2!$B$37:$D$44=Sheet1!A65),TRANSPOSE(COLUMN(Sheet2!$B$37:$D$44)^0)),0)),"")}
完成配方Ctrl+Shift+Enter并填写。
根据需要调整公式中的单元格工作表名称和单元格引用。
公式如何运作:
(Sheet2!$B$37:$D$44=Sheet1!A65)
,从内到外工作,其中Sheet1!A65
作为条件,在 Sheet 2 中查找名称,为中的每个值B37:D44
生成 。TRUE/FALSE
B37:D44
该
COLUMN
函数创建第二个数字数组,尺寸为 3 列 X 1 行。TRANSPOSE
将此数组转换为 1 列 X 3 行。零的幂只是将数组中的所有数字转换为 1。
然后使用该
MMULT
函数执行矩阵乘法。IFERROR
,像往常一样处理"N/A"
错误。