Ранее мы рассмотрели, как просто создать базу данных с использованием Google Таблиц. Теперь расскажем, как автоматизировать заполнение ряда полей для максимальной экономии времени и сосредоточении усилий только на новой информации.
Для этого следует на основании уже имеющихся в базе сведений задать значения по умолчанию и подсказки из возможных вариантов ввода.
Значения по умолчанию
Рассмотрим на примере корректировки формы ввода новой записи в базу данных, которую создали ранее:
Предположим, что мы хотим для последних 4 полей задать значения по умолчанию аналогичные тем, которые имелись в предыдущей по порядку записи в базе. Однако если ввести что-то, значения по умолчанию должны замещаться новыми сведениями.
При задании формулы в самой ячейке посредством условия ЕСЛИ после ввода нового значения, она будет стерта, поэтому лучше задействовать дополнительные ячейки, например, справа от указанных. В каждую из них введем формулу вида:
=ЕСЛИ(адрес_ячейки="";ВПР(искомое_значение;диапазон_поиска;номер_возвращаемого_столбца;0);адрес_ячейки).
Например, для поля "Категория" - =ЕСЛИ(B5="";ВПР($B$2-1;'БД'!$A$2:$G;4;0);B5)
То есть, когда по адресу ячейки что-то записано, то оставляем это значение, иначе ищем номер записи на единицу меньший B2 в первом столбце выделенного диапазона (условие функции ВПР) и возвращается значение из четвертого столбца. Для наглядности отобразим соответствующий диапазон на листе с базой данных:
Заполнив последующие столбцы аналогичным образом, получим:
А когда одно из полей заполнено, значение по умолчанию замещается:
Теперь, имеющийся макрос, привязанный к кнопке "ввод" (подробнее читай здесь) нужно перезаписать, чтобы он подхватывал значения не из столбцов B5:B8, а C5:C8.
Отображение подсказки в ячейке на основании ранее введенных в нее значений
Реализуем эту задачу посредством задания ограничения на список значений в ячейке. Как его создавать из готового перечня я рассказывал ранее. Вместе с тем данная ситуация отличается тем, что готового списка нет, поэтому создадим его сами.
Для этого перейдем на лист со всеми списками и заполним новый столбец:
Он будет называться "Раздел" и сформирован с использованием следующей формулы:
= SORT(UNIQUE('БД'!E2:E);1;ИСТИНА)
Сначала для формирования уникальных значений применяется функция UNIQUE, которая получает соответствующий диапазон в базе данных, а затем результат сортируется по возрастанию функцией SORT:
Теперь на основании готового диапазона можно задать ограничение, как это делалось ранее:
Следует отметить, что в данном случае ограничение будет мягким и выдавать лишь предупреждение, если новое значение не попадает в список, чтобы мы все-таки могли его ввести в ячейку.