首页 > 解决方案 > Google 表格查询:仅在不同的列中返回所有行数据

问题描述

我目前有一个查询返回特定列匹配某些条件的所有数据,但我也想防止从 column1 返回重复数据。

一个 C D
1 X 是的 z
1 X z X
2 r z w
3 q 是的 z
4 q q
4 q r

到目前为止: =QUERY(A:D, "SELECT * WHERE B = 'x' OR 'q'")

回报:

一个 C D
1 X 是的 z
1 X z X
3 q 是的 z
4 q q
4 q r

我怎样才能删除A列中的重复项?所以它显示如下:

一个 C D
1 X 是的 z
3 q 是的 z
4 q q

标签: google-sheetsuniquedistinct

解决方案


有很多方法可以解决这个问题。鉴于您的确切帖子信息,它运行 A:D 没有标题,这是一种方法:

=ArrayFormula(UNIQUE(IFERROR(VLOOKUP(FILTER(A:A,ISNUMBER(SEARCH(B:B,"q|x"))),A:D,SEQUENCE(1,COLUMNS(A:D)),FALSE))))

FILTER仅由 A:A 中的那些项目构成一个有限数组,其中 B:B 中的相应值存在于SEARCH条件字符串中。

VLOOKUP查找并返回所有四列的值,这将返回FILTERed A:A 值中每个相等值遇到的第一行值。这将导致每个匹配行的完全相同的信息。

我曾经SEQUENCE返回一个数组,要求从请求的范围中返回第 1、2、3、4 列。此参数可以输入为{1,2,3,4}。但我发现SEQUENCE更灵活,例如,如果在您的实际工作表中您想要返回 12 列而不仅仅是 4 列。

UNIQUE消除重复。

而且,当然,ArrayFormula这是必要的,因为我们正在处理一系列值。


推荐阅读