2017-10-11 114 views
0

我一直在爲使用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

回答

0

雖然我主張從長遠來看,結構性數據項發生變化,這可能是一個有效的解決方案,讓您的時間來改變基本數據錄入結構:

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