Criação em massa de medidas

Na minha experiência com Power BI, por diversas vezes dei por mim a ter que replicar a criação de certas medidas (por exemplo a soma de colunas) este processo, dependendo do nosso modelo, pode ser demorado.

Até a pouco tempo a minha necessidade de massificação de medidas não era premente do ponto de vista da produtividade, mas com a mudança para tempo integral para a área do Power BI, verifiquei que necessitava de otimizar esse processo.

Tendo em conta que o Tabular Editor permite essa automação através de scripts decidi explorar melhor essa funcionalidade.

Vamos então perceber como rapidamente podemos criar medidas de soma para várias colunas num único passo.

O primeiro passo que temos de fazer no tabular editor é irmos ao Advance Scripting:

Ao irmos a este módulo temos um simples editor de texto que nos permite escrever os nossos automatismos. O tabular editor utilizar o C# scripting para manipular os objetos carregados no modelo.

A primeira vez que utilizei esta funcionalidade não conhecia o C# (ainda hoje sei muito pouco) no entanto recorri a documentação do tabular editor e aí encontrei uma compilação de vários scripts, essa documentação pode ser encontrada neste link.

O caso que apresento aqui refere-se ao primeiro script presente nesta página e é a criação de uma medida de colunas vamos então ver qual o código que teremos de utilizar:

// Creates a SUM measure for every currently selected column and hide the column.
foreach(var c in Selected.Columns)
{
    var newMeasure = c.Table.AddMeasure(
        "Sum of " + c.Name,                    // Name
        "SUM(" + c.DaxObjectFullName + ")",    // DAX expression
        c.DisplayFolder                        // Display Folder
    );
    
    // Set the format string on the new measure:
    newMeasure.FormatString = "0.00";

    // Provide some documentation:
    newMeasure.Description = "This measure is the sum of column " + c.DaxObjectFullName;

    // Hide the base column:
    c.IsHidden = true;
}

Como podemos verificar o código é composto por alguns passos devidamente anotados que basicamente são:

  • Para cada coluna selecionada criar uma nova medida na mesma tabela
  • Nome da medida que é composta por “Sum of” e o nome da coluna (c.Name)
  • Fórmula DAX estando escrita em texto simples exceto nos argumentos que obrigam a identificar a Tabela + Coluna

Também temos alguns dados opcionais com o formato da medida ou a descrição da mesma, e se queremos ocultar a coluna base.

Só temos então de colar este código no tabular editor e selecionar as colunas que pretendemos depois corremos o script:

Ao corrermos script podemos ver que foram criadas tantas medidas quantas as colunas selecionadas, e neste caso as colunas originais foram ocultadas:

Ao gravarmos o modelo no tabular editor as medidas aparecem no Power BI:

Esta é uma maneira de podermos otimizar o trabalho de criação de medidas, nomeadamente em modelo com alguma dimensão. Mas o advance scripting do tabular editor permite muitos mais, uma última dica para quem não tem grande á vontade com a formatação do código DAX é utilizarem o script abaixo e todas as vossas medidas serão formatadas automaticamente.

// Works in Tabular Editor version 2.13.0 or newer:
Selected.Measures.FormatDax();

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s

%d bloggers like this: