我在Google电子表格中有一个表格,如下所示:
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-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运行单个查询(总和...(数量*价格))来获得我的投资组合的总价值。
请帮助:)
此查询将产生最新日期但没有价格:(
QUERY(' stock'!$ A:$ C;"选择A,max(B)其中A<>''按A标签分组A& #39;',max(B)''")
答案 0 :(得分:0)
看看是否有效
=ArrayFormula(iferror(vlookup(unique(A2:A); sort(A2:C; 2; 0); {1\2\3} ;0)))
答案 1 :(得分:0)
你走了:
=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);))
我所做的就是在数组上添加一个过滤函数 - 还要注意这个公式根本不需要使用查询