Google表格-过滤掉另一个范围内的值

时间:2020-06-23 11:35:13

标签: google-sheets google-sheets-formula google-sheets-query

-编辑#2-用非常麻烦的解决方案再次更新了Google表格。到目前为止,我拥有的最佳公式如下。 -

=ARRAYFORMULA(SPLIT(UNIQUE({ARRAYFORMULA(QUERY(IF(COUNTIF(G4:G&"|||"&H4:H,ARRAYFORMULA(A4:A&"|||"&B4:B))>0,REGEXREPLACE(A4:A&"|||"&B4:B,".*",""),A4:A&"|||"&B4:B),"SELECT * WHERE Col1 IS NOT NULL"));ARRAYFORMULA(QUERY(IF(COUNTIF(G4:G&"|||"&H4:H,ARRAYFORMULA(D4:D&"|||"&E4:E))>0,REGEXREPLACE(D4:D&"|||"&E4:E,".*",""),D4:D&"|||"&E4:E),"SELECT * WHERE Col1 IS NOT NULL"))}),"|||"))

-编辑-更新了Google表格以更贴近我的用例-

以前很自信地有人问过这个问题,但是现在我已经在谷歌搜索了几个小时,而且我开始掉头发了。我认为我必须使用QUERY函数,但不能100%使用它。

此处的演示页https://docs.google.com/spreadsheets/d/1p_hqk9WydcyXQZT4bIm4DSZZnaPKbngtnZ0-laYHwk8/edit?usp=sharing

我要做什么: 我想合并 DATA 1 DATA 2 下的范围,但是我想排除以 DATA 3 中的值开头的行。

结果1 不会增加价值,但显示了我是如何将 DATA 1 DATA 2 一起添加的。

结果2 显示了我想要得到的结果。

结果3 隐藏,但是我到达的位置(抱歉,并没有再次增加价值)。我可以使它大部分正常工作,但是我必须在QUERY中手动指定要查找的组合...并且坦率地说,我的数据集非常庞大。该公式当前如下所示:

=QUERY(UNIQUE({FILTER(A4:B,NOT(ISBLANK(A4:A)));FILTER(D4:E,NOT(ISBLANK(D4:D)))}),"SELECT * WHERE NOT Col1 STARTS WITH 'a' OR NOT Col2 STARTS WITH 'v'",-1)

希望有人可以帮助我!你是我唯一的希望。

1 个答案:

答案 0 :(得分:1)

这适用于您的示例数据。它使用ARRAYFORMULAMATCH连接两列,使用LEFT仅使用match函数中的第一个字符。您可能需要根据自己的实际数据,找到一种更聪明的方法来开头。

=UNIQUE({FILTER(A4:B,not(isblank(A4:A)),iserror(MATCH(ARRAYFORMULA(A4:A&left(B4:B,1)),ARRAYFORMULA(G4:G&H4:H),0)));FILTER(D4:E,not(isblank(D4:D)),iserror(MATCH(ARRAYFORMULA(D4:D&left(E4:E,1)),ARRAYFORMULA(G4:G&H4:H),0)))})

文档:

MATCHhere

ARRAYFORMULAhere