В листах Google, как вы используете googlefinance, чтобы получить высокую цену акции в диапазоне дат? - PullRequest
0 голосов
/ 19 мая 2018

Я написал следующую формулу, и она возвращает только максимум начальной даты, а не максимум всего диапазона дат: = INDEX (GoogleFinance (C7, "high", A7, B7, "DAILY"), 2, 2)

, где C7 - это ячейка Google, которая содержит символ акции, а A7 - начальную дату, а B7 - конечную.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Формула:

=MAX(INDEX(GOOGLEFINANCE(C7, "high", A7, B7), , 2))

… вернет высокую цену акции между датами A7 и B7 в вашем примере. 1

Как это работает?

Используя формулу:

=GOOGLEFINANCE(<symbol>, "high", <StartDate>, <EndDate>) или

=GOOGLEFINANCE(C7, "high", A7, B7) (в вашем примере),

… вернетсямассив , который выглядит примерно так:

Используя функцию INDEX(), вы можете преобразовать этот массив в один столбец высоких значений:

=INDEX(GOOGLEFINANCE(C7, "high", A7, B7), , 2)

Теперь вы можете передать этот массив в функцию MAX(), чтобы получить наибольшее значение в одной ячейке:

=MAX(INDEX(GOOGLEFINANCE(C7, "high", A7, B7), , 2))

1 Важное примечание:

Если вы включите диапазон дат в функцию «high» GOOGLEFINANCE, онбудет не включать сегодняшнюю цену в течение текущего торгового дня - поэтому, если вам нужно включить максимальную цену сегодняшнего дня в свой диапазон, вам нужно будет сравнить сегодняшняя высокая ценаисторические данные явно.

Например, функция =GOOGLEFINANCE(symbol, "high") дает вам сегодняшнюю высокую цену, поэтому:

=MAX(GOOGLEFINANCE(C7, "high"), MAX(INDEX(GOOGLEFINANCE(C7, "high", TODAY()-30, TODAY()), , 2)))

… даст вам высокую цену сверхпоследние 30 дней, включая сегодня.

Если существует вероятность того, что ваш диапазон дат может включать только сегодня (т.е. нет исторических данных, где A7 и B7 оба равны сегодня), к сожалению, формулавыше вернет #NA.У меня есть окончательное решение для создания правильного массива, даже если он не содержит исторических данных.

Пуленепробиваемое решение

Приведенная ниже формула перехватывает условие #NA и создает массив для включения сегодняшнего максимума независимо от того, какой диапазон дат указан:

=MAX(INDEX({IFNA(GOOGLEFINANCE(E7, "high", A7, TODAY()), {"Date", "High"}); NOW(), GOOGLEFINANCE(E7, "high")}, , 2))

Я был укушен этой причудой несколько раз, и это решение, похоже, охватывает все сценарии.Наслаждайтесь!

0 голосов
/ 19 мая 2018

Пожалуйста, попробуйте:

=max(INDEX(GoogleFinance(C7,"high",A7,B7,"DAILY"),0,2))

0,2 вместо 2,2 в конце, чтобы вернуть диапазон, а не ячейку из него и MAX для максимума.

...