Tengo una lista de fechas en la columna A:
Column A 2022-02-28 2022-02-28 2022-02-28 2022-02-14 2022-02-14 2022-02-07Estoy tratando de escribir un script que cuente la cantidad de veces que ocurre la fecha más grande. Escribí el siguiente guión
function maxcount() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var devdeploy = ss.getSheetByName("Sheet1") var Avals = devdeploy.getRange("A2:A").getValues(); var Alength = Avals.filter(String).length; var max = Avals[0][0] var unique_count = 0 for (i=0; i < Alength; i++){ if (Avals[i][0] == max){ unique_count++; } } Logger.log(unique_count) }Este script funciona si uso valores enteros y tengo el valor máximo en la celda A2. Sin embargo, cuando uso fechas en lugar de números enteros, siempre devuelve un valor de 1. ¿Alguna idea de por qué el bucle if no funciona en fechas, pero funciona en números enteros/cadenas? Además, ¿hay alguna manera de mejorar la secuencia de comandos para buscar el valor máximo en la columna A y luego encontrar cuántas veces ocurre?
Si su fecha en la columna "A" es el objeto de fecha, ¿qué tal la siguiente modificación? Pensé que en su secuencia de comandos, por var max = Avals[0][0] , solo se compara el primer elemento. Y, si los valores de la columna "A" son el objeto de fecha, se compara el objeto de fecha. Pensé que esta podría ser la razón de su problema.
function maxcount() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var devdeploy = ss.getSheetByName("Sheet1") var Avals = devdeploy.getRange("A2:A" + devdeploy.getLastRow()).getValues().filter(([a]) => a.toString() != ""); var values = Avals.map(([a]) => a.getTime()); var max = Math.max(...values); var unique_count = values.filter(v => v == max).length; console.log(unique_count) }