Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

Desafios Semanais

Resolva o desafio, compartilhe sua solução e lidere nossa Comunidade!

Desafio #109: Banco Internacional de Dados Incríveis - Parte II

AnaMuniz
Moderator
Moderator

Olá, comunidade!

 

Como vocês estão? Prontos para mais uma semana? Hoje iremos continuar nosso desafio de ajudar o Banco Internacional de Dados Incríveis (IBAD) a melhorar sua relação com dados.

 

Na semana passada, aprendemos que dados não são nada incríveis se não forem padronizados e limpos. Portanto, agora que padronizamos nossos dados, vamos trabalhar com os campos dos Montantes.

 

Sendo o IBAD um banco internacional renomado, eles aceitam moedas de todas as formas - dólar, peso, euro, franco, libra, iene, coroa, dinheiro do Banco Imobiliário etc. Entretanto, diferentes países/regiões/bancos têm normas diferentes para aplicar formatos numéricos aos valores que eles reportam à sede. Alguns usam símbolos ou códigos monetários para indicar o tipo de moeda, alguns colocam sinais negativos à direita em vez da esquerda, alguns usam vírgulas em vez de pontos para o indicador decimal etc. Além disso, esses bancos informam os saldos dos clientes na moeda local do cliente (ao invés da moeda local do banco), portanto precisamos converter todos os valores em uma única moeda (dólar americano (USD), para fins de relatório).

Weekly Challenge Image 303.png

Desafio:

Crie uma macro padrão para limpar formatos numéricos e converter para USD quantas vezes forem necessárias. A sua macro para formatar números precisa ser flexível o suficiente para lidar com diversos cenários.

 

O QUE A MACRO DEVE FAZER PARA QUALQUER CAMPO DE MONTANTE SELECIONADO:

 

Etapa 1: Remover cifrões e/ou quaisquer outros caracteres não numéricos (letras, símbolos que não sejam decimais/virgulas, espaços).

 

Etapa 2: Com base no campo Débito/Crédito, aplique um sinal negativo no campo Montante caso ainda não exista, e certifique-se de que este sinal esteja no lado esquerdo do valor numérico.

 

Etapa 3: Procure a taxa de conversão atual para USD usando o arquivo de “Pesquisa do Código Monetário” e inclua ambos os campos “Taxa de câmbio USD” (USD Exchange Rate) e "Indicador Decimal (Decimal Indicator).

 

Etapa 4: Se o campo do Indicador Decimal for uma vírgula, troque as vírgulas por pontos para que o indicador Decimal seja um ponto para todos os registros.

 

Etapa 5: O campo final do "Montante Trocado em Transação" deve ser um tipo dado numérico Decimal Fixo (Fixed Decimal) com 6 casas decimais, convertido, usando a Taxa de Câmbio prevista para aquele Código Monetário.

 

O produto final deve ser uma macro usada para limpar o campo “Montante” nos 3 arquivos das regiões (separados ou combinados). Uma indicação de que você está no caminho certo será executar o fluxo de trabalho/macro sem receber nenhum erro de conversão ou alertas.

 

* Para um desafio extra, construa sua macro de uma maneira que lhe permita executá-la também para o campo Saldo Inicial, com a opção de NÃO aplicar a lógica de Débito/Crédito!

Bom desafio!

lemuelcastro
Bólide

Segue minha macro.

 

Saqueador
lemuelcastro_0-1642544975908.png