Ir para conteúdo
  • 0

Power Query - Criar Coluna Personalizada


Diego de Paula Silva
Ir para solução Solucionado por Vitor Peralva ,

Pergunta

  • Alunos

Pessoal, boa noite!

Estou precisando criar uma coluna personalizada no Power Query realizando as validações abaixo:
SE (ESQUERDA(TPT;10)="ABCDEFGHIJ";"A";
      SE(ESQUERDA(TPT;8)="KLMNOPQR";"A";
     SE(ARRUMAR(TRANSP.REDESP.)<>"";ARRUMAR(TIPO #1)&ARRUMAR(TIPO #2)&ARRUMAR(TIPO #3)&ARRUMAR(TIPO #4)&ARRUMAR(TIPO #5)&ARRUMAR(TIPO #6)&ARRUMAR(TIPO #7)&ARRUMAR(TIPO #8)&ARRUMAR(TIPO #9)&6;
     (ARRUMAR(TIPO #1)&ARRUMAR(TIPO #2)&ARRUMAR(TIPO #3)&ARRUMAR(TIPO #4)&ARRUMAR(TIPO #5)&ARRUMAR(TIPO #6)&ARRUMAR(TIPO #7)&ARRUMAR(TIPO #8)&ARRUMAR(TIPO #9)))))

É possível fazer essas validações no Power Query?
 

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução

Olá @Diego de Paula Silva!

 

Tentando realizar uma "tradução" da sua função no Excel para a linguagem M, você teria mais ou menos o seguinte:

if Text.Start([TPT],10) = "ABCDEFGHIJ" then "A"
else if Text.Start([TPT],8) = "KLMNOPQR" then "A"
else if Text.Trim([TRANSP.REDESP.]) <> null then Text.Trim([TIPO #1]) & Text.Trim([TIPO #2]) & Text.Trim([TIPO #3]) & Text.Trim([TIPO #4]) & Text.Trim([TIPO #5]) & Text.Trim([TIPO #6]) & Text.Trim([TIPO #7]) & Text.Trim([TIPO #8]) & Text.Trim([TIPO #9]) & “6”
else Text.Trim([TIPO #1]) & Text.Trim([TIPO #2]) & Text.Trim([TIPO #3]) & Text.Trim([TIPO #4]) & Text.Trim([TIPO #5]) & Text.Trim([TIPO #6]) & Text.Trim([TIPO #7]) & Text.Trim([TIPO #8]) & Text.Trim([TIPO #9])

 

Numa mensagem posterior, citou que não sabia como fazer o if e o left no Power Query.

O if segue a estrutura citada pelo colega:

if ANALISE then VALORPARAVERDADEIRO else VALORPARAFALSO.

Se você precisar encadear ifs, então, para os próximos if, você começa com else if.

No que tange ao LEFT ou ESQUERDA, você pode utilizar a função Text.Start para extrair os primeiros caracteres (esquerda para direita).

A sintaxe é basicamente:

Text.Start([Coluna], QUANTIDADECARACTERES)

 

Espero que tenha ajudado.

Se houverem dúvidas remanescentes, informa e se possível, traga uma amostra de dados para facilitar a nossa análise do seu problema. 

  • Like 1
  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Diego, acredito que essa fórmula aí seja feita via EXCEL. Com certeza irá conseguir via Power Query. Mas pro pessoal da comunidade conseguir te ajudar, é preciso você explicar melhor o que precisa, fornecer uma base de dados, mesmo que fake. Explicar em mais detalhes a sua dúvida. Apenas analisar uma fórmula isolada do Excel, acho que você não vai encontrar a resposta que precisa. 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

No meu modelo precisei criar a coluna "TRANSPORTADORA" utilizando a coluna personalizada. Nela eu concatenei várias colunas conforme imagem em anexo.

Agora preciso criar a coluna "Planilha", de acordo com algumas validações da coluna "Transportadora". Regra abaixo:

Se os 10 primeiros caracteres (da esquerda pra direita) da coluna: Transportadora for = ABCDEFGHIJ então mostrar na coluna = A

Se os 8 primeiros caracteres (da esquerda pra direita) da coluna: Transportadora for = KLMNOPQR então mostrar na coluna = A

Se a coluna: TRANSP.REDESP. for <>"" então preciso concatenar mais algumas colunas

Senão  fazer uma outra operação de concatenação com outras colunas.

A parte de concatenar eu entendi como fazer no power query. Só não estou conseguindo inserir o IF e a função Left

Coluna Transportadora.png

Resultado da Coluna Transportadora.png

Editado por Diego de Paula Silva
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Diego de Paula Silva boa noite, tudo bem? 

Devido a complexidade do seu caso, sugiro anexar um arquivo aqui em excel, pode ser com poucas linhas e dados fake (tipo substituir os dados sensíveis por abcde...) e dentro desse mesmo arquivo coloque uma coluna destacada mostrando o resultado que você espera.

grata, Rose

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...