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

163
Vistas
Problema con getLastRow(), la salida también incluye las filas vacías que no quiero

getLastRow() no funciona en mi script. Estoy tratando de devolver la última fila que tiene datos. Pero dado que la hoja de cálculo tiene filas vacías debajo de las filas llenas de datos, el script regresa con todas las filas pero quiero que se detenga en la última fila que tiene los datos. Alguien me puede decir como arreglar esto? Los datos contienen la fórmula de matriz y aquí está el script: -

 function Productivity() { var ui = SpreadsheetApp.getUi(); var response = ui.alert('Do you want to send emails to all PRICE ACCURACY resources now?', ui.ButtonSet.YES_NO); // Process the user's response. if (response == ui.Button.YES) { var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Productivity Report Out') var range = ss.getDataRange().getValues() var lastrow = ss.getLastRow(); //Logger.log(range.length) for(var i=1;i<=lastrow; i++) //i<range.length { Logger.log("Index:"+i+" | ["+range[i]+"]") var status = range[i][14] if(status !='No') { var name = range[i][0] var ldap = range[i][1] var target = range[i][2] var new_mvt = range[i][3] var onboarding = range[i][4] var ubio_rates = range[i][5] var violation = range[i][6] var reevaluation = range[i][7] var total = range[i][8] var current_productivity = range[i][9] var deficit = range[i][10] var remaining_checks = range[i][11] var week = range[i][12] var date = range[i][13]
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Usted define lastRow pero no lo usa.

Supongo que esto es lo que estás buscando:

 for(var i=1; i<=lastRow; i++)

Como se diseñó, .getLastRow() devuelve la última fila que tiene datos. O de la documentación: Returns the position of the last row that has content.

  • Hoja.getLastRow()

Nota al margen: está comenzando su ciclo en el índice 1 (fila 2), si no tiene una fila de encabezado, debe usar 0 (fila 1).

about 4 years ago · Juan Pablo Isaza Denunciar

0

Obtener filas en blanco en sus datos

if(status !='No') sería verdadero para una línea en blanco. Tal vez esté usando algo como una fórmula de matriz que está causando que el cálculo de getLastRow() sea incorrecto. Haga un Logger.log(lastRow) y vea si tiene sentido.

Prueba esta función:

 function getColumnHeight(col, sh, ss) { var ss = ss || SpreadsheetApp.getActive(); var sh = sh || ss.getActiveSheet(); var col = col || sh.getActiveCell().getColumn(); var rcA = []; if (sh.getLastRow()){ rcA = sh.getRange(1, col, sh.getLastRow(), 1).getValues().flat().reverse(); } let s = 0; for (let i = 0; i < rcA.length; i++) { if (rcA[i].toString().length == 0) { s++; } else { break; } } return rcA.length - s; //const h = Utilities.formatString('col: %s len: %s', col, rcA.length - s); //Logger.log(h); //SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(h).setWidth(150).setHeight(100), 'Col Length') }
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