Excel,在不同的 Sheet2 中搜索数据并根据其列将其放回到 Sheet1 中

Excel,在不同的 Sheet2 中搜索数据并根据其列将其放回到 Sheet1 中

这是 Sheet1

在此处输入图片描述

这是 Sheet2

在此处输入图片描述

我想在 Sheet2 中搜索水果,确定它们的组,然后将其放回到 Sheet1 中的 B 列(组)下

期望输出

在此处输入图片描述

做这个的最好方式是什么?

顺便说一句,如果你想复制这个(复制粘贴),这里是类似的数据

答案1

我确信有一个更简单的方法可以做到这一点,但我不记得它是什么!

无论如何,这会起作用:

=IFERROR(XLOOKUP(SUM(IFERROR(FIND(A2,Sheet2!$A$2:$C$7),0)*{1,2,3}),{1,2,3},{"A","B","C"}),"-")

在此处输入图片描述

首先,我们使用 FIND 创建一个数组,如果找到水果则返回 1,如果未找到则返回 0。此数组的大小与 Sheet 2 上的数据相同,找到 Grape 一词时返回 1。将此数组乘以 {1,2,3},找到 Grape 一词时返回 2(这很有用,因此我们可以知道它是第二列)。通过对该数组求和,结果将为 2。然后我们将值 2 传递给 XLOOKUP,返回返回数组中第二个位置的值,即 B。

当然,如果 Sheet2 中的多个单元格中出现单词 Grape,则此方法无效。

编辑:

我意识到这种方式虽然更长,但可能更好:

=XLOOKUP(SUM(($A10=Sheet2!$A$2:$C$7)*COLUMN(Sheet2!$A$1:$C$1)),COLUMN(Sheet2!$A$1:$C$1),CHAR(SEQUENCE(1,COLUMNS(Sheet2!$A$1:$C$1),65,1)),"-")

在这种情况下,查找和返回数组的大小由工作表 2 上的组列数决定,这意味着您无需手动输入 1、2、3 或“A”、“B”、“C”。

相关内容