Estoy tratando de iterar a través de una columna de hoja de cálculo mientras omito los valores duplicados. Para hacerlo, uso TextFinder para obtener todas las celdas con valores idénticos y las agrego a una matriz de "duplicados".
En cada iteración, una cláusula if verifica si la celda actual es parte de la matriz "duplicados" y, de ser así, debería pasar a la siguiente iteración. Sin embargo, no es el caso; procede a través de mi cláusula if . Probé tanto "includes()" como "indexOf()".
Aquí está mi código:
let duplicates = []; for (let row = 1; row <= range.getNumRows(); row++) { const cell = range.getCell(row, 1); const value = cell.getValue(); if (duplicates.includes(cell) == false) { let array = range.createTextFinder(value).findAll(); const cellIndex = array.indexOf(cell); array.splice(cellIndex, 1); duplicates.push(...array); } }Sinceramente, no estoy seguro de por qué no funciona. Sin embargo, soy nuevo en la codificación y probablemente sea un error de principiante.
¡Cualquier ayuda es apreciada! ¡Gracias!
Si solo está tratando de encontrar los valores únicos de una columna, intente:
function uniqueValuesOfColumn() { return [...new Set( SpreadsheetApp.getActiveSpreadsheet() .getSheetByName(`Sheet1`) .getRange(`A:A`) .getValues() .flat() .filter(Boolean) )] /* Or const uniqueValues = [...new Set( SpreadsheetApp.getActiveSpreadsheet() .getSheetByName(`Sheet1`) .getRange(`A:A`) .getValues() .flat() .filter(Boolean) )]; */ } Esto convierte todos los valores de una columna, con las celdas vacías eliminadas, en una matriz de valores únicos. Esto se hace 'convirtiendo' un Set de valores en una matriz.