Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

568
Views
¿Cómo sacar los elementos únicos de una lista en Google Apps Script?

Tengo este fragmento de código:

 function getTimeFrames(){ var ss = SpreadsheetApp.getActive(); var cell = ss.getRange("C1").getValue(); Logger.log(cell); var s = ss.getSheetByName(cell).getRange("M2:M"); var unique = new Set(s.getValues()); unique.forEach(x => Logger.log(x)) }

Este código se llamaría desde una hoja de cálculo de Hojas de cálculo de Google que sirve como interfaz de usuario, donde la celda C1 sería el nombre de una hoja utilizada para almacenar datos. En esa hoja, tengo una columna (M) de la que necesito obtener los valores únicos para almacenarlos en un menú desplegable en la hoja de la interfaz de usuario.

El problema que tengo es que no puedo hacer funcionar la parte de valores únicos. A lo largo de mi experimentación, obtendría una lista de todos los valores de la columna M o ningún resultado de registro.

¡Cualquier ayuda es muy apreciada!

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Probar

 function getTimeFrames(){ var ss = SpreadsheetApp.getActive(); var cell = ss.getRange("C1").getValue(); Logger.log(cell); var unique = ss.getSheetByName(cell).getRange("M2:M").getValues().flat().filter(onlyUnique) console.log(unique) } function onlyUnique(value, index, self) { return self.indexOf(value) === index; }
about 4 years ago · Juan Pablo Isaza Report

0

Esto era realmente un trabajo duro antes de ES6 . Pero ahora, con una combinación de filter() e indexOf() , puede lograrlo fácilmente.

Por ejemplo:

 var List = ['One','Two','Two','One','One','Two','One','Three'] const uniqueList = (value,index,self) => {return self.indexOf(value) ===index;} var finalUniqueList =List.filter(unique);
about 4 years ago · Juan Pablo Isaza Report

0

Intente distribuir los valores únicos en una matriz:

 function getTimeFrames() { const sheet = SpreadsheetApp.getActive() const cell = sheet.getRange(`C1`).getValue() const values = sheet.getSheetByName(cell) .getRange(`M2:M`) .getValues() .filter(String) .flat() const unique = [...new Set(values)] Logger.log(unique) }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!