У меня есть файл Excel, который отслеживает максимальную высоту солнца в течение года, по одной строке в день, учитывая определенную широту/долготу. Если я редактирую широту/долготу, ежедневная максимальная высота меняется.
Я хотел бы написать формулу, которая запрашивает всю базу данных (2 столбца, 366 строк) и возвращает мне день, когда солнце впервые достигает заданной высоты, а затем день, когда оно уже не достигает этой высоты.
Например, в Гонолулу максимальный угол возвышения Солнца составит 80 градусов 1 мая и останется на уровне 80 градусов или выше (один раз в день) до 19 августа, когда он снова опустится ниже 80 градусов.
Мне нужна функция Excel, которая генерирует эти две даты, учитывая, что у меня уже есть данные о высоте.
Спасибо!
решение1
Решением здесь является использование комбинации INDEX()
и MATCH()
в формуле массива.
Я написал две формулы массива, решающие эту задачу.
Дата начала:
{=INDEX(Dates, MATCH(TRUE, (Elevation>=Find_Elevation), 0), 1)}
Дата окончания:
{=INDEX(Dates, MATCH(TRUE, (Elevation>=Find_Elevation), 1), 1)}
Вот как они работают
Elevation
это именованный диапазон, который содержит все высоты за год,Find_Elevation
это именованный диапазон, который является тем, который мы ищем. В вашем примере это80
- Выражение
(Elevation>=Find_Elevation)
возвращает массивTRUE
иFALSE
(вот почему это должна быть формула массива). Оно возвращаетTRUE
всякий раз, когда высота для каждого дня больше или равна высоте, которую вы ищете. - Функция
MATCH()
с третьим аргументом0
возвращает индекс первого раза, когда она видитTRUE
. Это индекс первого дня, когда солнце находится над высотой, которую вы ищете. - Использование третьего аргумента
1
вMATCH()
функции возвращает последнее время, когда она видитTRUE
. Это индекс последнего дня, когда солнце находится выше высоты, которую вы ищете. - Мы передаем оба этих параметра в качестве второго аргумента
INDEX()
, и он возвращает дату, соответствующую значению, возвращаемому функциейMATCH()
Я использовал FormulaChop для создания приведенных выше формул (полное раскрытие информации: я написал FormulaChop). Здесьскриншот того, как FormulaChop отображает эту формулу.Здесьссылка на электронную таблицу, которая демонстрирует формулу. Извините, пожалуйста, за то, что мне пришлось выдумать солнечные высоты.