Criar colunas calculadas

Concluído

Às vezes, você precisa de mais colunas do que existem em seus dados. O ideal é adicionar essas colunas diretamente à fonte de dados, o que facilita a manutenção e permite que a lógica da coluna seja reutilizada em outros modelos ou relatórios. No entanto, se precisar adicionar a coluna depois de conectado aos dados no Power BI, você poderá criar uma coluna personalizada no Editor do Power Query ou adicionar uma coluna calculada ao modelo semântico. Independentemente de como você adiciona a coluna, o resultado é o mesmo da perspectiva de um usuário de relatório.

Em geral, a preferência é pelas colunas personalizadas no Power Query, pois elas são carregadas no modelo de uma maneira mais compacta e ideal. As colunas calculadas são recomendadas somente ao adicionar colunas a uma tabela calculada ou quando a fórmula:

  • Depender de dados de modelo resumidos.
  • Exige funções de modelagem especializadas disponíveis somente no DAX, como RELATED, RELATEDTABLE ou funções para hierarquias entre pai e filho.

Criar colunas calculadas

Uma fórmula DAX pode ser usada para adicionar uma coluna calculada a qualquer tabela no modelo. A fórmula deve retornar um único valor (escalar) para cada linha.

As colunas calculadas em modelos de importação aumentam o tamanho do armazenamento e podem prolongar o tempo de atualização dos dados, especialmente quando dependem de outras tabelas que são atualizadas. Portanto, tenha cuidado ao usar muitas colunas calculadas e considere se uma medida pode ser usada no lugar.

Nos exemplos a seguir, várias colunas calculadas são criadas para dar suporte à análise fiscal e demonstrar a versatilidade das colunas calculadas.

Ano Fiscal

Essa coluna determina o ano fiscal de cada data. O ano fiscal começa em julho, portanto, as datas de julho a dezembro são atribuídas ao próximo ano civil. A fórmula concatena "FY" com o ano, incrementando o ano em um para datas no segundo semestre do ano.

Due Fiscal Year =
"FY"
    & YEAR('Due Date'[Due Date])
        + IF(
            MONTH('Due Date'[Due Date]) > 6,
            1
        )

As etapas a seguir descrevem como o Microsoft Power BI avalia a fórmula da coluna calculada:

  1. O operador de adição (+) é avaliado antes do operador de concatenação de texto (&).
  2. A função YEAR retorna o valor do número inteiro do ano da data de conclusão.
  3. A função IF retornará o valor quando o número do mês da data de conclusão for 7-12 (julho a dezembro); caso contrário, retornará BLANK. (Por exemplo, como o ano financeiro da Adventure Works é de julho a junho, os últimos seis meses do ano civil usarão o próximo ano civil como o ano financeiro.)
  4. O valor do ano é adicionado ao valor retornado pela função IF, que é o valor um ou BLANK. Se o valor for BLANK, ele será convertido implicitamente em zero (0) para permitir que a adição produza o valor do ano fiscal.
  5. O valor de texto literal "FY" concatenado com o valor do ano fiscal, que é convertido implicitamente em texto.

Trimestre Fiscal

Essa coluna atribui um trimestre fiscal a cada data, com base na estrutura do ano fiscal em que o primeiro trimestre é de julho a setembro. A fórmula acrescenta Q e o número do trimestre ao rótulo do ano fiscal.

Due Fiscal Quarter =
'Due Date'[Due Fiscal Year] & " Q"
    & IF(
        MONTH('Due Date'[Due Date]) <= 3,
        3,
        IF(
            MONTH('Due Date'[Due Date]) <= 6,
            4,
            IF(
                MONTH('Due Date'[Due Date]) <= 9,
                1,
                2
            )
        )
    )

Chave do Mês

A fórmula MonthKey multiplica o ano da data de conclusão por 100 e adiciona o número do mês da data de conclusão. Ela produz um valor numérico que pode ser usado para classificar os valores de texto Due Month em ordem cronológica.

MonthKey =
(YEAR('Due Date'[Due Date]) * 100) + MONTH('Due Date'[Due Date])

Rótulo de Data Completa

A função FORMAT converte o valor da coluna Due Date em texto usando uma cadeia de caracteres de formato. Nesse caso, a cadeia de caracteres de formato produz um rótulo que descreve o ano, o nome do mês abreviado e o dia:

Due Full Date =
FORMAT('Due Date'[Due Date], "yyyy mmm, dd")

Observação

Existem muitos formatos de data/hora definidos pelo usuário. Para obter mais informações, confira Formatos de data e hora personalizados na função FORMAT.

Após essas adições, a tabela Due Date conterá seis colunas: a coluna de data original e cinco colunas calculadas. Essas colunas dão suporte a funções de inteligência de dados temporais e à legibilidade para consumidores de relatório.

A captura de tela mostra que a tabela Data de Conclusão está na exibição de dados. Há seis colunas, e as primeiras sete linhas são visíveis.

Noções básicas sobre o contexto de linha

O Power BI avalia a fórmula de uma coluna calculada para cada linha da tabela, que é chamada de contexto de linha. O contexto de linha significa apenas "a linha atual". Por exemplo, esta é coluna calculada Due Fiscal Year:

Due Fiscal Year =
"FY"
    & YEAR('Due Date'[Due Date])
        + IF(
            MONTH('Due Date'[Due Date]) <= 6,
            1
        )

Quando o Power BI executa essa fórmula, 'Due Date'[Due Date] fornece o valor da linha atual. Se você usou tabelas do Excel, essa ideia pode parecer familiar.

O contexto de linha só se aplica à tabela atual. Se precisar de valores de outra tabela, você tem duas opções principais:

  • Se existir um relacionamento entre as duas tabelas, use a função RELATED ou RELATEDTABLE. RELATED obtém um valor do lado um de um relacionamento. RELATEDTABLE obtém uma tabela de valores do lado muitos.
  • Se não houver relacionamento, use a função LOOKUPVALUE.

Tente usar RELATED quando puder. Ela geralmente funciona mais rápido do que LOOKUPVALUE devido a como o Power BI armazena e indexa dados.

Veja um exemplo. Essa fórmula adiciona uma coluna Discount Amount à tabela Sales:

Discount Amount =
(
    Sales[Order Quantity]
        * RELATED('Product'[List Price])
) - Sales[Sales Amount]

O Power BI calcula essa fórmula para cada linha da tabela Sales. Ele obtém Order Quantity e Sales Amount da linha atual. Para obter List Price da tabela Product, é usada a função RELATED para encontrar o valor correto de cada venda.

O contexto de linha sempre se aplica quando o Power BI avalia fórmulas da coluna calculada. Ele também entra em jogo com funções de iterador, que permitem criar resumos mais avançados. Você aprenderá sobre funções de iterador mais adiante neste módulo.