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

127
Vistas
¿Cómo manejar #Error en Google Sheets cuando no existe una propiedad JSON?

Estoy usando el siguiente script en Hojas de cálculo de Google para recuperar ciertas propiedades de la empresa (restringidas por el símbolo de cotización) (en JSON) de Yahoo! Finance y presentarlas en celdas adyacentes en la hoja.

Estoy recuperando 3 propiedades; esta lista se ampliará en el futuro. Actualmente estoy tratando de lograr un manejo adecuado de errores.

 function yahooFinance(symbol) { const url = 'https://query2.finance.yahoo.com/v10/finance/quoteSummary/' + encodeURI(symbol) + '?modules=price,assetProfile,summaryDetail,incomeStatementHistory,' + 'balanceSheetHistory,defaultKeyStatistics,financialData,calendarEvents,' + 'recommendationTrend,upgradeDowngradeHistory,majorHoldersBreakdown' ; const response = UrlFetchApp.fetch(url, { muteHttpExceptions: true }); const responseCode = response.getResponseCode(); if (responseCode === 200) { const quote = JSON.parse(response.getContentText()); const summaryDetail = quote.quoteSummary.result[0].summaryDetail; const divYield = summaryDetail.dividendYield.fmt || "-"; const payoutRatio = summaryDetail.payoutRatio.fmt || "-"; const marketCap = summaryDetail.marketCap.fmt || "-"; return [[ divYield , payoutRatio, marketCap ]]; } else { return "-"; } }

El problema es: si una determinada propiedad no existe para un determinado símbolo, Google Sheets devuelve un error: #Error TypeError: Cannot read property 'marketCap' of undefined (line 43).

Mi pregunta es: ¿cómo puedo devolver un - (guión) en este caso?

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

0

Reemplace la línea de código por

 const marketCap = summaryDetail.marketCap == null ? '-' : summaryDetail.marketCap.fmt;
about 4 years ago · Juan Pablo Isaza Denunciar

0

Considere establecer una fórmula para la celda donde está vinculando el valor.

Ejemplo adaptado de esta respuesta :

 var cell = sheet.getRange("B5"); cell.setFormula("=IFNA(B5,'Invalid value')");
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