Вычет из выпадающего списка - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть список из 100 сотрудников и 50 раскрывающихся списков. Я хочу выбрать некоторых сотрудников в раскрывающихся списках, но я не хочу, чтобы пользователь выбирал одного и того же сотрудника более одного раза. Я хочу вычесть выбранных сотрудников из возможных раскрывающихся ответов. Как мне это сделать?

Я пытался отфильтровать отобранных сотрудников, но он показывает ужасный предупреждающий знак для тех, кто был выбран

, вы можете просмотреть мою таблицу здесь: https://docs.google.com/spreadsheets/d/1bzMPC3-SDOjsgZVXHQgmfBnkiTEsa1Pei7p_DybIebY/edit?usp=sharing

1 Ответ

0 голосов
/ 19 февраля 2020

Вы можете использовать простой триггер onEdit (e) для автоматического выполнения задания:

Триггер onEdit (e) запускается автоматически, когда пользователь изменяет значение любого ячейка в электронной таблице [...]

Это не совсем то же самое, что было раньше, потому что выбранные значения будут по-прежнему отображаться в списке. Они просто будут удалены, если они будут повторяться.

Единственное изменение, которое вы должны сделать, это удалить текущую проверку данных из столбца D и установить новую со значениями из столбца A .

function onEdit(event){

  if (event.range.getColumn() == 4){   //Run only if the edited cell is from column D

    var sheet = SpreadsheetApp.getActiveSheet();
    var selection = sheet.getRange("D2:D22").getValues(); 
    var editedRow = event.range.getRow(); //Gets the edited row

    for (var i = 0; i < selection.length; i++){ 

      //If some value from D is equal to the edited value but in a different Row (so it ignores the inputted value)
      if ((i + 2) != editedRow &&  selection[i][0] == event.value){ 

          sheet.getRange(event.range.getA1Notation()).setValue(""); //Change the new value to empty

      }

    }
  }
}

Функция будет запускаться каждый раз, когда вы выбираете элемент в столбце D.

Результат:

enter image description here

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...