Ir para conteúdo
  • 0

Coluna personalizada - Power Query


Thiago Pedrazi
Ir para solução Solucionado por Joao Raulino ,

Pergunta

  • Alunos

Boa tarde Pessoal,
Eu tenho uma tabela abaixo com classificação de clima por faixa de horário. Eu precisava criar uma coluna personalizada onde eu precisasse ler as colunas date_only, range e  Clima_De_Para, e criar as seguintes regras abaixo:
 

- Considerar como Tempo Aberto o dia se a contagem da coluna Clima_De_Para tiver Tempo Aberto >= 60% das faixas e se a contagem da coluna Clima_De_Para tiver Chuva <= 10% das faixas.

- Considerar como Nublado/Chuva Parcial o dia se a contagem da coluna Clima_De_Para tiver Tempo Aberto >= 60% das faixas e se a contagem da coluna Clima_De_Para tiver Chuva > 10% das faixas.

- Considerar como Nublado/Chuva Parcial o dia se a contagem da coluna Clima_De_Para tiver Nublado/Chuva Parcial >= 40% das faixas e se a contagem da coluna Clima_De_Para tiver Chuva <= 40% das faixas. 

- Considerar como Nublado/Chuva Parcial o dia se a contagem da coluna Clima_De_Para tiver Nublado/Chuva Parcial >= 40% das faixas e se a contagem da coluna Clima_De_Para tiver Tempo Aberto <= 10% das faixas. 

- Considerar como Chuva o dia se a contagem da coluna Clima_De_Para tiver Chuva >= 40% das faixas e se a contagem da coluna Clima_De_Para tiver Tempo Aberto <= 10% das faixas.

 

Eu criei essa coluna em M, mas está dando erro:

if 
    (List.Count(List.Select([Clima_De_Para] = "Tempo Aberto")) / List.Count([Clima_De_Para]) >= 0.6) and 
    (List.Count(List.Select([Clima_De_Para] = "Chuva")) / List.Count([Clima_De_Para]) <= 0.1) 
  then "Tempo Aberto"

else if 
    (List.Count(List.Select([Clima_De_Para] = "Tempo Aberto")) / List.Count([Clima_De_Para]) >= 0.6) and 
    (List.Count(List.Select([Clima_De_Para] = "Chuva")) / List.Count([Clima_De_Para]) > 0.1) 
  then "Nublado/Chuva Parcial"

else if 
    (List.Count(List.Select([Clima_De_Para] = "Nublado/Chuva Parcial")) / List.Count([Clima_De_Para]) >= 0.4) and 
    (List.Count(List.Select([Clima_De_Para] = "Chuva")) / List.Count([Clima_De_Para]) <= 0.4) 
  then "Nublado/Chuva Parcial"

else if 
    (List.Count(List.Select([Clima_De_Para] = "Nublado/Chuva Parcial")) / List.Count([Clima_De_Para]) >= 0.4) and 
    (List.Count(List.Select([Clima_De_Para] = "Tempo Aberto")) / List.Count([Clima_De_Para]) <= 0.1) 
  then "Nublado/Chuva Parcial"

else if 
    (List.Count(List.Select([Clima_De_Para], each _ = "Chuva")) / List.Count([Clima_De_Para]) >= 0.4) and 
    (List.Count(List.Select([Clima_De_Para] = "Tempo Aberto")) / List.Count([Clima_De_Para]) <= 0.1) 
  then "Chuva"

else 
  "Não encontrado"

 

Agradeço quem puder ajudar!

 

image.png.252df709c225b2fe6c1d5da5ba37a445.png

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Suave @Thiago Pedrazi?

Teu código esta dando erro porque a função List.Select() precisa de 2 argumentos e você só passou 1:

image.png.1a4a650ba570ebf5f8939366aaa0053e.png

Alem disso, pelo que entendi você precisa fazer essa comparação dia-a-dia. Para isso você vai precisar filtrar a tabela primeiro para depois fazer a comparação.

Da uma olhada no .PBIX que adicionei com o resultado:

image.png.1ae7412cc75a81f7a8508979d280c174.png

Abs!

 

Clima.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
6 minutos atrás, Thiago Pedrazi disse:

Boa tarde Pessoal,
Eu tenho uma tabela abaixo com classificação de clima por faixa de horário. Eu precisava criar uma coluna personalizada onde eu precisasse ler as colunas date_only, range e  Clima_De_Para, e criar as seguintes regras abaixo:
 

- Considerar como Tempo Aberto o dia se a contagem da coluna Clima_De_Para tiver Tempo Aberto >= 60% das faixas e se a contagem da coluna Clima_De_Para tiver Chuva <= 10% das faixas.

- Considerar como Nublado/Chuva Parcial o dia se a contagem da coluna Clima_De_Para tiver Tempo Aberto >= 60% das faixas e se a contagem da coluna Clima_De_Para tiver Chuva > 10% das faixas.

- Considerar como Nublado/Chuva Parcial o dia se a contagem da coluna Clima_De_Para tiver Nublado/Chuva Parcial >= 40% das faixas e se a contagem da coluna Clima_De_Para tiver Chuva <= 40% das faixas. 

- Considerar como Nublado/Chuva Parcial o dia se a contagem da coluna Clima_De_Para tiver Nublado/Chuva Parcial >= 40% das faixas e se a contagem da coluna Clima_De_Para tiver Tempo Aberto <= 10% das faixas. 

- Considerar como Chuva o dia se a contagem da coluna Clima_De_Para tiver Chuva >= 40% das faixas e se a contagem da coluna Clima_De_Para tiver Tempo Aberto <= 10% das faixas.

 

Eu criei essa coluna em M, mas está dando erro:

if 
    (List.Count(List.Select([Clima_De_Para] = "Tempo Aberto")) / List.Count([Clima_De_Para]) >= 0.6) and 
    (List.Count(List.Select([Clima_De_Para] = "Chuva")) / List.Count([Clima_De_Para]) <= 0.1) 
  then "Tempo Aberto"

else if 
    (List.Count(List.Select([Clima_De_Para] = "Tempo Aberto")) / List.Count([Clima_De_Para]) >= 0.6) and 
    (List.Count(List.Select([Clima_De_Para] = "Chuva")) / List.Count([Clima_De_Para]) > 0.1) 
  then "Nublado/Chuva Parcial"

else if 
    (List.Count(List.Select([Clima_De_Para] = "Nublado/Chuva Parcial")) / List.Count([Clima_De_Para]) >= 0.4) and 
    (List.Count(List.Select([Clima_De_Para] = "Chuva")) / List.Count([Clima_De_Para]) <= 0.4) 
  then "Nublado/Chuva Parcial"

else if 
    (List.Count(List.Select([Clima_De_Para] = "Nublado/Chuva Parcial")) / List.Count([Clima_De_Para]) >= 0.4) and 
    (List.Count(List.Select([Clima_De_Para] = "Tempo Aberto")) / List.Count([Clima_De_Para]) <= 0.1) 
  then "Nublado/Chuva Parcial"

else if 
    (List.Count(List.Select([Clima_De_Para], each _ = "Chuva")) / List.Count([Clima_De_Para]) >= 0.4) and 
    (List.Count(List.Select([Clima_De_Para] = "Tempo Aberto")) / List.Count([Clima_De_Para]) <= 0.1) 
  then "Chuva"

else 
  "Não encontrado"

 

Agradeço quem puder ajudar!

 

image.png.252df709c225b2fe6c1d5da5ba37a445.png

quial o erro? consegue mandar o pbix?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 24/02/2024 em 11:28, Joao Raulino disse:

Suave @Thiago Pedrazi?

Teu código esta dando erro porque a função List.Select() precisa de 2 argumentos e você só passou 1:

image.png.1a4a650ba570ebf5f8939366aaa0053e.png

Alem disso, pelo que entendi você precisa fazer essa comparação dia-a-dia. Para isso você vai precisar filtrar a tabela primeiro para depois fazer a comparação.

Da uma olhada no .PBIX que adicionei com o resultado:

image.png.1ae7412cc75a81f7a8508979d280c174.png

Abs!

 

Clima.pbix 65.76 kB · 0 downloads

Bom dia @Joao Raulino , Obrigado pela ajuda! Vou verificar e retorno ainda hoje! Muito obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 24/02/2024 em 11:28, Joao Raulino disse:

Suave @Thiago Pedrazi?

Teu código esta dando erro porque a função List.Select() precisa de 2 argumentos e você só passou 1:

image.png.1a4a650ba570ebf5f8939366aaa0053e.png

Alem disso, pelo que entendi você precisa fazer essa comparação dia-a-dia. Para isso você vai precisar filtrar a tabela primeiro para depois fazer a comparação.

Da uma olhada no .PBIX que adicionei com o resultado:

image.png.1ae7412cc75a81f7a8508979d280c174.png

Abs!

 

Clima.pbix 65.76 kB · 1 download

Deu tudo certo @Joao Raulino! Gratidão pela ajuda! Muito obrigado! Abs!

  • Like 1
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...