Ir para conteúdo
  • 0

Mudar valor R$ para negativo automaticamente caso a outra coluna seja "Devolução"


João Brcelo
Ir para solução Solucionado por Nelson Kobayashi ,

Pergunta

  • Membros

Bom dia pessoal,

Estou com problema em uma base do meu trabalho. Queria ajustar na ETL o valor de uma coluna.

Quando há algum lançamento incorreto é realizada a devolução. O problema é que quando extrai do sistema os lançamentos esta informação vem com o numero positivo e soma no total novamente duplicando os valores, sendo que tinha que subtrair para zerar o valor lançado anteriormente.

Fiz um modelo simples no Excel para ficar mais fácil de entender.

 

Se alguém já passou por isso ou tiver uma ideia de como resolver kk

Quebrei a cabeça aqui e não solucionei ainda kk

 

valeu!2012326666_Capturadetela2021-06-10091632.thumb.jpg.215314655aa3465f000467c99ad3c792.jpg

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 1
  • Membros
  • Solução

Olá @João Brcelo, segue uma solução criando uma nova coluna usando DAX no próprio Power BI.

* Mais abaixo segue a mesma solução no Power Query.

Porém essas soluções podem deixar seu projeto lento se a sua tabela de vendas/devolução tiver muitos milhares de registros de vendas.

Nesse caso seria mais indicado criar uma medida DAX para cada cálculo.

 

Segue a minha sugestão de solução:

Abra a guia de tabelas, selecione a tabela onde quer a coluna corrigida e clique em “Nova Coluna”

image.png.d6b6d72a8c91a7b089a6e49341638ee0.png

 

Crie uma MEDIDA DAX usando IF:

image.png.ea06d006fa1ffea688f4f5c348fb59d3.png

Prontinho... Agora vamos a solução no Power Query e Linguagem M:

 

SUGESTÃO DE SOLUÇÃO COM POWER QUERY:

Entre no Power Query e selecione a tabela a corrigir, depois selecione a coluna de valor e o menu Adicionar Coluna > Coluna Condicional:

image.png.124bb0435b4926e87ef466e3b96b5ec0.png

 

Vai abrir um menu de Adicionar Coluna Condicional, dê um nome para a coluna (Coluna Corrigida),

Nome da Coluna = TIPO

Operador = “igual a”

Valor = DEV (ou “Devolução”)

Saída = VALOR (tem que mudar o tipo de dado para “Selecionar uma coluna)

Senão = VALOR

Essa configuração diz que: “Se em TIPO for detectado um texto DEVOLUÇÃO, traga o valor de VALOR, senão traga VALOR.

Depois disso vamos corrigir a fórmula M para converter devolução pra negativo:

image.png.567338837e960bc566f7991144aae38e.png

 

Depois que clicar em OK, verá em sua tabela que uma nova coluna foi criada, mas os valores de devolução ainda não estão em negativo.

No menu de etapas aplicadas, selecione a etapa que criamos e observe a fórmula M que foi criada na barra de fórmulas:

image.png.5a3ff0d2c2df5123c85aa22f583006f5.png

 

Nessa fórmula, vamos corrigir para multiplicar Valor por menos 1, inserindo direto na fórmula um *-1 (asterisco, sinal de negativo e o número 1) logo após o primeiro [VALOR] :

image.png.dae229c2bf0083dcc1be24f4057e09a9.png

 

Prontinho!

image.png.db8e454b1f00bf937663533afa39e738.png

 

Verifique se o seu modelo ficou lento após criar essa coluna... Considere essa ser a razão da lentidão.

Espero ter ajudado.

 

 

 

 

 

image.png

  • Gostei 1
  • Obrigado(a) 3
Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
Em 10/06/2021 em 10:35, Nelson Kobayashi disse:

Olá @João Brcelo, segue uma solução criando uma nova coluna usando DAX no próprio Power BI.

* Mais abaixo segue a mesma solução no Power Query.

Porém essas soluções podem deixar seu projeto lento se a sua tabela de vendas/devolução tiver muitos milhares de registros de vendas.

Nesse caso seria mais indicado criar uma medida DAX para cada cálculo.

 

Segue a minha sugestão de solução:

Abra a guia de tabelas, selecione a tabela onde quer a coluna corrigida e clique em “Nova Coluna”

image.png.d6b6d72a8c91a7b089a6e49341638ee0.png

 

Crie uma MEDIDA DAX usando IF:

image.png.ea06d006fa1ffea688f4f5c348fb59d3.png

Prontinho... Agora vamos a solução no Power Query e Linguagem M:

 

SUGESTÃO DE SOLUÇÃO COM POWER QUERY:

Entre no Power Query e selecione a tabela a corrigir, depois selecione a coluna de valor e o menu Adicionar Coluna > Coluna Condicional:

image.png.124bb0435b4926e87ef466e3b96b5ec0.png

 

Vai abrir um menu de Adicionar Coluna Condicional, dê um nome para a coluna (Coluna Corrigida),

Nome da Coluna = TIPO

Operador = “igual a”

Valor = DEV (ou “Devolução”)

Saída = VALOR (tem que mudar o tipo de dado para “Selecionar uma coluna)

Senão = VALOR

Essa configuração diz que: “Se em TIPO for detectado um texto DEVOLUÇÃO, traga o valor de VALOR, senão traga VALOR.

Depois disso vamos corrigir a fórmula M para converter devolução pra negativo:

image.png.567338837e960bc566f7991144aae38e.png

 

Depois que clicar em OK, verá em sua tabela que uma nova coluna foi criada, mas os valores de devolução ainda não estão em negativo.

No menu de etapas aplicadas, selecione a etapa que criamos e observe a fórmula M que foi criada na barra de fórmulas:

image.png.5a3ff0d2c2df5123c85aa22f583006f5.png

 

Nessa fórmula, vamos corrigir para multiplicar Valor por menos 1, inserindo direto na fórmula um *-1 (asterisco, sinal de negativo e o número 1) logo após o primeiro [VALOR] :

image.png.dae229c2bf0083dcc1be24f4057e09a9.png

 

Prontinho!

image.png.db8e454b1f00bf937663533afa39e738.png

 

Verifique se o seu modelo ficou lento após criar essa coluna... Considere essa ser a razão da lentidão.

Espero ter ajudado.

 

 

 

 

 

image.png

@Nelson Kobayashi, boa tarde!
E quando a coluna está em outra tabela, consigo incluir alguma função dentro da IF para buscar esse valor que vai classificar o resultado?

Ex.: se a coluna "A" da tabela 1 for Devolução, então a coluna "A" da tabela 2 deve ficar com sinal negativo.

image.png.87efb63bfb0e615a03566d33d681542e.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
3 horas atrás, Thiago Anizio disse:

@Nelson Kobayashi, boa tarde!
E quando a coluna está em outra tabela, consigo incluir alguma função dentro da IF para buscar esse valor que vai classificar o resultado?

Ex.: se a coluna "A" da tabela 1 for Devolução, então a coluna "A" da tabela 2 deve ficar com sinal negativo.

image.png.87efb63bfb0e615a03566d33d681542e.png

Olá @Thiago Anizio!

Em teoria, é possível sim. Porém depende de como os dados das duas tabelas se cruzam.

Se os valores da tabela 2 se cruzarem com as classificações da Tabela1 de uma forma clara, sem chance para interpretação dúbia, acho que dá sim pra usar alguma condição IF que atenda.

Abç.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...