Skip to content

Instantly share code, notes, and snippets.

@paulopatto
Last active August 28, 2024 00:31
Show Gist options
  • Save paulopatto/533d1d11f76c60aa941e to your computer and use it in GitHub Desktop.
Save paulopatto/533d1d11f76c60aa941e to your computer and use it in GitHub Desktop.
Converter taxa de cambio entre Moedas com Google SpreadSheet

Cotação de moedas com Planilhas do Google SpreadSheet

Hoje enquanto eu tentava criar minha calculadora de importação de produtos (com tributos, Taxa ilegal de processamento de encomendas internacionais e IOF). Com isso precisava de dados de conversão autmática de valores em Dollar americano para o Real brasileiro (USD -> BRL). A melhor solução que encontrei foi efetuar a pesquisa de cotação na url do google finance convert em https://www.google.com/finance/converter?a=1&from=USD&to=BRL. Bem tendo a url que nos retorna um documento HTML vamos pegar o dados com a função IMPORTXML

ImportXML(url; xpath query)

Importa dados de qualquer um dos vários tipos de dados estruturados, incluindo XML, HTML, CSV, TSV e XML de feeds RSS e Atom.

Com isso tenho o resultado como texto, ai tive de converter a planilha para formatação U.S.A para usar ponto como separador decimal e usar a formula de regex [0-9]*\.[0-9]+[0-9]+para extrair apenas o valor numérico. Minha formula completa ficou assim:

=value(
 RegexExtract(
  ImportXML(
   "https://www.google.com/finance/converter?a=1&from=USD&to=BRL", 
   "//*[@id='currency_converter_result']/span"
  ), 
  "[0-9]*\.[0-9]+[0-9]+"
 )
)
@ErnandesCastro
Copy link

Ou ainda: =GOOGLEFINANCE("USDBRL")

Copy link

ghost commented Apr 2, 2021

Obrigado!!!
Era bem o que precisava..
=GoogleFinance("CURRENCY:USDBRL" ; "average")

@IsaacMeirelles
Copy link

Valeu Jimmy, para quem precisar de Euro:
=GoogleFinance("CURRENCY:EURBRL" ; "average")

@renan-batista
Copy link

E de ontem como pego? Percebi que o parametro "closeyest" não funciona.

@KesleyDavid
Copy link

Tambem estava precisando de uma formula que eu conseguisse obter o valor do dolar em datas anteriores a hoje

@bouli
Copy link

bouli commented Jan 18, 2024

@KesleyDavid e quem ainda tem procurado, tenho utilizado o seguinte:

=GOOGLEFINANCE("currency:USDCLP","price",date(2015,1,1),today(),"DAILY") 

Nesse exemplo acima é de USD (US Dolar) pra CLP (Pesos Chilenos), a data inicial é 1 de janeiro de 2015 a final é hoje e pra trazer diariamente.

A explicação completa da fórmula é essa https://support.google.com/docs/answer/3093281?hl=en&sjid=11252400379001089660-SA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment