Фильтр на основе названия заголовка вместо позиции столбца Google листов - PullRequest
0 голосов
/ 28 апреля 2020

У меня почти такая же ситуация, как у этого VBA, расширенный фильтр на основе заголовка , но в googlesheets.

Я хочу фильтровать столбцы на основе заголовка вместо индекса столбца, поскольку они не всегда в одних и тех же столбцах. (Несколько имен заголовков: идентификатор кандидата, имя, резюме)

этот фрагмент кода фильтрует по позиции столбца

` var cidFilter = SpreadsheetApp.newFilterCriteria().whenTextStartsWith("CID").build();   
  var filter = range.getFilter() || range.createFilter();
    filter.setColumnFilterCriteria(17,cidFilter);`

я хочу фильтровать по заголовку (Идентификатор кандидата) вместо должности (17,cidFilter)

1 Ответ

1 голос
/ 28 апреля 2020

Вы можете найти столбец, содержащий заголовок с indexOf ()

Пример:

  var headers = SpreadsheetApp.getActive().getSheetByName("Sheet1").getRange("A1:G1").getValues()[0]; // adjust accordingly to your header range
  var column=headers.indexOf("Candidate ID")+1;
  if(column >0){
    filter.setColumnFilterCriteria(column,cidFilter);
  }

ОБНОВЛЕНИЕ:

Если вы хотите применить два критерия фильтра, выполните следующие действия:

  var column=headers.indexOf("Candidate ID")+1;
  var column2=headers.indexOf("Are you currently under a non-solicit agreement ?")+1;
  if(column > 0){
    filter.setColumnFilterCriteria(column,cidFilter);
  }
  if(column2 > 0){
    filter.setColumnFilterCriteria(column2,nonSolicit);
  }      
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...