Moving average dax


O padrão cumulativo total permite que você realize cálculos, como a execução de totais, e você pode usá-lo para implementar cálculos de estoque de estoque e balanço usando as transações originais em vez de usar instantâneos de dados ao longo do tempo. Por exemplo, para criar uma tabela de Inventário que mostra o estoque de cada produto para cada mês, você pode fazer o mesmo cálculo usando a tabela de movimentos do depósito original, sem processar e consolidar os dados com antecedência. Exemplo de padrão básico Suponha que você deseja calcular a soma cumulativa mensal das quantidades da transação. O modelo de dados possui uma tabela de data marcada como tabela de data. Na Figura 1, a tabela Transações tem uma relação com a tabela Data. Você pode ter mais relações entre as tabelas, mas isso não alteraria a medida DAX para esse padrão. Figura 1 A tabela Transações tem uma relação com a tabela Data. A Figura 2 mostra uma tabela Transações de amostra, com algumas transações por mês. Figura 2 Dados da amostra em uma tabela Transações. Conforme mostrado na Figura 3, você calcula a quantidade cumulativa, que é semelhante a um total em execução da medida de Soma de Quantidade. Figura 3 A medida de Quantidade cumulativa produz um total em execução da Soma de Quantidade. Em uma determinada data, a medida de Quantidade cumulativa exibe a Soma de Quantidade para todas as transações realizadas em uma data menor ou igual à data selecionada. Por exemplo, a quantidade cumulativa de fevereiro de 2017 corresponde à soma de dezembro de 2017, janeiro de 2017 e fevereiro de 2017. Você define a medida de Quantidade cumulativa da seguinte forma: a função FILTRO retorna a lista de todas as datas que são menores ou iguais a A última data na seleção atual. Cada célula da tabela dinâmica na Figura 3 tem uma seleção diferente de datas. Você aplica o filtro à coluna Data da tabela Data, que deve ser marcada como uma tabela Data no modelo de dados. Você pode usar o padrão cumulativo total sempre que desejar mostrar o total de uma medida até uma determinada data, considerando todas as operações anteriores (mesmo as anteriores à seleção atual das datas). Você pode resolver problemas semelhantes ao criar uma tabela de instantâneo, que calcula o valor de uma determinada entidade em um determinado momento. Mover esse cálculo no tempo de consulta economiza memória, mas você pode ter uma resposta mais lenta naquele momento. A granularidade do padrão cumulativo total é sempre a mesma da tabela Transações, sem necessidade de armazenamento adicional. Você deve avaliar a conveniência do padrão cumulativo total caso a caso. Inventário A disponibilidade de informações de stock de inventário geralmente requer uma tabela de instantâneo que mantenha persistentemente a disponibilidade de estoque para cada produto e cada dia. Para economizar espaço, você pode ter uma granularidade diferente da tabela de instantâneos, definida no nível semanal ou mensal em vez de diariamente. Você pode implementar o cálculo do estoque de inventário como um cálculo dinâmico no DAX, usando a tabela Movimentos como uma tabela Transações no padrão cumulativo total. Balanço Você pode avaliar os números nas contas do balanço (ativos, passivos, patrimônio), agregando todas as transações usando o padrão cumulativo total. A maioria dos sistemas transacionais já possui um cálculo incorporado para essas contas que salva o valor acumulado atualizado nas contas envolvidas em cada transação. Você pode usar o padrão cumulativo total para reconstruir o comportamento histórico ou previsto em qualquer granularidade dada. Saldo acumulado É comum implementar o saldo acumulado como um cálculo acumulado no ano. Em alguns casos, no entanto, você pode querer calcular o saldo cumulativo sem limites do ano, por exemplo, se desejar exibir tendências e análises de previsão além do limite do ano. Você pode usar ou adaptar o padrão de Quantidade cumulativa para este propósito. Padrão completo Você aplica o padrão cumulativo total a modelos que possuem uma tabela marcada como tabela de data no modelo de dados. O cálculo amplia o período para incluir todas as datas antes do período selecionado. Para garantir resultados corretos, escolha a coluna da data da tabela correta (a marcada como uma tabela de data). A Figura 4 mostra um modelo de dados onde a relação entre a tabela Transações e a tabela Data é definida usando uma coluna inteira (DataKey). A tabela de data está marcada como uma tabela de data no modelo de dados, usando a coluna Data. Figura 4 A coluna DataKey (em ambas as tabelas) é um valor inteiro, enquanto que a coluna Data na tabela Data possui um tipo de dados de data e hora. Para evitar exibir um valor quando o período selecionado for maior do que qualquer data na tabela Transações, você pode aplicar uma declaração condicional que verifica esta condição. Na seguinte medida de Quantidade cumulativa, você compara o valor mínimo de DataKey do período selecionado com o valor máximo do DateKey em toda a tabela Transações. Neste padrão, você compara as duas colunas que definem a relação entre as tabelas, você irá adaptar essa comparação às colunas utilizadas no seu modelo de dados. Graças a esta verificação, você evita a propagação do último valor em períodos que são mais tarde do que as últimas transações em seus dados. Na Figura 5, você pode ver que o cálculo não verificado propaga o valor de abril de 2017 para todos os meses seguintes, enquanto a versão verificada retorna em branco quando não há mais transações disponíveis. Figura 5 A versão verificada da medida da Quantidade Cumulativa exibe valores em branco quando o período for posterior à última transação disponível. Mais exemplos de padrões Você pode aplicar facilmente o padrão cumulativo total aos exemplos descritos anteriormente. A seção a seguir discute mais detalhadamente o estoque do inventário. Avaliação de inventário Você pode aplicar o padrão cumulativo total geral ao cálculo do estoque de inventário. A tabela Movimentos corresponde à tabela Transações. Se você deseja calcular uma avaliação de inventário, é necessário calcular o preço por unidade de cada produto em qualquer momento. Se você criar uma tabela de instantâneo que contenha o preço por unidade de cada produto em cada dia, você provavelmente usará a mesma tabela para armazenar o inventário. Assim, você usará o padrão cumulativo total somente quando você pode calcular dinamicamente em uma expressão DAX o preço da unidade do produto para um determinado dia. Considere o modelo de dados na Figura 6: cada linha na tabela Movements tem uma Quantidade e um UnitCost. Os valores negativos em Quantidade identificam vendas, enquanto os valores positivos em Quantidade identificam compras. O UnitCost relacionado na mesma linha é o preço de venda ou compra, respectivamente. Figura 6 O UnitCost na tabela Movements representa o preço de venda ou compra. Você deve calcular o valor de estoque produto por produto, pois cada produto pode ter um preço diferente. Indústrias que compartilham o mesmo preço para categorias de produtos podem aplicar uma granularidade de cálculo diferente. Para obter um valor agregado, você deve implementar a seguinte medida: A função SUMX itera sobre todos os produtos selecionados. É importante iterar sobre a coluna ProductKey na tabela Produtos, em vez de usar a coluna ProductKey na tabela Movements, pois o último ignoraria produtos sem transações no período considerado. Para cada produto, você multiplica duas outras medidas: UnitsInStock e ProductPrice. Você pode implementar a medida UnitsInStock aplicando o padrão Total cumulativo: a implementação do ProductPrice depende do método de avaliação do inventário que você deseja aplicar. Por exemplo, você pode calcular o último preço de compra com a seguinte medida: A medida LastBuyPrice funciona se apenas um produto for selecionado. Ele calcula o valor médio de UnitCost para as linhas na tabela Movimentos do produto selecionado no último dia de movimento até o período selecionado. A função TOPN retorna todos os movimentos do produto no último dia disponível e a função AVERAGEX retorna uma média do UnitCost se houver mais linhas no mesmo dia. A quantidade é filtrada para considerar apenas compras, que são números positivos em Movimentos. Da mesma forma, você pode implementar o LastSellPrice alterando o filtro para Quantidade e considerando apenas valores negativos, como mostrado no exemplo a seguir: O livro de exemplo contém duas medidas (ValueBuy e ValueSell) que implementam a medida de valor, substituindo o preço do produto por LastBuyPrice E LastSellPrice, respectivamente. Na Figura 7, você pode ver o resultado usando um conjunto de dados de amostra carregado a partir do banco de dados AdventureWorks. Os valores Comprar e Vender são diferentes (embora a diferença não seja realista devido ao conjunto de dados AdventureWorks específico usado). Figura 7 A avaliação de inventário obtida com dois algoritmos diferentes (último preço de compra e preço da última venda). Uma análise mais detalhada do cálculo do Estoque de estoque está disponível neste artigo no site do SQLBI: tinyurlDaxInventoryStock. O artigo compara tamanho e desempenho entre um cálculo clássico baseado em instantâneos e uma implementação equivalente com base no padrão cumulativo total. A escolha entre essas abordagens depende do volume e da distribuição dos dados e deve ser avaliada caso a caso. Mantenha-me informado sobre os próximos padrões (boletim informativo). Desmarque para baixar livremente o arquivo. Publicado em 7 de fevereiro de 2017 por INDICADOR DA SEXETRA DAX INDICE GERX SE XETRA DAX INDEX Todos os dados do mercado localizados no FT estão sujeitos às Condições dos Termos da FT. Todo o conteúdo do FT é apenas para sua informação e uso geral e não se destina a atender seus requisitos particulares . Em particular, o conteúdo não constitui qualquer forma de conselho, recomendação, representação, endosso ou acordo da FT e não se destina a ser invocado pelos usuários para fazer (ou abster-se de fazer) qualquer investimento específico ou outras decisões. Qualquer informação que você recebe via FT é, na melhor das hipóteses, atrasada em dados intradiários e não em tempo real. As informações de preço da ação podem ser arredondadas e, portanto, não inteiramente precisas. A FT não é responsável por qualquer uso de conteúdo por você fora do seu alcance, conforme indicado nas Condições de Termos de FT. Bem-vindo ao novo FT

Comments