#google-sheets #google-sheets-formula
#google-sheets #google-sheets-формула
Вопрос:
Я использую arrayformulas для заполнения определенных столбцов моего листа в зависимости от значений на других листах. Иногда пользователи случайно помещают некоторое значение в эти столбцы, и это останавливает работу arrayformula. Я хочу защитить эти столбцы, но при этом разрешить добавление / редактирование / удаление строк.
Рассмотрим этот пример электронной таблицы: я хочу, чтобы строка идентификатора была защищена, но разрешала добавление / удаление строк.
https://docs.google.com/spreadsheets/d/1Dnj7OE5XZL09gllHVwPgv-5GRoM-lxVCxTCI_-kURdM/edit#gid=0
Возможно ли это вообще с Google Sheets?
Ответ №1:
Вы не можете напрямую отключить ввод, но вместо этого вы можете использовать проверку данных
Перейдя в Data> Проверка данных и заполнив его следующим:
Диапазон ячеек: YourSheet!C2: C
Критерии: Пользовательская формула — = C2: C = A2:A amp; «[«amp; B2: B amp;»]»
Для недопустимых данных: отклонить ввод
Внешний вид: необязательное сообщение
Как только вы это сделаете, попробуйте заполнить какую-либо ячейку в столбце C, и вы увидите сообщение: Возникла проблема — ваше необязательное сообщение
В качестве другого подхода вы можете использовать простые триггеры Apps Script
Перейдя в Сервис> Редактор сценариев и скопировав следующий код:
function onEdit(e) {
var column = e.range.getColumn();
var sheet = SpreadsheetApp.getActiveSheet();
if (column === 3) {
e.range.setValue("");
}
}
Что больше похоже на функцию «отменить».
Ссылки
Комментарии:
1. Ну, я не хочу использовать apps script, потому что у меня их много, поэтому мне придется реализовать какой-то способ программного добавления к ним кода запуска или их повторного клонирования, что возможно, но требует больших усилий. Однако первое решение является блестящим, единственным недостатком является то, что все ячейки, включенные в диапазон, недействительны, поэтому покажите красный треугольник в углу (см. Мой Лист), что стало бы очень беспорядочным, потому что у меня много таких столбцов. Есть ли способ отключить этот раздражающий красный треугольник?
2. Здравствуйте, да, это возможно, я просто хотел предложить идею в этом конкретном случае, пожалуйста, ознакомьтесь с новым редактированием.
Ответ №2:
строки могут быть добавлены методом перебора с помощью этой формулы:
=ARRAYFORMULA(ROW(INDIRECT("1:"amp;ROWS(A:A) 1)))
но эскалацию нельзя контролировать
Комментарии:
1. Мне это совсем не помогает. Это просто спамит строки. Мне нужно выяснить, возможно ли заблокировать столбцы, не отключая пользователям возможность манипулировать строками.