Um belo dia fui abordado por um colega, a respeito de “como fazer tal coisa”, e elaborei a solução usando recurso que dependia de criar tabela no DAX, e depois usar dentro de uma medida.
Pois bem, se eu soubesse disso quando iniciante em Power BI (DAX), muitos caminhos teriam sido abreviados, mas, vamos lá, quero mostrar para vocês como montar tabelas no seu Power BI.
Detalhe importante, essas tabelas criadas, mesmo que presentes no modelo de forma física, não serão vistas “lá atrás” pelo Power Query, e sim, somente “aqui na frente” pelo Power BI.
Isso já ajuda muito, pois eu mesmo, quando vou criar aquelas “tabelinhas” que usamos como parâmetros para mostrar algo na página, eu não faço usando o “Inserir Dados”, e sim, uso as técnicas que mostrarei para vocês a seguir.
Como falei no parágrafo anterior, imagine você, que você tenha umas 10 dessas mini tabelinhas, para selecionar o que aparece em tela, e quando abrir o Power Query, você não quer que elas estejam lá poluindo seu background. quer?
Mas esse assunto é muito sensível, e é como Coca x Pepsi…uns gostam de uma e outros gostam de outra.
Vamos por a mão na massa e montar as tabelas!
1 – Criando uma tabela no DAX com uma linha simples
Você vai usar a técnica das chaves entre o valor que queira, como na imagem a seguir:
Tabela = {"A"}
Esse comando vai entregar uma tabela com 1 linha, cujo nome da coluna será “value“:
Também podemos usar a formula ROW, e usando esta opção, você pode dar um nome à coluna:
Tabela =
ROW(
"Fruta", -- nome da coluna
"Banana" -- valor da linha
)
2 – Criando uma tabela no DAX com uma coluna e várias linhas
Assim como o primeiro método ensinado no tópico anterior, conseguimos criar uma tabela com várias linhas usando chaves, mas, novamente sem a permissão de informar o nome da coluna.
Tabela =
{
"banana",
"pera",
"uva"
}
Um pouco mais “Rebuscado”, mas com o mesmo efeito, pode-se usar o UNION também:
Tabela =
UNION(
{"banana"},
{"pera"},
{"uva"}
)
Veja como como fica o uso do UNION
com a função ROW
Tabela =
UNION(
ROW("Fruta", "Banana"), -- linha 1
ROW("Fruta", "pera"), -- linha 2
ROW("Fruta", "uva") -- linha 3
)
Quando usar ROW
e quando usar só {}
?
Depende! eu uso mais {}
quando tenho tabelas de 1 coluna e não preciso me preocupar com o nome da coluna.
Sobre união de tabelas, tem uma aula em meu canal do Youtube falando de cuidados que você tem que ter ao usar essa técnica.
3 – Criando uma tabela com várias colunas e várias linhas
Entramos aqui na irmã da #table (lá do Power Query), com a mesma estrutura.
A função DATATABLE é responsável por criar de forma inteligente uma tabela, aonde você pode informar o nome das colunas, o tipo dos dados, e quantas linhas quiser.
Sou suspeito em falar pois uso bastante ela, e compartilho com vocês como montar:
Tabela =
DATATABLE(
"fruta", STRING,
"peso", INTEGER,
{
{"banana", 100},
{"pera", 180},
{"uva", 20}
}
)
Veja esse artigo em formato de vídeo
Para você poder extrair o máximo de conhecimento desse post, criamos uma video-aula e postamos em nosso canal do Youtube, com explicações complementares à esse artigo.
Dica Bônus – Selecionando Medida com Maior Valor
Como aplicação prática das técnicas que apresentei acima, quero mostrar a vocês uma solução para um problema de um aluno, que desejava que a medida retornasse o maior valor dentre 3 outras medidas.
Usamos uma criação de tabela para resolver isso, e te convido a assistir CLICANDO AQUI.
Ah, se curtiu… inscreva-se, e curta o vídeo!
Concluindo
São algumas formas de criar tabelas com uso do DAX, não passando pelo Power Query, mas além dessas, temos as funções VALUES, FILTER, ALL… entre outras, que criam tabelas a partir de sua tabela já existente.
Se torne especialista em tratamento de dados, e nunca mais passar calor ao ter que converter um relatório, e confrontar com outro, inclusive, conectando direto no Banco de Dados, te convido a fazer parte da FORMAÇÃO POWER QUERY 2.0.
É um pacote de 16 cursos que totalizam aproximadamente 300 horas (em 2022) que vai pegar você que é “basicão” em Excel e transformar em um Mestre Jedi do tratamento de dados.
Até a próxima pessoal!