Удаление строки на листе 2 из импортированных данных с листа 1 в электронной таблице Google

#google-sheets #row

#google-sheets #строка

Вопрос:

скриншот

Всем привет, мне нужна помощь, и я не программист. Я пытаюсь добиться того же на листе номер 2.

Мои данные импортируются через «=Submission!$ b2» с листа 1

мне нужна помощь в автоматическом удалении строк, когда определенная ячейка в столбце H не содержит значения «Bekreft», я попробовал оба кода, показанных здесь, но безуспешно.

Это то, что я добавил для скрипта:

 function onEdit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('DATA - Do Not Touch!!!'); // change to your own
  var values = s.getDataRange().getValues();
    for(var i=values.length;i>0;i-=1){
     var lcVal=values[i-1][0].toLowerCase() //Change to all lower case
     var index = lcVal.indexOf("vent"); //now you only have to check for      contains "vent"
     if (lcVal.indexOf("vent") > -1){
     s.deleteRow(i)};
  }}
  

Ответ №1:

Поскольку вы заявляете, что вы «не программист», и вставленный вами код не поможет вам, если вы ссылаетесь на данные с другой страницы, я бы предложил использовать функцию фильтрации для достижения вашей цели. Вы бы добавили следующую формулу на свою вторую страницу:

   =FILTER(Submission!B:B,ISNUMBER(SEARCH("Bekreft", Submission!H:H)))
  

Если вы хотите, чтобы скрипт просматривал ваш статический список и удалял значения, которые не содержат «Bekreft», вы можете использовать следующий скрипт.

   function onEdit() {
    var sheet = SpreadsheetApp.openById("Add Sheet ID").getSheetByName('Sheet1');
    var rows = sheet.getDataRange();
    var numRows = rows.getNumRows();
    var values = rows.getValues();

    var rowsDeleted = 0;
      for (var i = 0; i <= numRows - 1; i  ) {
        var row = values[i];

          //row for condition
          if (row[7].indexOf("Bekreft")) {     
            sheet.deleteRow((parseInt(i) 1) - rowsDeleted);
            rowsDeleted  ;
     }
    }
   };
  

Комментарии:

1. Спасибо за ваш ответ, опция удаления на самом деле не является хорошим вариантом, поскольку «статус» обновляется, а после обновления строка удаляется и больше не появится…

2. Однако я пытаюсь использовать фильтр, но не уверен, как его использовать, какими должны быть B: B? и H: H? Поскольку я этого не понимаю, я не могу это использовать. Спасибо за помощь и ответ на данный момент.

3. B: B относится ко всему столбцу B. Это приведет к извлечению любого значения в B, где значение в столбце H содержит «Bekreft». Если вы хотите извлечь больше строк на основе критериев в столбце H, вы можете, например, изменить B: B на A:I. Я бы посоветовал вам ознакомиться с функцией фильтра , но я также связал лист с примером.

4. Большое спасибо! Моя головная боль теперь прошла!

5. И последнее: если я хочу создать лист с той же функцией, но с отображением строк, в которых только эта конкретная ячейка пуста, как мне следует поступить?