Tabelas no LuckyTemplates: tipos e distinções

Quero passar algum tempo hoje falando sobre tabelas no LuckyTemplates. Deparamo-nos com mesas o tempo todo com todos os problemas, mas não gastamos muito tempo pensando neles sozinhos. Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.

Recentemente, houve uma postagem do membro do LuckyTemplates, Ashton, que sempre apresenta perguntas boas e instigantes. Sua consulta me fez pensar sobre um padrão que vejo com bastante regularidade e quero abordar neste tutorial.

Não foi um erro que ele cometeu, mas é um erro comum. Vejo muitas vezes as pessoas dizerem que estão tendo problemas com uma mesa virtual, por exemplo, quando não é uma mesa virtual em primeiro lugar.

Há uma distinção real entre os tipos de tabelas no LuckyTemplates.

A analogia que eu daria é se alguém dissesse: “Ei, adotei um cachorro recentemente e estou tendo problemas com ele e gostaria de saber se você pode ajudar” e não fosse um cachorro, mas um lobo. Ambos são caninos, mas existem algumas grandes distinções que você deve levar em consideração.

Portanto, embora sejam todos da mesma família, assim como as tabelas no LuckyTemplates, são distinções importantes que realmente afetam a solução e como você usa essas tabelas. Então, o que eu queria fazer era revisitar a pergunta de Ashton e, em seguida, aprofundar um pouco as diferenças entre as tabelas que você encontra no LuckyTemplates e mostrar como isso influencia a maneira como você as manipula.

A questão era bem simples, mas há um pouco mais do que parece inicialmente. Ele tinha um conjunto de dados simples que dizia apenas clientes, o tipo de fruta que eles compravam, a quantidade e apenas um número de índice.

Tabelas no LuckyTemplates: tipos e distinções

Ele queria ter um fatiador com capacidade de seleção múltipla para que, se você selecionasse laranja, ele puxasse todos os clientes que compraram laranjas, mas também mostrasse o que mais eles compraram.

Tabelas no LuckyTemplates: tipos e distinções

Portanto, se desativarmos essa seleção (laranja), poderemos ver o conjunto de dados completo. Também podemos ver que esses são os dois clientes (Joe e Mary) que compraram laranjas, mas cada um deles também fez uma compra adicional.

Tabelas no LuckyTemplates: tipos e distinções

E assim, a primeira coisa que sabemos é que o cortador de frutas deve ser uma mesa de corte desconectada. Se fosse um fatiador comum, você acertaria a laranja e basicamente tiraria tudo, menos a laranja da mesa. Também sabemos, porque isso é dinâmico, temos um problema de mesa virtual.

Então, vamos nos aprofundar um pouco nisso, mas antes, vamos dar uma olhada nos diferentes tipos de tabelas que encontramos no LuckyTemplates.

Índice

Três tipos de tabelas no LuckyTemplates

Existem três tipos de mesas que encontramos regularmente. A primeira é a mais comum e é uma tabela física, e esses são realmente seus dados primários. Sempre que você obtém dados ou insere dados diretamente por meio desta opção ou no Power Query , você faz uma referência ou duplicata ou carrega dados por meio de uma consulta em branco, como uma tabela de datas, que é uma tabela física.

Tabelas no LuckyTemplates: tipos e distinções

Uma tabela física não é totalmente dinâmica, mas possui todas essas outras características que aumentam o tamanho do arquivo porque são dados físicos. Está acessível no Power Query. Normalmente, os relacionamentos no modelo de dados são construídos por meio de relacionamentos físicos. Eles não precisam ser, mas geralmente são. Eles são usados ​​para dados primários e você os visualiza por meio da exibição de dados ou do Power Query.

Tabelas no LuckyTemplates: tipos e distinções

Uma tabela física não é totalmente dinâmica, mas possui todas essas outras características que aumentam o tamanho do arquivo porque são dados físicos. Está acessível no Power Query. Normalmente, os relacionamentos no modelo de dados são construídos por meio de relacionamentos físicos. Eles não precisam ser, mas geralmente são. Eles são usados ​​para dados primários e você os visualiza por meio da exibição de dados ou do Power Query.

A que muitas vezes se confunde com a tabela virtual é esta tabela calculada ou o que também podemos chamar de tabela de expressão DAX. Isso tem uma analogia direta com colunas calculadas que são criadas por meio de expressões DAX . Isso é feito por meio da guia Modelagem e da opção Nova tabela e, em seguida, você insere a expressão DAX.

A que muitas vezes se confunde com a tabela virtual é esta tabela calculada ou o que também podemos chamar de tabela de expressão DAX. Isso tem uma analogia direta com colunas calculadas que são criadas por meio de expressões DAX. Isso é feito por meio da guia Modelagem e da opção Nova tabela e, em seguida, você insere a expressão DAX.

Tabelas no LuckyTemplates: tipos e distinções

Como você pode ver na tabela de comparação abaixo, o perfil da tabela calculada é bastante diferente da tabela física ou da tabela virtual. Não é totalmente dinâmico.

Ele precisa ser atualizado para receber as novas informações. Ele aumenta o tamanho do arquivo físico. Ao contrário de uma tabela física direta, ela não é acessível no Power Query. Assim como uma coluna calculada não aparece no Power Query, uma tabela calculada também não. Mas possui os outros aspectos de uma mesa física.

Tabelas no LuckyTemplates: tipos e distinções

Normalmente, tabelas calculadas usadas para suporte a tabelas e usadas mais comumente para depuração. Agora existem ferramentas melhores como o DAX Studio e o Tabular Editor, então não é usado com tanta frequência para isso. Você visualiza esta tabela por meio da exibição de dados.

E, francamente, como colunas calculadas, geralmente é algo para ficar longe. Existem maneiras melhores de fazer as coisas do que através de tabelas calculadas.

E então a analogia com as medidas são as verdadeiras tabelas virtuais . Estes são criados no contexto de medidas através do DAX Measure Code. São totalmente dinâmicas, ao contrário dos outros dois tipos de tabelas. Eles não aumentam o tamanho do arquivo porque são sob demanda. Assim como as medidas, as tabelas virtuais são calculadas sob demanda na memória e são todas usadas ao longo dos contextos para os quais são necessárias.

Eles não estão acessíveis no Power Query. Você não pode colocar um relacionamento físico nisso. Se você os relacionar em seu modelo de dados, você o fará usando relacionamentos virtuais, mais comumente com .

As tabelas virtuais são usadas para cálculos intermediários em medidas porque uma medida não pode retornar um valor de tabela e deve retornar um valor escalar. Portanto, você normalmente os usa como o cálculo intermediário sobre o qual gera seus escaladores, que são o produto resultante de sua medida.

Você pode visualizar essas tabelas em ferramentas como DAX Studio, Tabular Editor ou New Table, que é, novamente, provavelmente a maneira menos desejável porque sobrecarrega seu modelo de dados com várias tabelas extras, a menos que você as exclua.

Solução de medida DAX para uma tabela virtual

Voltando à pergunta do Ashton, olhando a tabela, podemos perceber que ela é dinâmica. Também podemos fazer várias escolhas e isso muda totalmente na hora. E por isso sabemos que é uma mesa virtual porque as outras duas (tabelas físicas e calculadas) não são totalmente dinâmicas. Também sabemos que é uma mesa desconectada, como mencionei no início.

Tabelas no LuckyTemplates: tipos e distinções

Eu usei o conceito Rubber Duck para resolver isso. Em um tutorial anterior, falei sobre esse conceito de esquiva de borracha, que é desenvolver uma solução conceitual para o problema antes de começar a se aprofundar no DAX específico.

E assim, para a solução do pato de borracha aqui, o que fiz foi basicamente montar esta mesa de corte desconectada. Então, colhi o valor desses fatiadores. Em seguida, criei uma mesa virtual que filtrava os clientes por aqueles que haviam comprado as seleções na mesa desconectada.

Em seguida, peguei essa lista de clientes e filtrei nosso conjunto de dados original por esses clientes para obter os clientes e as compras feitas por esses clientes, além do valor do slicer.

Vamos dar uma olhada na medida específica para ver como isso aconteceu e algumas das considerações que você tem ao trabalhar com mesas virtuais.

Tabelas no LuckyTemplates: tipos e distinções

A primeira coisa foi desenvolver duas medidas de colheita para nossos valores. O primeiro é o valor do slicer desconectado.

Como tínhamos a seleção múltipla no requisito, isso significava que não poderíamos simplesmente usar . Então, o que fiz foi usar a função para capturar potencialmente uma ou mais seleções nesse slicer desconectado. Para clientes, como teremos um cliente em cada linha que estamos avaliando, podemos usar SELECTEDVALUE.

A próxima coisa que fiz foi esta variável de tabela virtual ( VAR Buyers ) que começa com . Em seguida, ele filtra os clientes se eles fizeram ou não uma compra de frutas que estava em nossos valores do fatiador desconectado.

Podemos verificar isso fazendo uma consulta DAX. Podemos fazer isso no DAX Studio ou no Tabular Editor. Então, vamos pegar nossa medida de mesa virtual aqui, copiá-la para o Editor Tabular. Garantiremos que ele nos forneça os valores que esperamos ver, que seriam Joe e Mary.

Tabelas no LuckyTemplates: tipos e distinções

As consultas DAX sempre retornam tabelas e sempre começam com EVALUATE, então adicionamos EVALUATE aqui. No entanto, não estamos obtendo nada no resultado. Isso ocorre porque a variável de colheita de fruta de desconexão selecionada ( SelDisconnFruit ) não tem conhecimento do cortador. Está fora de contexto.

Portanto, a maneira de testar isso é definir artificialmente o valor do slicer. Vamos substituir SelDisconnFruit por uma pequena tabela aqui. Digite Orange (o valor desse slicer) entre colchetes ondulados . E agora, temos o resultado aqui, que é Joe e Mary. Com isso, a mesa virtual está funcionando exatamente como pensávamos.

Tabelas no LuckyTemplates: tipos e distinções

Então podemos voltar agora para nossa expressão de medida. Uma das coisas desafiadoras sobre tabelas virtuais é que elas são fáceis de criar tabelas virtuais dentro de uma medida . Mas você não pode retornar uma tabela virtual como resultado de uma medida . Portanto, precisamos retornar um escalar, mas que capture o aspecto relevante da tabela virtual.

Então aqui temos a tabela virtual que informa quais clientes compraram as frutas que estavam no fatiador de valor. Podemos configurar outra variável ( VAR BuyerIn ) que diz, se o cliente selecionado estiver na tabela do comprador, ele receberá um . E se não, recebe um zero .

Tabelas no LuckyTemplates: tipos e distinções

Em seguida, pegamos os resultados disso e os colocamos no painel de filtro. A medida dos compradores-chave , dizemos, é um e serão os clientes que compraram, neste caso, laranjas.

Tabelas no LuckyTemplates: tipos e distinções

E assim, ao fazer isso, filtramos nossa tabela de dados original até os registros corretos. Você pode ver que agora ele cria essa tabela virtual e faz essa filtragem corretamente com base em cada seleção.


Tabelas virtuais dentro de funções de iteração no LuckyTemplates – Conceitos DAX
Criando relacionamentos virtuais no LuckyTemplates usando a função TREATAS
Como usar a função COUNTROWS DAX em tabelas virtuais

Conclusão

Essa é a maior parte do que eu queria cobrir hoje. É um exemplo de tabela virtual bastante direto, mas com foco na diferença entre tabelas físicas, tabelas calculadas e tabelas virtuais.

Há muitos problemas interessantes a serem revisitados em relação às tabelas virtuais, particularmente com a depuração de medidas de tabelas virtuais. Voltarei a isso nas próximas semanas, mas, por enquanto, isso é tudo neste tutorial.

Saúde!

Leave a Comment

Colunas calculadas no SharePoint | Uma visão geral

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.

Atributos pré-atentivos: como isso pode afetar seu relatório

Atributos pré-atentivos: como isso pode afetar seu relatório

Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

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.

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

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.

Variáveis ​​e expressões dentro do editor do Power Query

Variáveis ​​e expressões dentro do editor do Power Query

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.

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

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

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

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.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.