Обновите значения ячеек после того, как в УНИКАЛЬНОЙ формуле указано другое значение - PullRequest
1 голос
/ 11 апреля 2019

У меня есть таблица Google для подсчета моих финансовых расходов.Есть несколько категорий, например, еда.Каждый раз, когда я добавляю новую категорию, значение UNIQUE добавляет значение.Этот лист предназначен для нескольких человек, поэтому у меня есть несколько УНИКАЛЬНЫХ формул, по одной для каждого человека.

Я создал скрипт, который копирует все значения из УНИКАЛЬНЫХ формул в один столбец, а затем делает его уникальным, чтобы убедиться, что все люди имеютте же категории.

Я хотел сделать это автоматически, поэтому каждый раз, когда я добавляю новую категорию, обновляется один из уникальных списков и должен запускаться скрипт.Однако есть моя проблема.Сценарий onEdit не обнаруживает изменения, если он из формулы UNIQUE.

Сценарий onEdit не работает.

function onEdit(e) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = e.range;
  var editRange = { // B4:J6
    top : 3,
    bottom : 20,
    left : 22,
    right : 23
  };

  // Exit if we're out of range
  var thisRow = e.range.getRow();
  if (thisRow < editRange.top || thisRow > editRange.bottom) return;

  var thisCol = e.range.getColumn();
  if (thisCol < editRange.left || thisCol > editRange.right) return;

  sheet.getRange('X3:X1000').clearContent();

  var base = 3;
  var counter = 3;
  var counterResult = 3;

  while(sheet.getRange(counter, 22).getValue().length != 0){
    var getValue = sheet.getRange(counter++, 22).getValue();
    sheet.getRange(counterResult++, 24).setValue(getValue);
  }

  counter = base;

  while(sheet.getRange(counter, 23).getValue().length != 0){
    var getValue = sheet.getRange(counter++, 23).getValue();
    sheet.getRange(counterResult++, 24).setValue(getValue);
  }
}

Функция, которая обнаруживает изменения в уникальной формуле.

1 Ответ

1 голос
/ 09 июня 2019

Вау! Я не знал, что могу добавить 2 параметра с помощью {}. Это решает мою проблему! Спасибо!

=UNIQUE({A:A;B:B})

и убить пустого уникального:

=QUERY(UNIQUE({A:A;B:B}), "where Col1 is not null", 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...