Google Sheet: 如何对齐两个时间序列
Google Sheet: how to align two timeseries
在GoogleSheet中使用Google财务,我得到两个时间序列:
A) =GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY")
有 1483 个值
B) =GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY")
有 1489 个值
例如,您可以看到 A
在 19/01/2015 没有值,但是 B
在 19/01/2015 有值。此行为会在两个系列之间造成错位。
现在,我想在 A(date)==B(date)
时计算 A(close)/B(close)
。
不幸的是,我无法直接对列进行操作,因为这两个系列没有对齐。
有什么聪明的方法可以解决这个问题吗?
确定:
=ARRAYFORMULA(QUERY(QUERY({QUOTIENT(INDEX({
GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY");
GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY")},, 1), 1),
{QUERY(GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY"), "select Col2,'SPY'");
QUERY(GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY"), "select Col2,'IBTM' label 'IBTM'''")}},
"select Col1,max(Col2) where Col1 is not null group by Col1 pivot Col3 format Col1'dd/mm/yyyy'"), "offset 1", 0))
或直接已分:
=ARRAYFORMULA(QUERY(QUERY(QUERY({QUOTIENT(INDEX({
GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY");
GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY")},, 1), 1),
{QUERY(GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY"), "select Col2,'SPY'");
QUERY(GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY"), "select Col2,'IBTM' label 'IBTM'''")}},
"select Col1,max(Col2) where Col1 is not null group by Col1 pivot Col3 format Col1'dd/mm/yyyy'"), "offset 1", 0),
"select Col1,Col2/Col3 label Col2/Col3''"))
更新:
=ARRAYFORMULA(QUERY(QUERY(QUERY(QUERY({QUOTIENT(INDEX({
GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY");
GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY")},, 1), 1),
{QUERY(GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY"), "select Col2,'SPY'");
QUERY(GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY"), "select Col2,'IBTM' label 'IBTM'''")}},
"select Col1,max(Col2) where Col1 is not null group by Col1 pivot Col3 format Col1'dd/mm/yyyy'"), "offset 1", 0),
"select Col1,Col2/Col3 label Col2/Col3''"), "where Col2 is not null"))
在GoogleSheet中使用Google财务,我得到两个时间序列:
A) =GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY")
有 1483 个值
B) =GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY")
有 1489 个值
例如,您可以看到 A
在 19/01/2015 没有值,但是 B
在 19/01/2015 有值。此行为会在两个系列之间造成错位。
现在,我想在 A(date)==B(date)
时计算 A(close)/B(close)
。
不幸的是,我无法直接对列进行操作,因为这两个系列没有对齐。 有什么聪明的方法可以解决这个问题吗?
确定:
=ARRAYFORMULA(QUERY(QUERY({QUOTIENT(INDEX({
GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY");
GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY")},, 1), 1),
{QUERY(GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY"), "select Col2,'SPY'");
QUERY(GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY"), "select Col2,'IBTM' label 'IBTM'''")}},
"select Col1,max(Col2) where Col1 is not null group by Col1 pivot Col3 format Col1'dd/mm/yyyy'"), "offset 1", 0))
或直接已分:
=ARRAYFORMULA(QUERY(QUERY(QUERY({QUOTIENT(INDEX({
GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY");
GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY")},, 1), 1),
{QUERY(GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY"), "select Col2,'SPY'");
QUERY(GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY"), "select Col2,'IBTM' label 'IBTM'''")}},
"select Col1,max(Col2) where Col1 is not null group by Col1 pivot Col3 format Col1'dd/mm/yyyy'"), "offset 1", 0),
"select Col1,Col2/Col3 label Col2/Col3''"))
更新:
=ARRAYFORMULA(QUERY(QUERY(QUERY(QUERY({QUOTIENT(INDEX({
GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY");
GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY")},, 1), 1),
{QUERY(GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY"), "select Col2,'SPY'");
QUERY(GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY"), "select Col2,'IBTM' label 'IBTM'''")}},
"select Col1,max(Col2) where Col1 is not null group by Col1 pivot Col3 format Col1'dd/mm/yyyy'"), "offset 1", 0),
"select Col1,Col2/Col3 label Col2/Col3''"), "where Col2 is not null"))