Google Spreadsheet: изменение значения ячейки на основе выбора проверки данных - PullRequest
0 голосов
/ 24 сентября 2019

У меня такая ситуация.Я создал 2 разных листа: Лист1 и Лист2 .Внутри Лист1 Я создал список различных текстовых значений, от А1 до А10.Каждый текст должен соответствовать числовому значению, которое я добавил на том же листе в столбцах с B1 по B10.Например, A1 = Home и B1 = 50.

На другом листе под названием Sheet2 я вставил меню проверки данных, содержащее значения Sheet1 от A1 до A10, нона несколько ячеек.Таким образом, проверка данных может быть найдена на Sheet2 от A1 до A5.

Я хочу добиться того, чтобы на Sheet2 внутри ячейки B2 у меня была суммавыбор проверки данных (от A1 до A5 на Sheet2 ).Так, например: On Sheet1 A1 = Home и B1 = 50.На Sheet2 A1: A5 = Home B2 должно быть 250.

Как этого добиться?Спасибо

1 Ответ

1 голос
/ 24 сентября 2019

Вот возможное решение.Скопируйте эту функцию в скрипт, связанный с вашей электронной таблицей, и запустите его:

function sumValidation() {
  var sheet1 = SpreadsheetApp.getActive().getSheetByName('Sheet1');
  var sheet2 = SpreadsheetApp.getActive().getSheetByName('Sheet2');
  var data = sheet1.getRange('A1:B10').getValues();
  var resultRange = sheet2.getRange('B2');
  var result = 0;
  var validations = sheet2.getRange('A1:A5').getValues();
  for(var i = 0; i < validations.length; i++) {
    for(var j = 0; j < data.length; j++) {
      if(validations[i][0] == data[j][0]) {
        result += data[j][1];
      }
    }
  }
  resultRange.setValue(result);
}

Если вы хотите, чтобы ваш SUM обновлялся каждый раз, когда вы редактируете значение в проверке данных, сделайте его onEdit () триггер.

...