如何按不同ID号筛选唯一值并关联对应PO#/MP#?
解决Google Sheets跨表筛选唯一PO#并对齐ID的问题
问题分析
你的需求是:在目标表中,仅显示SHEET1里**首次出现的唯一PO#**及其对应的MP#,与目标表的ID对齐;重复PO#对应的ID行留空,最后通过筛选视图隐藏空白行。
你之前的公式错误在于:FILTER('SHEET1'!A5:H,UNIQUE('SHEET1'!G5:G)) 并没有过滤掉重复PO#的行——UNIQUE(G列) 返回的是所有不重复的PO值,原表中每个PO值对应的所有行都会被保留,因此VLOOKUP依然会返回所有匹配结果,无法实现“重复值行留空”的效果。
解决方案
在目标表的B4单元格(假设PO#列从B4开始,MP#列从C4开始)输入以下公式:
={"PO#","MP#";ARRAYFORMULA( LET( target_ids, A4:A, sheet1_data, 'SHEET1'!A5:H, po_vals, VLOOKUP(target_ids, sheet1_data, 7, 0), mp_vals, VLOOKUP(target_ids, sheet1_data, 8, 0), first_po_row, MATCH(po_vals, 'SHEET1'!G5:G, 0), id_match_row, XMATCH(target_ids, 'SHEET1'!A5:A, 0), is_first_occur, IFERROR(first_po_row = id_match_row, FALSE), IF(is_first_occur, {po_vals, mp_vals}, {"", ""}) ) )}
公式说明:
LET函数:简化变量定义,让公式逻辑更清晰。MATCH(po_vals, 'SHEET1'!G5:G, 0):定位每个PO#在SHEET1中第一次出现的行号。XMATCH(target_ids, 'SHEET1'!A5:A, 0):找到目标表ID在SHEET1中对应的行号。is_first_occur:对比两个行号,判断当前ID对应的行是否是该PO#的首次出现行。- 最终
IF判断:仅在首次出现PO#的行显示对应值,其余行返回空白。
后续操作:隐藏空白行
公式生效后,选中PO#和MP#列 → 点击菜单栏「数据」→「创建筛选视图」→ 点击列标题的筛选按钮 → 取消勾选「空白」→ 确定即可隐藏所有重复PO#对应的空白行。
内容的提问来源于stack exchange,提问作者Info Info
相关产品推荐
相关产品推荐

