Google sheets GoogleSheets-比较日期并返回最新的要求行

Google sheets GoogleSheets-比较日期并返回最新的要求行,google-sheets,Google Sheets,我有一个工作表,它使用查询从另一个工作表中提取数据。这个数据,看起来有点像这样 DATE STOREID OTHERDATA 02/11/2017 Store 1 Other data 1 01/11/2017 Store 1 Other data 2 09/10/2017 Store 2 Other data 3 05/10/2017 Store 2 Other data 4 我正在寻找一种方法,让它只返回每个商店的最新日期行,如下所示 DATE STOREID

我有一个工作表,它使用查询从另一个工作表中提取数据。这个数据,看起来有点像这样

DATE       STOREID OTHERDATA
02/11/2017 Store 1 Other data 1
01/11/2017 Store 1 Other data 2
09/10/2017  Store 2 Other data 3
05/10/2017  Store 2 Other data 4
我正在寻找一种方法,让它只返回每个商店的最新日期行,如下所示

DATE       STOREID OTHERDATA
02/11/2017 Store 1 Other data 1
09/10/2017  Store 2 Other data 3
我当前使用的查询如下所示:

=query(DATASHEET!A2:CF11, "select C, CC, L,CD, E, BZ, CA, CB where (BF='CUSTOMERNAME1') order by C desc, CC, L, BZ desc",0)
这是否可以使查询查看所有日期和storeID,并且只返回每个storeID的最高日期?我可以想象用另一种语言使用loop/for来实现这一点,但我的谷歌搜索结果告诉我,使用查询是不可能的

如果是这样的话,您会建议我如何在数据表中这样做,这样我就可以在一列中为每一行显示最新/非最新,然后将查询与WHERE语句一起使用

这里有一个我试着设置的示例表,以防它有助于解释我正在尝试做什么。

感谢您的帮助,因为我花了一整天的时间试图解决这个问题。如果有什么不清楚的地方,请告诉我

谢谢

试试这个:

=ARRAYFORMULA(VLOOKUP(QUERY({ROW(A2:A),SORT(A2:C)}, "SELECT MAX(Col1) WHERE Col3 IS NOT NULL GROUP BY Col3 LABEL MAX(Col1)''",0),{ROW(A2:A), SORT(A2:C)},{2,3,4},0))
试试这个:

=ARRAYFORMULA(VLOOKUP(QUERY({ROW(A2:A),SORT(A2:C)}, "SELECT MAX(Col1) WHERE Col3 IS NOT NULL GROUP BY Col3 LABEL MAX(Col1)''",0),{ROW(A2:A), SORT(A2:C)},{2,3,4},0))
试试这个:

=ARRAYFORMULA(VLOOKUP(UNIQUE(B1:B11),SORT({B1:C11,A1:A11},3,0),{3,1,2},0))
通过A列的反向
SORT
ing和
VLOOKUP
ing
UNIQUE
值,我们得到了最新的一行

试试这个:

=ARRAYFORMULA(VLOOKUP(UNIQUE(B1:B11),SORT({B1:C11,A1:A11},3,0),{3,1,2},0))

通过A列的反向
SORT
ing和
VLOOKUP
ing
UNIQUE
值,我们得到了最新的一行

谢谢,效果很好!非常感谢。如何添加其他需求和列?我的原始查询:选择C、CC、L、CD、E、BZ、CA、CB,其中(BF='CUSTOMERNAME1')按C描述、CC、L、BZ描述排序我尝试添加另一列,但出现聚合错误。有什么建议吗?在我的查询中添加更多的列,你所需要做的就是扩展所有的范围<代码>{ROW(A2:A),SORT(A2:**)}然后还将新列添加到VLOOKUP返回中<代码>{2,3,4,***}。公式的查询块仅选择日期的最大行数。Vlookup根据查询结果匹配其余单元格。如果您想从该数据集中获得更多信息,我建议您将该数据保存在一张表中,然后从另一张表中重新查询。非常棒,感谢您的解释,我在其中获得了我想要的额外列,没有任何问题。。最后一个问题,我想在两列上使用ORDERBY,但是,无论我在查询中添加ORDERBY,它似乎都会破坏它。有没有可能叫人来订?(例如,按Col3排序,col5)目前看起来是这样的:=ARRAYFORMULA(VLOOKUP(QUERY({ROW(DATA!C2:C),SORT(DATA!C2:CF)}),“选择MAX(Col1),其中Col3不为空,(Col57='CUST 1')按Col3标签MAX(Col1)'”,0),{ROW(DATA!A2:C),SORT(DATA!C2:CF)},{2,80,11,81,4,77,78,79},0]),对不起,我现在明白你的意思了。我只是用一个新的查询引用了一个新表中的数据,因此能够轻松地对其进行正确排序,而无需修改现有的有效代码。再次感谢!谢谢,效果很好!非常感谢。如何添加其他需求和列?我的原始查询:选择C、CC、L、CD、E、BZ、CA、CB,其中(BF='CUSTOMERNAME1')按C描述、CC、L、BZ描述排序我尝试添加另一列,但出现聚合错误。有什么建议吗?在我的查询中添加更多的列,你所需要做的就是扩展所有的范围<代码>{ROW(A2:A),SORT(A2:**)}然后还将新列添加到VLOOKUP返回中<代码>{2,3,4,***}。公式的查询块仅选择日期的最大行数。Vlookup根据查询结果匹配其余单元格。如果您想从该数据集中获得更多信息,我建议您将该数据保存在一张表中,然后从另一张表中重新查询。非常棒,感谢您的解释,我在其中获得了我想要的额外列,没有任何问题。。最后一个问题,我想在两列上使用ORDERBY,但是,无论我在查询中添加ORDERBY,它似乎都会破坏它。有没有可能叫人来订?(例如,按Col3排序,col5)目前看起来是这样的:=ARRAYFORMULA(VLOOKUP(QUERY({ROW(DATA!C2:C),SORT(DATA!C2:CF)}),“选择MAX(Col1),其中Col3不为空,(Col57='CUST 1')按Col3标签MAX(Col1)'”,0),{ROW(DATA!A2:C),SORT(DATA!C2:CF)},{2,80,11,81,4,77,78,79},0]),对不起,我现在明白你的意思了。我只是用一个新的查询引用了一个新表中的数据,因此能够轻松地对其进行正确排序,而无需修改现有的有效代码。再次感谢!