Мне было интересно, можно ли использовать функцию IFS внутри функции массива?
Я хочу, чтобы раскрывающийся список заполнил массив в зависимости от того, что выбрано при проверке данных.
формула, которую я использую:
=ARRAYFORMULA(IFs(H2="1st Quarter",'Pool 1 data'!C4:AG34,H2="2nd Quarter",'Pool 1 data'!C38:AG68,H2="3rd Quarter",'Pool 1 data '!C72:AG102,H2="4th Quarter",'Pool 1 data'!C106:AG136))
H2 — это проверка выпадающего списка. Поэтому, когда выбран «1-й квартал», я хочу, чтобы он возвращал диапазон c4: AG34, а когда выбран «2-й квартал», чтобы возвращался диапазон C38: AG68 и так далее.
Текущая формула ничего не возвращает. Я далеко или есть другой подход, чтобы это произошло?
Любые советы будут с благодарностью!
Обновлено: Вот ссылка на таблицу
https://docs.google.com/spreadsheets/d/1fIRpI_f76ac4VNcpp0Ffvx_68lRLjFtaPrYFdgFEDs0/edit?usp=sharing
использовать:
=ARRAYFORMULA(
IF(H2 = "1st Quarter",'Pool 1 data'!C4:AG34,
IF(H2 = "2nd Quarter",'Pool 1 data'!C38:AG68,
IF(H2 = "3rd Quarter",'Pool 1 data'!C72:AG102,
IF(H2 = "4th Quarter",'Pool 1 data'!C106:AG136, )))))
см.: https://webapps.stackexchange.com/a/124685/186471
вы можете подумать, что поведение IFS()
похоже на IF()
, и причина наличия IFS()
заключается в том, чтобы избежать вложенности нескольких IF()
, но это не так. Да, есть некоторые общие базовые линии, однако есть большая разница, когда дело доходит до массивов. IFS()
в сочетании с массивным выводом ожидается массивный ввод — вот почему вы получили вывод с одной ячейкой вместо массивированного вывода.
IF()
выглядит так:IFS()
вернет это (поскольку ячейка A1 не является массивом/диапазоном):
Спасибо! эта ссылка помогает объяснить, где я ошибся.