ARRAYFORMULA Вводит данные, если это необходимо, но разрешает ввод данных пользователем, если нет

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

введите описание изображения здесь