Google Sheets:对比两表前两列提取唯一值并整行填充排序
解决方案:对比两工作表前两列并提取唯一行+排序
提取Sheet A独有的前两列组合对应整行数据(带排序)
如果要筛选Sheet A中存在、但Sheet B中没有的前两列组合,并提取对应行的所有数据,最后按第一列字母升序排序,可使用以下公式:
新版Google Sheets(支持LAMBDA函数)
=SORT(FILTER(SheetA!A:Z, BYROW(SheetA!A:B, LAMBDA(row_data, ISNA(MATCH(JOIN("|", row_data), BYROW(SheetB!A:B, LAMBDA(row_b, JOIN("|", row_b))), 0))))), 1, TRUE)
兼容旧版/无需LAMBDA的写法
=SORT(FILTER(SheetA!A:Z, ISNA(MATCH(SheetA!A:A&"|"&SheetA!B:B, SheetB!A:A&"|"&SheetB!B:B, 0))), 1, TRUE)
参数说明
SheetA!A:Z:替换成你实际的数据列范围(比如数据到D列就改成SheetA!A:D)SORT(..., 1, TRUE):1表示按第一列排序,TRUE为升序,改成FALSE可切换为降序;若要按第二列排序,把1改成2即可- 拼接符号
|:用来避免两列内容拼接后出现歧义(比如A列是"ab"、B列是"c",和A列"a"、B列"bc",用|拼接后会变成"ab|c"和"a|bc",不会混淆)
提取双向唯一值(Sheet A独有的+Sheet B独有的)
如果需要同时提取两个工作表中各自独有的前两列组合对应行,用以下公式:
=SORT({FILTER(SheetA!A:Z, ISNA(MATCH(SheetA!A:A&"|"&SheetA!B:B, SheetB!A:A&"|"&SheetB!B:B, 0))); FILTER(SheetB!A:Z, ISNA(MATCH(SheetB!A:A&"|"&SheetB!B:B, SheetA!A:A&"|"&SheetA!B:B, 0)))}, 1, TRUE)
内容的提问来源于stack exchange,提问作者Unsapiensaurus
相关产品推荐
相关产品推荐

