Power Query M: padrão 0-1 alternado na tabela de datas

Este tutorial se concentra no uso da função number.mod do Power Query M para criar um padrão 0-1 alternado na tabela Date. A solução que vou mostrar veio de um dos usuários avançados da comunidade, Rajesh, da LuckyTemplates. Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.

O objetivo é gerar uma sequência de quatro zeros alternados por quatro uns e repeti-la ao longo do dia.

Power Query M: padrão 0-1 alternado na tabela de datas

Rajesh foi certeiro em sua análise e detalhamento do problema usando a função Power Query M para resolvê-lo. Dito isso, vamos para o Power Query.

Índice

A função Power Query M Number.Mod

O Power Query M, especificamente a função number.mod, será o núcleo da nossa solução. O que isso faz?

Você pode verificar a documentação interna de qualquer função M inserindo seu nome sem parênteses, conforme mostrado aqui na barra de fórmulas. Esta função retorna o resto de uma divisão inteira. Leva até três parâmetros, os dois primeiros, um número, e o divisor, que também é um número.

Power Query M: padrão 0-1 alternado na tabela de datas

Agora vamos começar. Selecionarei minha consulta de amostra que contém um intervalo de datas que preparei.

Power Query M: padrão 0-1 alternado na tabela de datas

Em muitos casos, number.mod é usado em combinação com uma coluna de índice que é então usada como seu primeiro parâmetro. Mas não vou fazer isso porque, se você pensar bem, o valor da data é um número inteiro. Portanto, criar um índice que compartilhe a mesma granularidade da coluna Data, onde cada linha tem um valor único, é algo que podemos evitar.

Tudo o que precisamos fazer para imitar um índice é subtrair a primeira data em nossa tabela Date de cada data na coluna Date. Para fazer isso, podemos armazenar o valor da data de início em uma variável para que possamos usá-la repetidamente. Acho que o Editor Avançado é o melhor lugar para fazer isso.

Então, abrirei a janela do Editor Avançado e criarei uma nova variável. Vamos chamá-lo de StartDate . Eu codifiquei minha primeira data aqui, então vou apenas copiá-la e colá-la. Não se esqueça da vírgula no final e agora podemos substituir essa primeira data por nossa variável de data de início.

Power Query M: padrão 0-1 alternado na tabela de datas

Como você pode ver, nada mudou.

Power Query M: padrão 0-1 alternado na tabela de datas

Criando uma coluna personalizada para o padrão M do Power Query

Por meio dessa minitabela, vamos adicionar uma coluna personalizada.

Power Query M: padrão 0-1 alternado na tabela de datas

Vamos chamar essa coluna de Pattern e inserir a função M do Power Query, number.mod . Você vê os dois parâmetros aqui, um número como um número anulável e um divisor como um número anulável. Portanto, requer dois valores de tipo numérico como parâmetros.

Power Query M: padrão 0-1 alternado na tabela de datas

Agora não temos números, certo? Temos datas e não há conversão automática de tipo nelas. Portanto, precisamos obter o número do nosso valor de data. Então, digitamos aqui, number.from , nossa coluna Date e subtraímos nossa variável StartDate.

Power Query M: padrão 0-1 alternado na tabela de datas

Agora, digamos que a primeira data em nossa tabela Date retorne um, então nossa StartDate também retornará um. E assim, um menos um é igual a zero. Quero que nossa numeração de índice comece com um em vez de zero. Então teremos que somar um de volta mais um. Agora um menos um é igual a zero mais um retorna um para o primeiro registro.

Power Query M: padrão 0-1 alternado na tabela de datas

Para o segundo registro, obtemos um valor dois (2) para a data na coluna Date, menos um (1) de nosso valor StartDate que é igual a um, mais o que estamos adicionando de volta retorna um dois e assim por diante . Nosso padrão de repetição foi baseado em uma série de quatro valores alternados. Então, como divisor, vou passar o valor quatro (4).

Power Query M: padrão 0-1 alternado na tabela de datas

Vamos ver o que isso faz. Na linha quatro, obtemos zero, assim como na linha oito. Portanto, cada quarta ocorrência retorna um valor zero para esse registro.

Power Query M: padrão 0-1 alternado na tabela de datas

Criando uma construção IF-THEN-ELSE

Vamos voltar à caixa de diálogo do cliente e estender a lógica que escrevemos até agora. Com exceção do divisor, precisamos repetir a mesma lógica para poder identificar uma oitava ocorrência.

No entanto, nessa oitava linha, queremos um valor diferente. Portanto, para fazer uma distinção entre uma quarta e uma oitava ocorrência, podemos usar uma construção IF-THEN-ELSE. Dessa forma, podemos retornar um valor para o primeiro teste lógico que retorne um verdadeiro.

Portanto , se , e eu colar de volta nosso código aqui (exceto para o divisor), altere esse divisor para um oito para que a oitava linha retorne zero. Portanto, se for igual a zero, isso significa que falhará em seu caminho para verdadeiro ou falso. Então queremos um (1). Caso contrário , se nossa lógica aqui identificar que uma quarta linha é igual a zero, queremos zero (0). Caso contrário, não queremos obter um valor de volta. Então, vamos adicionar um null .

Power Query M: padrão 0-1 alternado na tabela de datas

Agora, vamos verificar nossa lógica novamente. Assim, em cada quarta ocorrência, obtemos esse zero. E então, no oitavo, conseguimos um. Em seguida, obtemos zero e um, e assim por diante.

Então isso parece bom. Tudo o que temos a fazer agora é preencher esses valores.

Power Query M: padrão 0-1 alternado na tabela de datas

Portanto, dentro da barra de fórmulas, adicionaremos um Table.FillUp no início e alguns parênteses de abertura. No final do nosso código, adicionamos o tipo number – também precisamos adicionar uma coluna como uma lista. Então, vamos vírgula , então usamos os colchetes para o inicializador de lista e como um valor de texto passamos em nosso nome de coluna, Pattern . Não se esqueça dos parênteses de fechamento e pressione OK.

Power Query M: padrão 0-1 alternado na tabela de datas


Guia para iniciantes do código M no LuckyTemplates
Função M para tabela de datas – como adicionar um parâmetro no Editor de consultas
Classificando colunas da tabela de datas no LuckyTemplates

Conclusão

Este é um cenário único e, honestamente, não consigo pensar em um aplicativo para esse padrão específico, mas espero que você possa ver o potencial de criar sequências usando a função M do Power Query, number.mod.

Para mais detalhes, assista ao vídeo completo abaixo para este tutorial.

Tudo de bom!

melissa

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.