Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

134
Vistas
App Script COUNTIF para la fecha máxima en la columna

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-07

Estoy 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?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

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.

Guión modificado:

 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) }
  • En esta modificación, los valores se convierten al tiempo de Unix y se recupera el valor máximo. Y se puede recuperar el número del valor máximo.

Referencias:

  • mapa()
  • filtrar()
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda