#if-statement #google-sheets #array-formulas
Вопрос:
Я хочу, чтобы таблица автоматически заполнялась, если у нас есть данные для ввода, но если нет, разрешите вводить данные пользователем. Я пробовал использовать ARRAYFORMULA
, но если пользователь вводит данные в пустое поле, формула прерывается.
Пример:
A B C
1|Date Policy *This cell contains formula below*
2| 1/1 High 6 Days
3| 2/1 Med 4 Days
4| 3/1
5| 4/1 Low 2 Days
=ARRAYFORMULA(IF(B2:B5="High","6 Days",IF(B2:B5="Med","4 Days",IF(B2:B5="Low","2 Days",""))))
Я хочу, чтобы пользователь мог вводить свои собственные данные в ячейки C4 (и B4), не влияя на форму массива
Пустая строка может быть где угодно, она не всегда будет строкой 4
Комментарии:
1. единственное возможное решение, которое я могу найти, это то, что я мог бы сохранить данные Col:C на другом листе (ДАННЫЕ) и заполнить
QUERY
его функцией (каким-то образом) и использоватьonEdit
триггер для записи любых изменений на страницу ДАННЫХ. Я не уверен, насколько это было бы просто (и мне все еще нужен запрос, чтобы каким-то образом узнать, что находится в Col B, я еще не решил эту проблему).2. Вам нужно будет либо использовать отдельный столбец, либо скрипт, обойти arrayformula #REF невозможно из-за перезаписи данных в ячейке. Критично ли использование трех столбцов?
Ответ №1:
это, конечно, не точный ответ на ваш вопрос, но это решение позволяет обойтись без использования скриптов — пользователь может ввести данные в другой столбец (здесь столбец D
) в этой строке, и формула будет искать результат в B
, а если он пустой, то в D
=ArrayFormula(IFNA(VLOOKUP(B2:B5,G1:H3,2,false),VLOOKUP(D2:D5,G1:H3,2,false)))