Korzystając z Google Finance w arkuszu Google, otrzymuję dwie serie czasu:

A) =GOOGLEFINANCE("SPY", "close", DATE(2015,1,1), TODAY(), "DAILY"), który ma 1483 wartości

B) =GOOGLEFINANCE("IBTM", "close", DATE(2015,1,1), TODAY(), "DAILY"), który ma 1489 wartości

Na przykład widać, że A nie ma żadnej wartości 19/01/2015, jednak B ma wartość 19/01/2015. To zachowanie tworzy niewspółosiowość między dwiema seriami.

Teraz chciałbym obliczyć A(close)/B(close), gdy A(date)==B(date).

Niestety, nie mogę pracować bezpośrednio na kolumnach, ponieważ dwie serie nie są wyrównane. Czy jest jakiś inteligentny sposób na rozwiązanie tego problemu?

2
SubZeno 22 listopad 2020, 19:31

1 odpowiedź

Najlepsza odpowiedź

Pewnie:

=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))

enter image description here


Lub bezpośrednio już podzielone:

=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''"))


Aktualizacja:

=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"))
2
player0 22 listopad 2020, 19:32