我有一个包含大量数据的表,但是为了保持这个简单,假设A列有一个乘积,B列有一个日期,而C列有一个整数,可以是空的,1,或者大于1的整数:
Product Date # Sold
Thing1 2020-9-9 1
Thing2 2020-9-9 2
Thing3 2020-9-9 3
Thing1 2020-8-8 1
Thing2 2020-8-8 2
Thing3 2020-8-8 1
Thing1 2020-7-7 2我需要找出我出售该物品的第三次最后一次的日期:
Product Turn 3 Date
Thing1 2020-7-7
Thing2 2020-8-8
Thing3 2020-9-9请注意,由于其他原因,我最终可能会在第二个表的每个单元格中得到一个查询,因此它不需要比以下内容更复杂:
=query(Table1!A1:C,"Select min(B) where A='"&A2&"' limit X")
其中,"X“将如何将其限制在运行总数为3。
提前感谢您的任何想法!
发布于 2020-10-23 03:39:15
我终于解决了这个问题。
解决方案包括首先创建另一个列,其中包含每个产品的累计销售额。利用上述数据:
Product Date # Sold Cumulative
Thing1 2020-9-9 1 1
Thing2 2020-9-9 2 2
Thing3 2020-9-9 3 3
Thing1 2020-8-8 1 2
Thing2 2020-8-8 2 4
Thing3 2020-8-8 1 4
Thing1 2020-7-7 2 3累积列的公式如下所示:
=sumproduct(--($A$2:$A=$A2)*--($B$2:$B>=$B2),$C$2:$C)--具有将布尔值转换为数字的效果.*成为合乎逻辑的和。和积实质上是从它的参数中乘以矩阵。
因此,如果列A中的内容与单元格A2 ($A$2:$A=$A2)中的内容相同,且日期大于该行上的日期,则第一个参数为1,并乘以该行上出售的东西的数量。但是,这个计算正在查看每一行上的所有其他行,因此我可以想象大型数据卷可能无法很好地工作。
总之,一旦我们有了累积栏,就可以很简单地查询第三项最后一项的销售日期:
=QUERY($A$2:$D,"Select B where A='"&A2&"' and D>3 Order By B desc Limit 1")到目前为止都很有魅力!
https://webapps.stackexchange.com/questions/147889
复制相似问题