查找特定日期的最新股票报价
Find most recent stock quotes for a specific date
我在 Google 电子表格中有一个 table,如下所示:
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
我需要的是一个 table,其中只有 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
我想使用一个查询,这样我就可以使用 result/table 和 运行 单个查询,使用 ARRAYFORMULA(sum... (quantity * price)) 来获取我的投资组合的总价值.
请帮忙:)
此查询将得到最新日期但没有价格:(
查询('stock'!$A:$C;"select A, max(B) where A<>'' group by A label A '', max(B) ''")
看看这是否有效
=ArrayFormula(iferror(vlookup(unique(A2:A); sort(A2:C; 2; 0); {1} ;0)))
给你:
=ARRAYFORMULA(IF(ISTEXT(UNIQUE(A2:A)),VLOOKUP(UNIQUE(A2:A),SORT(A2:C,1,true,2,false),{1,2,3},false),))
我在这里做的是首先给它一个条件,只在有潜在价值的行上 运行,所以它不会停止 sheet - 然后我排序,首先按名称(升序),然后按日期(降序)这样我们只需要每个名称的第一行,日期对,然后我 return 所有索引
这是针对您的区域设置的更新格式:
=ARRAYFORMULA(IF(ISTEXT(UNIQUE(A2:A));VLOOKUP(UNIQUE(A2:A);SORT(A2:C;1;true;2;false);{1};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};false);))
我所做的只是在数组上添加一个过滤函数 - 还要注意这个公式根本不需要使用查询
我在 Google 电子表格中有一个 table,如下所示:
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
我需要的是一个 table,其中只有 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
我想使用一个查询,这样我就可以使用 result/table 和 运行 单个查询,使用 ARRAYFORMULA(sum... (quantity * price)) 来获取我的投资组合的总价值.
请帮忙:)
此查询将得到最新日期但没有价格:(
查询('stock'!$A:$C;"select A, max(B) where A<>'' group by A label A '', max(B) ''")
看看这是否有效
=ArrayFormula(iferror(vlookup(unique(A2:A); sort(A2:C; 2; 0); {1} ;0)))
给你:
=ARRAYFORMULA(IF(ISTEXT(UNIQUE(A2:A)),VLOOKUP(UNIQUE(A2:A),SORT(A2:C,1,true,2,false),{1,2,3},false),))
我在这里做的是首先给它一个条件,只在有潜在价值的行上 运行,所以它不会停止 sheet - 然后我排序,首先按名称(升序),然后按日期(降序)这样我们只需要每个名称的第一行,日期对,然后我 return 所有索引
这是针对您的区域设置的更新格式:
=ARRAYFORMULA(IF(ISTEXT(UNIQUE(A2:A));VLOOKUP(UNIQUE(A2:A);SORT(A2:C;1;true;2;false);{1};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};false);))
我所做的只是在数组上添加一个过滤函数 - 还要注意这个公式根本不需要使用查询