Ir para conteúdo
  • 0

Fazer uma condição para substituir valores


schmeisck
Ir para solução Solucionado por Diogo Gonçalves ,

Pergunta

14 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
Em 06/09/2021 em 15:28, schmeisck disse:

@Vitor Peralva 

Tenho uma coluna com números de chassi, quando ele começar com 3C3, quero que na coluna pais ele substitua o valor existente por Brasil.

É possível fazer isso sem criar uma nova coluna, dentro do power query?

Se puder mandar os prints com os passos, agradeço.

Oi schmeisck, eu fiz pelo seguinte processo:

Primeiro tem que saber a função que faz essa substituição, então criei uma nova coluna condicional. 

image.png.14d15701715afb131b61e1eaa31c92e2.png

bSiI1943Hz.png.e87417023c18b9c5807ba0b1b07fd69b.png

Peguei a função desse passo e deletei a coluna. A função:

= Table.AddColumn(Fonte, "Pais_2", each if Text.StartsWith([Chassi], "3C3") then "BR" else [Pais])

Agora em Editor Avançado, usei a Table.ReplaceValue:

let
    Fonte = // ... Tabela criada de exemplo
    Subst = Table.ReplaceValue(Fonte, each [Pais], each if Text.StartsWith([Chassi], "3C3") then "BR" else [Pais], Replacer.ReplaceText, {"Pais"})
in
    Subst

O resultado final ficou assim (o arquivo :Chassi.pbix)

bnzjAnX1rA.png.74f2628a10597f5bdce99659ce950736.png

Detalhes da FUNÇÃO

Os parâmetros da função Table.ReplaceValue:
image.png.3394529c2ea5b40556a1db14508a4af3.png
= Table.ReplaceValue(Fonte, each [Pais], each if Text.StartsWith([Chassi], "3C3") then "BR" else [Pais], Replacer.ReplaceText, {"Pais"})

Fonte = A tabela (Etapa aplicada anterior)
each [Pais] = Percorre cada valor (linha) da coluna que quer substituir
each if Text.StartsWith([Chassi], "3C3") then "BR" else [Pais] = novo valor, que é a nossa função condicional
Replacer.ReplaceText = Função que substitui um texto. Obs: para substituir numéricos tem a Replacer.ReplaceValue. Isso impacta no tipo da coluna
{"Pais"} = Coluna em lista

Link para o comentário
Compartilhar em outros sites

  • 1
  • Alunos

Bom dia @schmeisck.

Neste caso, você vai ter que usar realmente o IF ou o SWITCH conforme o @Alexandre H. Moraes informou. Contudo, essa sua condição vai ter que ser realizada na coluna nova, a qual você desejar substituir. Ex:

- Em seu modelo já existe a medida Letras (referente à uma outra coluna já existente);

- No caso você está inserindo a medida Números, que será uma nova coluna, aí você pode usar o IF ou o SWITCH, onde comparando a medida Letras.

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

  • 0
  • Alunos

@schmeisck dá uma olhada no vídeo que te passei, eu sugiro você fazer da seguinte forma:

- Crie uma medida com uma das duas possibilidades que o vídeo te explica, porém, verificando se contém o texto 3C3;

- Após isso, crie uma nova medida, nela você pode usar o IF, onde se a medida informada no item anterior for igual à True, você escreve "Brasil", senão você retorna o próprio valor da coluna;

- Aí é essa medida que você deverá exibir no seu visual.

Editado por delmarmachado
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
47 minutos atrás, schmeisck disse:

@Vitor Peralva 

Tenho uma coluna com números de chassi, quando ele começar com 3C3, quero que na coluna pais ele substitua o valor existente por Brasil.

É possível fazer isso sem criar uma nova coluna, dentro do power query?

Se puder mandar os prints com os passos, agradeço.

Manda uma tabela de amostra com umas cinco linhas, que tenha ao menos uma coluna de chassi e uma de país e com uns 2 ou 3 países diferentes.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
3 horas atrás, schmeisck disse:

Se for pelo IF ou SWITCH, qual seria o argumento para se começar com...

É só passar a coluna que consta a informação que deseja mudar. No video que encaminhei explica como fazer essa passagem de dados 

Editado por Alexandre H. Moraes
Melhorar resposta
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...