google-sheets - 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)。
第二张表是“原始数据”。如果有比使用数据透视表更好的解决方案,我也很好。
非常感谢你!问候费边
解决方案
请参阅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)))
推荐阅读
- c# - 无法访问 ASP.net core 3.0 中的用户机密
- android - 我只想在数据库表发生更改时向用户发送 Firebase 通知
- variables - 初始化自定义类型不适用于 var 但适用于 :=
- selenium - 隐式等待和 AjaxElementLocatorFactory 有什么区别?
- python - 如何打印字典中的最高值
- ruby-on-rails - Rails ActiveRecord 查询按天排序
- c# - 将“System.Windows.Forms.WebBrowser”转换为“OpenQA.Selenium.IWebDriver”
- blazor - 找不到路由值指定的后备端点:{ page: /_Host, area: }
- php - 注册后如何自动登录用户?
- c - 在 C 中解析十六进制字符串命令