首页 > 解决方案 > Google 表格数据透视表 - 显示介于两者之间的日期

问题描述

我有一个数据透视表,其中包含每只股票的累积股数以及进行投资组合更改(投资或撤资)时的不同时间戳: https ://docs.google.com/spreadsheets/d/1IxdeBriRA9DgVclAWwfrz5ni1bZO94xwh0jFCghTLDg/edit?usp =分享

现在我想添加“介于”(每个工作日)投资和撤资时间戳的日期,其中逻辑上股票的累积数量大于零。

示例“Apple”:我希望数据透视表显示 Apple 从 2013 年 5 月 8 日到 2014 年 12 月 16 日每个工作日的所有日期以及累积的股票数量。

示例“AT&T”:因为没有剥离 AT&T 股票,我想要从 2020-04-06 到今天的所有日期。

我想将这两个示例与所有其他股票放在一个表中以应用更多功能。目的是使用 GOOGLEFINANCE 函数来计算之后每一天的股票价格。但首先,我需要所有日期(股票数量> 0)。

第二张表是“原始数据”。如果有比使用数据透视表更好的解决方案,我也很好。

非常感谢你!问候费边

标签: google-sheetspivot-table

解决方案


请参阅testFile

由于您的数据包含很长一段时间,包含所有股票的所有日期的表格将非常大且无法使用,因此建议选择一只股票并为其创建表格。

因此,在单元格B1中的 testSheet 上,您选择您感兴趣的股票名称。在单元格B2中,选择您是否只需要历史数据或最新数据的期间。

以下公式创建从所选股票的第一个日期开始到最新的日期序列。

=ARRAYFORMULA(
IF($B$2="Today";
SEQUENCE(TODAY()-MIN(FILTER('Stock Track Record'!A:A;'Stock Track Record'!F:F=$B$1))+1;1;
MIN(FILTER('Stock Track Record'!A:A;'Stock Track Record'!F:F=$B$1));1)))

然后下一个公式从您的初始数据中获取值。

=ARRAYFORMULA(
IFERROR(VLOOKUP($A$5:$A;
QUERY({'Stock Track Record'!$A:$F};
"Select Col1, Col2, Col3, Col4
Where Col6 = '"&$B$1&"'";0);2;0);""))

以下计算累计股数:

=ARRAYFORMULA(IF(A5:A="";"";SUMIF(A5:A;"<="&A5:A;D5:D)))

推荐阅读