我在Google电子表格中有这样一个表格:
Stock Date PriceDNB 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-07-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(和.(数量*价格))得到我的投资组合的总价值。
请帮助:)
此查询将得到最新的日期,但没有价格:(
查询(‘stock’!$A:$C;“选择A,max(B),其中A<>‘组由A’,max(B)‘”)
发布于 2016-07-16 10:43:27
给你:
=ARRAYFORMULA(IF(ISTEXT(UNIQUE(A2:A)),VLOOKUP(UNIQUE(A2:A),SORT(A2:C,1,true,2,false),{1,2,3},false),))我在这里所做的是,首先给它一个条件,只在具有潜在值的行上运行,这样就不会拖住工作表--然后按照名称(升序),然后按日期(降序)进行排序,这样我们只需要每个名称的第一行,日期对,然后返回所有索引。

以下是您的区域设置的更新格式:
=ARRAYFORMULA(IF(ISTEXT(UNIQUE(A2:A));VLOOKUP(UNIQUE(A2:A);SORT(A2:C;1;true;2;false);{1\2\3};false);))如果您需要日期参数,这里也是修改:
=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);))我所做的就是在数组上添加一个过滤器函数--还要注意这个公式根本不需要使用查询。

发布于 2016-07-16 09:54:32
看看这是否有效
=ArrayFormula(iferror(vlookup(unique(A2:A); sort(A2:C; 2; 0); {1\2\3} ;0)))https://stackoverflow.com/questions/38395385
复制相似问题