![如何在 Excel 工作表中搜索字符串,并返回不同工作表上同一单元格的值?](https://linux22.com/image/1584508/%E5%A6%82%E4%BD%95%E5%9C%A8%20Excel%20%E5%B7%A5%E4%BD%9C%E8%A1%A8%E4%B8%AD%E6%90%9C%E7%B4%A2%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%8C%E5%B9%B6%E8%BF%94%E5%9B%9E%E4%B8%8D%E5%90%8C%E5%B7%A5%E4%BD%9C%E8%A1%A8%E4%B8%8A%E5%90%8C%E4%B8%80%E5%8D%95%E5%85%83%E6%A0%BC%E7%9A%84%E5%80%BC%EF%BC%9F.png)
我有两个包含相应数据的 excel 工作表,它们以 1:1 的比例相互映射。我试图在第三个工作表上构建一个搜索框,用户可以在单元格 A2 中输入一个字符串,单元格 B2 会找到第一个工作表,并在第二个工作表的同一单元格中显示相应的值。
有什么想法吗?我一直在研究 CELL 和 MATCH 函数的某种组合,但 MATCH 似乎仅适用于单列,而我需要搜索整个表。
编辑:第一张表上的表格中的字符串是唯一的。
答案1
在 B2 中:
=INDEX(Sheet2!A:Z,AGGREGATE(15,7,ROW(Sheet1!$A$1:$Z$100)/(Sheet1!$A$1:$Z$100=A2),1),AGGREGATE(15,7,COLUMN(Sheet1!$A$1:$Z$100)/(Sheet1!$A$1:$Z$100=A2),1))
这两个 AGGREGATES 将首先返回行号,然后返回与索引匹配的列号,最后返回在 sheet2 中找到的值。
Sheet2 引用应始终从 A1 开始并以最后一列数据结束。Sheet1 引用应仅为数据集的大小。
答案2
对于非唯一值使用以下公式:
B2=INDEX(Sheet2!$A:$Z,AGGREGATE(15,7,ROW(Sheet1!$A$1:$Z$100)/(Sheet1!$A$1:$Z$100=$A2),1), MATCH($A2,OFFSET(Sheet1!$A$1,AGGREGATE(15,7,ROW(Sheet1!$A$1:$Z$100)/(Sheet1!$A$1:$Z$100=$A2),1)-ROW(Sheet1!$A$1),0,1,COLUMNS(Sheet1!$A$1:$Z$100)),0))
此公式查找最小行中第一个匹配项并返回结果。
根据需要将整个公式包装在 IFERROR(formula,"") 中,因为如果未找到 A2,INDEX 将在公式单元格中显示错误。