0

我在谷歌電子表格的表是這樣的:查找最近的股票報價的具體日期

Stock     Date   Price 
DNB Nordic Technology 2016-07-12 968,7449 
DNB Nordic Technology 2016-07-13 970,0482 
DNB Nordic Technology 2016-07-14 970,0500 
Elementa     2016-03-30 1167,0704 
Elementa     2016-04-30 1175,8091 
Elementa     2016-05-31 1184,1240 
Elementa     2016-06-30 1196,5268 
Evli Emerging Frontier B 2016-07-12 1164,6900 
Evli Emerging Frontier B 2016-07-14 1171,3400 

我需要的是一個表,只有最近的價格爲每隻股票的在特定日期前2016年7月13日

DNB Nordic Technology  2016-07-13 970,0500 
Elementa     2016-06-30 1196,5268 
Evli Emerging Frontier B 2016-07-12 1166,9200 

我想用一個查詢,以便我可以使用結果/表和使用ARRAYFORMULA運行的單個查詢(總和...(數量*價格))爲我的投資組合獲得總價值。

請幫助:)

這個查詢將導致最新的日期,但沒有價格:(

QUERY( '股票' $ A:$ C;「選擇A,MAX(B),其中A! <> 'MAX(B)'「)」通過標籤的一羣'

+0

使用查詢你的數據拉動動態或者是它是一個靜態表? –

+0

嗨,這個查詢是爲了計算曆史值,所以表是半靜態的(我更新它一旦弱)。但我需要一個查詢來計算許多日期和幾個投資組合的價值,所以我仍然需要查詢。這是用於計算每個投資組合的淨資產值。 –

+0

你可以。分享表格? –

回答

0

在這裏你去:

=ARRAYFORMULA(IF(ISTEXT(UNIQUE(A2:A)),VLOOKUP(UNIQUE(A2:A),SORT(A2:C,1,true,2,false),{1,2,3},false),)) 

我在這裏做的是首先給它一個條件,只在有潛在價值的行上運行,所以它不會拖延表單 - 然後按名稱(升序),然後按日期排序(降序),這樣我們只需要每個名稱,日期對的第一排,然後我返回的所有索引

enter image description here

這是給你的語言環境更新的格式:

=ARRAYFORMULA(IF(ISTEXT(UNIQUE(A2:A));VLOOKUP(UNIQUE(A2:A);SORT(A2:C;1;true;2;false);{1\2\3};false);)) 

IF YOU NEED日期參數也在這裏於修訂:

=ARRAYFORMULA(IF(ISTEXT(UNIQUE(FILTER(A:A;B:B<=D1)));VLOOKUP(UNIQUE(FILTER(A:A;B:B<=D1));SORT(FILTER(A:C;B:B<=D1);1;true;2;false);{1\2\3};false);)) 

我所做的只是添加過濾器功能的陣列上 - 也注意到這個公式犯規需要在所有

enter image description here

+0

我得到一個錯誤,不知道爲什麼。我也很高興地說,我忘了一個標準,請在下面回答下面的評論。 –

+0

這個錯誤是因爲我不知道您的區域設置使用分號,如果你我所有的逗號轉換爲分號它應該工作 –

+0

我加入了正確的格式爲您區域設置在底部有 –

0

看看這個工程

=ArrayFormula(iferror(vlookup(unique(A2:A); sort(A2:C; 2; 0); {1\2\3} ;0))) 
+0

它的工作原理完美,但我很喜歡sry,我忘了一個標準。我需要知道特定日期的最新價格。在電子表格中,我在E2和J2中添加了日期。是否可以在我的查詢中以類似的方式在解決方案中添加條件(F2) https://docs.google.com/spreadsheets/d/1FH0_w7ZNAZIQ41AQZz4ylxJETfUgDCAjEth9skZxThc/edit#gid=0 –

+0

看起來像Aurielle已經更新我的公式。 – JPV