我正在尝试使用另一张工作表上的匹配数据从一张工作表中提取一些数据。我需要一个公式来将第二张工作表上的名称数据与第二张工作表中的名称列进行比较,并提取该行名称列中包含相同文本的每一行信息。
Sheet1 是包含多列的表格。Sheet2 是姓名列表。Sheet3 是输出表。
Sheet1 看起来像这样,但是具有更多列。
姓名 | 参考 | 地址 | 日期
乔 123 格林巷 24.03.2020
戴夫 567 蓝街 20.03.2020
Grace 245 红骨 21.03.202
Jerry 875 Yellow Ave 22.03.2020
Sheet2 只是一个名称列表,其中一些名称在 Sheet1 上。
姓名
乔
本
戴夫
尤里
我想要做的是让 Sheet 3 输出表中的每一行,其名称与 Sheet2 上的名称匹配。因此,使用我之前给出的示例,我期望的结果是:
姓名 | 参考
乔 123
戴夫567
(假设我只想要这两条信息)。
我最好的猜测是它是某种 VLOOKUP 或 INDEX 函数,但我以前没有在 Excel 中使用过这些功能,而且我找不到与我的问题是足够接近的现有答案,以便我可以用我有限的技能重新利用它。
第一张工作表包含约 2500 个条目的表格。我想要与第二张工作表进行比较的列是 F,它在表格中的标题为“名称”。
第二张工作表的 M 列包含一个简单的文本名称列表。未格式化为表格。
第三张表是空白的,我想在这里输出结果。
如果无法从表中提取某些位,那么提取整行就不会是一个大问题。
答案1
假设 Sheet1 的 Table1 中的名称是唯一的,那么您可以在 Sheet3 中用以下方式填充一列名称:
=IFERROR(INDEX(Sheet2!M:M, AGGREGATE(15, 7, ROW($2:$999)/COUNTIF(Table1[Name], Sheet2!M$2:M$999), ROW(1:1))), "")
可以使用简单的 INDEX/MATCH 对从 Sheet1 的 Table1 中检索其他信息列。如果您选择具有附加 INDEX/MATCH 的表的哪一列,则查找将根据 Sheet3 中的标题文本动态进行。
=INDEX(INDEX(Table1, 0, MATCH(B$1, Table1[#Headers], 0)), MATCH($A2, INDEX(Table1, 0, MATCH($A$1, Table1[#Headers], 0)), 0))