Colunas calculadas no SharePoint | Uma visão geral
Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.
A tabela virtual do LuckyTemplates é meu tópico DAX favorito. Eles são a chave para liberar todo o poder do DAX. As tabelas virtuais são o único tipo de tabelas no LuckyTemplates que são totalmente dinâmicas e existem problemas que só podem ser resolvidos aplicando técnicas de tabelas virtuais dentro de suas medidas. Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.
Neste tutorial, vou compartilhar minhas 5 principais dicas e truques que acumulei ao longo dos anos que realmente me ajudaram a entender e depurar o que está acontecendo nas tabelas virtuais do Power Bi.
O exemplo que vou mostrar hoje é do e vem de um membro chamado Dave C, que trabalha com segurança industrial. Dave tinha uma série de pontuações de segurança e queria normalizá-las para que a pontuação máxima fosse 10 e, em seguida, chegar dinamicamente ao enésimo nessa lista.
Inicialmente, pensamos em fazer isso através de uma simples medida , mas depois percebemos que muitos de seus valores normalizados possuem empates. Por exemplo, se você quiser o sétimo item da lista, não haverá um número sete em um RANKX. Não há uma maneira fácil de tirar isso de uma condição de filtro. Portanto, decidimos por uma medida baseada em para que sempre fizesse uma contagem regressiva até o n-ésimo número.
Isso é semelhante a quando você puxa a sétima carta de um baralho, conta sete cartas e depois vira aquela pilha de sete, e a carta no fundo é a que você deseja. Faremos o equivalente a isso em uma medida TOPN.
Índice
Dica nº 1: Use uma ferramenta externa para visualizar sua tabela virtual do LuckyTemplates
Você pode usar o DAX Studio ou o Tabular Editor. Neste exemplo, estou usando o Tabular Editor 3 (TE3). É tecnicamente possível fazer isso usando a guia Modelagem – Nova tabela, mas isso criará tabelas físicas em seu modelo de dados. Você terá que alternar manualmente entre isso e o editor e é apenas uma maneira lenta e difícil de fazer isso.
Quando você vir a maneira dinâmica como isso pode ser feito por meio de uma ferramenta externa, verá o benefício.
Portanto, dentro do TE3, criamos uma nova consulta DAX. Podemos pegar nossa medida inicial e copiá-la para nossa consulta DAX.
Se você se lembra, as consultas DAX sempre começam com EVALUATE . Inicialmente, obteremos um erro porque as consultas DAX retornam tabelas . Esta foi uma medida com as duas últimas variáveis que são escalares. O que podemos fazer aqui é alterar o valor de retorno , que é minha próxima dica.
Dica nº 2: depure sua tabela virtual do LuckyTemplates em partes usando variáveis
Você pode depurar tabelas virtuais da mesma forma que faz com medidas – peça por peça, alterando o valor de retorno. Vamos começar com a primeira tabela virtual, a vEvalTable . Simplesmente substituímos o valor RETURN (Final) pela nossa primeira variável (VAR). E você pode ver que o erro desaparece porque a consulta DAX agora está obtendo uma tabela.
Na vEvalTable, estamos pegando os dados originais, que são as pontuações de segurança, normalizando-os e adicionando a coluna Valor Normalizado à tabela virtual. Temos o Índice, o Valor da Região e o valor Normalizado. Podemos classificar esses valores para cima ou para baixo e filtrar os valores também.
Isso está nos dando exatamente o que esperávamos. Ele retorna 50 linhas, que é o conjunto de dados completo. Tudo está indo bem, então vamos descer e explorar a próxima tabela, que é a vTableTopN . Nesta tabela, estamos pegando o TOPN usando o n-ésimo valor do controle deslizante do item. Neste exemplo, temos o sétimo valor da tabela virtual acima (vEvalTable) e estamos tomando esse TOPN com base no valor normalizado em ordem decrescente.
Então, quando mudamos nossa função RETURN para isso, ela cai e não obtemos nada. Vamos dar uma olhada porque este é um conceito muito importante para depurar e entender as tabelas virtuais.
Se olharmos para a fórmula, temos o Nth Item Slider Value como o principal suspeito aqui. De volta ao LuckyTemplates, podemos ver que basicamente é apenas colher o número sete. Observe que os controles deslizantes existem dentro do contexto de uma página .
E assim, neste caso, quando estamos analisando a depuração dessa tabela fora do contexto, esse valor selecionado não tem contexto em torno dele . Não tem nada em termos de ser capaz de puxar esse número. Estávamos obtendo um TOPN, mas não sabemos qual é o N no TOPN porque o valor selecionado está retornando um espaço em branco.
Como lidamos com isso? Vejamos a medida de valor selecionada. Na maioria das vezes, sempre prestamos atenção no primeiro parâmetro em , mas existe um segundo parâmetro, que é um alternativo. Isso nos leva à minha terceira dica.
Dica nº 3: Use o parâmetro alternativo em SELECTEDVALUE
O que aconteceu aqui é que ele está puxando o branco como o alternativo. Mas o que queremos fazer (para fins de depuração) é colocar um valor real aqui . Então, colocamos o número 7 e guardamos isso.
Agora temos alguns valores. Ele está retornando sete linhas, que é exatamente o que deveria devido ao valor TOPN de sete.
Vamos continuar na linha até a próxima tabela virtual, que é a vTableNthItem . Temos aquela pilha de sete cartas, e esta mesa está basicamente virando-a. Estávamos em ordem decrescente na tabela anterior e agora estamos em ordem crescente.
Se pegarmos e copiarmos isso para a seção RETURN, obteremos os resultados. É interessante que não está retornando uma linha. Está retornando três linhas porque essas três estão empatadas. Essa é exatamente a razão pela qual usamos TOPN em vez de RANKX, neste caso.
Agora vamos ao Resultado . Se copiarmos o resultado do VAR para a seção RETURN, chegaremos à minha quarta dica.
Dica #4: Use { } para transformar escalares em tabelas
Dentro da fórmula, estamos pegando o máximo ( ) desse vTableNthItem e estamos retornando o valor normalizado. Isso pode ser , pode ser , pode ser . É apenas algum agregador que está retornando aquele valor naquela tabela. E então, se copiarmos isso, isso nos dará um erro porque agora é um escalar.
Mas esta é minha quarta dica, que está no contexto da depuração. O que você pode fazer é apenas adicionar os colchetes . Ao fazer isso, transforma esse escalar em uma tabela.
E então, o que temos aqui é apenas uma verificação de erro final, ou seja, se a tabela de avaliação for menor que o número de linhas, ela retornará dados insuficientes. Mas sabemos, neste caso, que nosso conjunto de dados é grande o suficiente. No entanto, podemos apenas testar isso digitando Final . Novamente, como é um escalador, também precisamos dos colchetes e obtemos o mesmo valor aqui.
Investigamos e depuramos essa tabela virtual e usamos o valor alternativo em SELECTEDVALUE para evitar que ela caia fora do contexto. Agora, quero apenas mostrar uma dica adicional que achei muito útil.
Dica nº 5: Use CONCATENATEX/UNICHAR para transformar uma tabela em um escalar
No contexto de fazer sua depuração, você vai querer ver no LuckyTemplates a aparência dessa tabela. A regra geral é que uma medida só pode retornar um escalar, não uma tabela. Mas há um truque que vou mostrar a você que permite que ele quase retorne uma mesa.
Vamos dar uma olhada nessa medida, que é Visualized Virtual Table , e temos aqui todas as mesas virtuais que tínhamos inicialmente. Por exemplo, queremos exibir, digamos, na página inicial do relatório, o vTableTopN.
Você pode usar esta função . Na verdade, você pode pegar esse nome de tabela virtual (vTableTopN) e pegar os valores dessa tabela e concatená-los. Você pode criar algo que basicamente se parece com uma mesa virtual.
Se fizermos essa medida, precisamos voltar ao LuckyTemplates e colocá-la em uma medida de cartão. Normalmente a tabela dá erro, mas através da CONCATENATEX, ela transformou aquela tabela em um scaler. Você pode ver que é bastante primitivo, mas está retornando exatamente o que esperamos e está fazendo isso de forma dinâmica.
É uma maneira de inserir uma tabela em uma medida e mostrar isso em seu relatório. É um truque de depuração realmente útil. Ele fornecerá um bom formato em um valor de cartão que você pode usar em um relatório.
Tabelas virtuais principais no LuckyTemplates usando
tabelas virtuais DAX dentro de funções de iteração no LuckyTemplates –
Tabelas de conceitos DAX no LuckyTemplates: tipos e distinções
Conclusão
Esperançosamente, este tutorial fornece algumas ideias para pensar em termos de trabalho com uma tabela virtual do LuckyTemplates. Estas são algumas dicas e truques adicionais para entender o que está acontecendo em suas mesas virtuais. Espero que você tenha achado isso útil.
Visite nosso site para obter mais tutoriais do LuckyTemplates e confira os links abaixo para obter mais conteúdo relacionado.
Tudo de bom!
Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.
Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates
Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.
Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.
Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.
Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.
Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.
O que é self em Python: exemplos do mundo real
Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.
Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.