更快地获取特定条件的最大日期

问题描述:

我一直在为使用Google表格的一些非营利组织设计购物“系统”。我有一个问题,我解决了,但我觉得有一个更容易,更快的方法来做到这一点。更快地获取特定条件的最大日期

为了简化,我有PRICES片,它看起来像以下:

(A)Code (B)Date  (C)Price 
AA1  01/08/2017  50.00 
BB1  01/08/2017  40.00 
AA1  12/08/2017  60.00 

然后我们有SALES表:

(A)SalesId (B)Date   (C)Code  (D)Price 
001   05/08/2017  AA1   50.00 
002   10/08/2017  BB1   40.00 
003   13/08/2017  AA1   60.00 

以上是销售电子表格应该是什么样子等。我试图实现的目标:

获取订单之前或订单日期的特定商品的最新价格。

目前,销售表中的每一行都使用QUERY,这非常缓慢。 这是我第二行式中的我的销售片

=QUERY(Prices!A:C, "SELECT D WHERE A='" & $C2 & "' AND B <= DATE""" & TEXT($B2, "yyyy-mm-dd") & """ ORDER BY B DESC LIMIT 1) 

问题是,对于每一行执行QUERY使得电子表格相当慢。我一直在想,如果有更好的方式来获得订单日期前的最大日期并采取相应的价格?

+0

我希望能够跟踪价格变化,而无需每次都在订单中输入价格。 – Moseleyi

+0

或者这是一个矫枉过正的问题,他们想要不时地改变价格。我应该让他们输入物品价格吗?此外,它允许我选择最大日期和价格以显示产品当前的“状态”,而不是以前的价格变化..但它可能太多了 – Moseleyi

虽然我主张从长远来看,结构性数据项发生变化,这可能是一个有效的解决方案,让您的时间来改变基本数据录入结构:

D2:

=ARRAYFORMULA(VLOOKUP(B2,IF(C2=Prices!$A$2:$A$4,Prices!$B$2:$C$4),2,1)) 

仍需要被拖拽下来。

+0

显示它在VLOOKUP评估中找不到值。例如,订单是在8月7日,但该项目的最新价格是8月1日 – Moseleyi

+0

我有,是否与日期如何通过和表示有关。我像这样硬编码:ArrayFormula(VLOOKUP(“07/08/2017”,IF(),2,FALSE)),但它表示它没有在评估中找到值。这很奇怪,因为我硬编码的值肯定在另一张表中 – Moseleyi

+0

好吧,它现在可以工作,我的愚蠢错误,它比QUERY更快,但是仍然需要5分钟来更新工作表。需要在这里考虑更好的方法,但感谢您的帮助 – Moseleyi