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

156
Vistas
¿Cómo puedo verificar si una fecha en una celda es esta semana? Script no función de hoja

Estoy tratando de verificar si las fechas en la columna A son esta semana, luego muestro la fila.

mi problema es que mi variable "t" no está definida en el depurador y cuando se ejecuta aparece el siguiente error...

Excepción: Argumento no válido: fecha. Debe ser del tipo: Fecha

 function weekNumberTest() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = ss.getSheetByName("Test"); var v = s.getRange("A1:A").getValues(); var data = Utilities.formatDate(new Date(), "GMT", "w");//Exception: Invalid argument: date. Should be of type: Date for (var i = s.getLastRow(); i > 2; i--) { var t = v[i ]; if (t != "") { var testDateCell=Utilities.formatDate(t, "GMT", "w"); if (testDateCell==data ) { s.showRows(i); } } } }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Fechas en la semana actual

 function weekNumberTest() { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName("Test"); const vs = sh.getRange(2,1,sh.getLastRow()-1).getValues().flat(); const wk = parseInt(Utilities.formatDate(new Date(), ss.getSpreadsheetTimeZone(), "w")); vs.forEach((d,i) => { let w =parseInt(Utilities.formatDate(new Date(d),ss.getSpreadsheetTimeZone(),"w")); if(w == wk || w == wk - 1) {//try this for last two weeks. This may not work at beginning of year...I don't know for sure. sh.showRows(i + 2); } else ( sh.hideRows(i + 2) ) }); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

function weekNumberTest() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = ss.getSheetByName("Test"); var v = s.getRange("A1:A").getValues(); var data = Utilities.formatDate(new Date(), "GMT", "w"); for (var i = s.getLastRow(); i > 2; i--) { var t = new Date(v[i][0]); // <---------------- the error was here if (t != "") { var testDateCell = Utilities.formatDate(t, "GMT", "w"); if (testDateCell == data) { s.showRows(i); } } } }

Para obtener las fechas de esta semana y la última, puede cambiar una línea de esta manera:

 if (testDateCell == data || testDateCell == data-1) {

Explicación

var v = s.getRange("A1:A").getValues(); obtiene una matriz 2D [[a],[b],[c]] . Para obtener valores de una matriz 2D, debe usar dos índices: v[0][0] , v[0][1] , v[0][2] .

Alternativamente, puede usar el método flat() para convertir una matriz 2D en una matriz 1D de esta manera: var v = s.getRange("A1:A").getValues().flat(); . En este caso, puede abordar los valores de la matriz con un índice: v[0] , v[1] , v[2] .

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