Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 在Google Sheets查询中仅为一列选择DISTINCT_Sorting_Google Sheets_Filter_Google Sheets Formula_Google Sheets Query - Fatal编程技术网

Sorting 在Google Sheets查询中仅为一列选择DISTINCT

Sorting 在Google Sheets查询中仅为一列选择DISTINCT,sorting,google-sheets,filter,google-sheets-formula,google-sheets-query,Sorting,Google Sheets,Filter,Google Sheets Formula,Google Sheets Query,假设我有以下问题 =query (A:C; "SELECT A, B, C") 如何修改它以使其不返回重复的A 换句话说,当几行包含相同的A时,我希望结果只包含其中一行(最后一行)。其他列中应允许重复 在这里,我找到了SQL Server的答案,但我不知道如何在Google Sheets查询中做到这一点 我所拥有的: A, B, C lucas@abc.com, approved, 05/04/2019 lucas@abc.com, not set, 0

假设我有以下问题

=query (A:C; "SELECT A, B, C")
如何修改它以使其不返回重复的A

换句话说,当几行包含相同的A时,我希望结果只包含其中一行(最后一行)。其他列中应允许重复

在这里,我找到了SQL Server的答案,但我不知道如何在Google Sheets查询中做到这一点

我所拥有的:

A,             B,        C
lucas@abc.com, approved, 05/04/2019
lucas@abc.com, not set, 05/05/2019
lucas@abc.com, refunded, 05/06/2019
john@xyz.com, approved, 05/06/2019
john@xyz.com, approved, 05/07/2019
john@xyz.com, approved, 05/07/2019
我想要的是:

A,             B,        C
lucas@abc.com, refunded, 05/06/2019
john@xyz.com, approved, 05/07/2019

您可以使用
SORTN
,其中第三个参数设置为
2

=SORTN(SORT(A1:C, 3, 1), ROWS(A:A), 2, 1, 0)

尝试以下公式:

=unique(filter(A:C,match(A:A&C:C,query(query(A:C,"select A,max(C) where A<>'' group by A label max(C) ''"),"select Col1")&query(query(A:C,"select A,max(C) where A<>'' group by A label max(C) ''"),"select Col2"),0)))
=unique(过滤器(A:C,匹配(A:A&C:C,查询(查询(A:C,“选择A,最大值(C)”,其中“按标签最大值(C)”分组),“选择列1”)&查询(查询(A:C,“选择A,最大值(C)”,其中“按标签最大值(C)”分组),“选择列2”),0)))

屏幕截图:


截止到今天,2020年6月,查询语法发生了一些变化,对于那些没有得到上述公式的人,请尝试用此变体替换它

==对于那些不知道这是怎么回事的人。 Google选择按行创建日期分组和排序的唯一值表

=UNIQUE(FILTER(A:C;MATCH(A:A&C:C;QUERY(QUERY(A:C;"select A, max(C) where A <> '' GROUP BY A label max(C) ''");"select Col1")&QUERY(QUERY(A:C;"select A,max(C) where A<>'' group by A label max(C) ''");"select Col2");0)))
=UNIQUE(过滤器(A:C;匹配(A:A&C:C;查询(查询(A:C;“选择A,最大值(C)”,其中“按标签分组最大值(C)”);“选择列1”)&QUERY(查询(A:C;“选择A,最大值(C)”,其中“按标签分组最大值(C)”;“选择列2”);0)))

我在排序函数的第三个参数中将1改为0,现在它返回我所期望的结果(仅显示最后一行),谢谢!你能解释一下这是怎么回事吗?@425nesp当然。我们通过第三列升序(1)对范围A:C进行排序。然后我们使用SORTN并返回一列中所有可能的行。然后我们使用SORTN的第二种模式按第一列对数据进行分组,但现在是降序(0)