如果在 Z-AG 中的任何列中找到搜索值,则返回 B 列中的值

如果在 Z-AG 中的任何列中找到搜索值,则返回 B 列中的值

这是我一直试图弄清楚的情景。

在 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/FALSEB37:D44

  • COLUMN函数创建第二个数字数组,尺寸为 3 列 X 1 行。

  • TRANSPOSE将此数组转换为 1 列 X 3 行。

  • 零的幂只是将数组中的所有数字转换为 1。

  • 然后使用该MMULT函数执行矩阵乘法。

  • IFERROR,像往常一样处理"N/A"错误。

相关内容