Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

168
Visualizações
¿Cómo se mueve la lógica de la fórmula de Google Sheet a Javascript?

Tengo una función yahoofinance que consulta a Yahoo!Finance para obtener datos bursátiles basados en un teletipo bursátil. Antes de poder llamar a la función, necesito hacer algunas modificaciones a la entrada.

Los teletipos en mi hoja tienen el formato [venue].[company] , por ejemplo, XNAS.GOOG (Google en Nasdaq), XAMS.INGA (ING Bank en Amsterdam) y XSWX.CRSP (Crispr en Swiss Exchange).

Los códigos que uso para los lugares son internacionales, pero la mayoría de las API no usan estos mismos códigos. Por ejemplo, la bolsa de valores de Ámsterdam es oficialmente XAMS , pero AMS en la API de Google y AS en Yahoo. Así que tengo una hoja llamada Exchanges con todos estos lugares enumerados. Al llamar a mi función personalizada yahoofinance , toma el estándar 'XMAS.INGA' como entrada, luego corta el lugar ( XAMS ) y busca el nombre de Yahoo ( AS ), luego pasa INGA.AS a la API de Yahoo:

 =yahoofinance(index(split(A2, "."), 0, 2) & "." & vlookup(index(split(A2, "."), 0, 1), Exchanges!E:J, 6, false)) function yahoofinance(ticker) { // send ticker to Yahoo API }

La lógica, que ahora está en la celda B2 de la hoja, se está volviendo complicada de seguir. Me gustaría moverlo, si es posible, a la función y pasar solo el ticker de A2 :

 =yahoofinance(A2) function yahoofinance(ticker) { const venue = ticker.split(); // etc // end up with INGA.AS, and pass to Yahoo API }

Mi pregunta es: ¿es posible mover la lógica que ahora está en mi hoja, a la función? Por ejemplo, si y cómo puedo realizar el mismo vlookup desde dentro de yahoofinance ? ¿Es posible?

Estoy planeando extender realmente la funcionalidad de yahoofinance , tal vez incluso volver a trabajarlo en una función finance genérica que también tome como argumento a qué API desea pasar un ticker: =yahoofinance(ticker, api) , así que cualquier ayuda para comenzar con una base sólida aquí es muy apreciada.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede probar esta fórmula personalizada para obtener el valor modificado:

Guion:

 function yahoofinance(ticker) { var [venue, company] = ticker.split("\."); var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Exchanges'); var lastRow = sheet.getLastRow(); // get Exchanges!E:J values var mapping = sheet.getRange(1, 5, lastRow, 6).getValues(); // lookup equivalent, filter then get 6th column and append to company var modifiedTicker = company + '.' + mapping.filter(row => row[0] == venue).flat()[5]; // you now have the modified ticker. Use it on your function. // ... return modifiedTicker; }

Fórmula B7:

 =index(split(A2, "."), 0, 2) & "." & vlookup(index(split(A2, "."), 0, 1), Exchanges!E:J, 6, false)

Producción:

producción

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda