我正在努力使用一个表的列作为键来合并两个表,而 XLOOKUP 没有帮助,因为第二张表有多行与第一张表中的每个关键行匹配。
工作表 A 有 65 个唯一 ID,没有其他数据。工作表 B 有 20,000 多行,其中包含 1000 个 ID 以及我想要获取的 65 个 ID 的信息。工作表 B 中的 65 个 ID 中的每一个都有 1+ 行我想要保留的唯一数据。
基本上,需要从这个 1000 多个 ID 表 B 中隔离出 65 个 ID,然后处理剩余的数据,而我一直无法找到一种干净的方法来执行此操作,而不必强迫我一次使用一个 ID 进行此操作。
任何帮助都将不胜感激,谢谢!
表A样本
B表样本
理想的组合应该是什么样的
答案1
您可以使用以下方法,只需编辑范围引用以适合您的实际范围:(数据在 A11:B27 中,裸 ID 在 A1:A5 中)
=SORT( FILTER( A11:B27, MATCH(A11:A27, A1:A5, 0) >= 1 ) )
或者使用描述符代替:
=SORT( FILTER( Data, MATCH(DataIDs, BareIDList, 0) >= 1 ) )
如果您希望从数据范围中返回的列不是“全部”,则可以用函数包装上述内容INDEX
,在列参数的“数组常量”中指定所需的列号。因此,如果您想要第 1、2、3、6、10 和 43 列,则可以使用{1,2,3,6,10,43}
。如果您希望在输出中重新排列它们或多次使用一个列,也可以这样做。因此,如果您想要显示的集合,但希望结果中的第 43 列位于第三位,而第 2 列位于第三位,则它可能看起来像{1,2,43,6,2,2,10}
。
MATCH
用于为最终结果为真或假的比较提供依据,但每次只检查一个 ID。仅指定“Data = BareIDList”会失败,因为数据范围内没有 ID 与所有所需 ID 匹配。MATCH
能够一次完成一个,而不是一次全部完成。