Criar cadeias de caracteres de formato dinâmico para medidas

APLICA-SE A: Power BI Desktop Serviço do Power BI

Com as cadeias de caracteres de formato dinâmico para medidas, você pode determinar como as medidas aparecem nos recursos visuais aplicando condicionalmente uma cadeia de caracteres de formato com uma expressão DAX separada.

Observação

As cadeias de caracteres de formato dinâmico para medidas estão atualmente em versão prévia. Durante a versão prévia, a funcionalidade e a documentação podem ser alteradas.

As cadeias de caracteres de formato dinâmico superam uma desvantagem inerente do uso da função FORMAT. Ou seja, com o FORMATO, até mesmo os tipos de dados numéricos são retornados como uma cadeia de caracteres, o que pode não funcionar com recursos visuais que exigem valores numéricos, como gráficos. Ao usar cadeias de caracteres de formato dinâmico, a medida mantém seu tipo de dados e não é forçada alterar para um tipo de dados de cadeia de caracteres. Isso aplica cadeias de caracteres de formato diferentes à medida, dependendo do contexto.

As cadeias de caracteres de formato dinâmico também podem ser usadas com grupos de cálculo. Os mesmos padrões DAX que funcionam com grupos de cálculo também podem ser utilizados em cadeias de caracteres de formato dinâmico para medidas, mas o escopo é limitado a medidas individuais em vez de todas as medidas no modelo. Para obter mais informações, confira Grupos de cálculo - Cadeias de Caracteres de Formato Dinâmico.

Criar cadeias de caracteres de formato dinâmico

Para criar uma cadeia de caracteres de formato dinâmico

  1. No painel Dados, selecione a medida para a qual você deseja especificar uma cadeia de caracteres de formato dinâmico.

  2. Na faixa de opções Ferramentas de medida>seção Formatação>caixa de listagem Formato, selecione Dinâmico. Uma nova caixa de listagem com oFormato já selecionado aparece à esquerda da barra de fórmulas DAX. Usando essa lista suspensa você pode alternar entre a expressão DAX de medida estática e a expressão DAX de cadeia de caracteres de formato dinâmico. Qualquer que seja a cadeia de caracteres de formato estático em uso antes de mudar para Dinâmico, será pré-preenchida como uma cadeia de caracteres na barra de fórmulas DAX.

    Captura de tela da lista suspensa de Formato.

  3. Substitua a cadeia de caracteres por uma expressão DAX que gera a cadeia de caracteres de formato correta para sua medida. Por exemplo, a expressão a seguir procura a cadeia de caracteres de formato de moeda desejada em uma tabela ‘Cadeia de Caracteres de Formato Moeda de País’:

    Captura de tela da expressão de medida de Formato dinâmico.

  4. Verifique se a cadeia de caracteres de formato dinâmico funciona em um visual.

    Para excluir a cadeia de caracteres de formato dinâmico e voltar a usar uma cadeia de caracteres de formato estático, na seçãoFormatação>caixa de listagem Formatar, selecione uma opção de formato diferente. Como não há como desfazer essa ação, uma caixa de diálogo será exibida perguntando se você deseja continuar. Se desejar voltar a usar uma cadeia de caracteres de formato dinâmico novamente, insira novamente a expressão DAX.

    Captura de tela do aviso de alteração de Formato.

Exemplo

A melhor maneira de aprender sobre um novo recurso é experimentá-lo por conta própria. Você pode fazer isso com o arquivo de exemplo do Adventure Works 2020 PBIX disponível no modelo de exemplo DAX. Usando o modelo de amostra, você pode adicionar a conversão de moeda para mostrar o valor das vendas convertidas por ano. Após o download, abra o arquivo no Power BI Desktop.

Criar novas tabelas

O modelo de exemplo não contém todos os dados necessários para criar e usar cadeias de caracteres de formato dinâmico. Para começar, primeiro você precisa adicionar duas tabelas.

  1. Na faixa de opções Início, selecione Inserir dados.

  2. Na caixa de diálogo Criar tabela, insira o nome da tabela a seguir e, em seguida, copie e cole a tabela a seguir:

    Nome da tabela: Cadeias de Caracteres de Formato de Moeda do País

    País Moeda Formatar
    Austrália Dólar AUD#, 0,00
    Canadá Dólar C$#, 0,00
    Dinamarca Coroa norueguesa kr#,0
    Zona do Euro Euro € #,0,00
    Japão Iene ¥ #,0
    Suécia Coroa sueca kr#,0
    Suíça Franco CHF #, 0,00
    Reino Unido Libra £ #,0
    Estados Unidos Dólar USD#,0,00
  3. Verifique se a tabela parece correta e clique em Carregar.

    Captura de tela da caixa de diálogo Criar tabela.

  4. Repita as etapas anteriores para a seguinte tabela:

    Nome da tabela: Taxas de Câmbio Médias Anuais

    País Moeda Year Taxa de Câmbio Média Anual
    Austrália Dólar 2022 1,442
    Austrália Dólar 2021 1,332
    Austrália Dólar 2020 1,452
    Austrália Dólar 2019 1,439
    Austrália Dólar 2018 1.34
    Austrália Dólar 2017 1,358
    Canadá Dólar 2022 1,301
    Canadá Dólar 2021 1,254
    Canadá Dólar 2020 1,341
    Canadá Dólar 2019 1,327
    Canadá Dólar 2018 1,297
    Canadá Dólar 2017 1,35
    Dinamarca Coroa norueguesa 2022 7,077
    Dinamarca Coroa norueguesa 2021 6.29
    Dinamarca Coroa norueguesa 2020 6,538
    Dinamarca Coroa norueguesa 2019 6,67
    Dinamarca Coroa norueguesa 2018 6,319
    Dinamarca Coroa norueguesa 2017 6,864
    Zona do Euro Euro 2022 0,951
    Zona do Euro Euro 2021 0,846
    Zona do Euro Euro 2020 0,877
    Zona do Euro Euro 2019 0,893
    Zona do Euro Euro 2018 0,848
    Zona do Euro Euro 2017 0,923
    Japão Iene 2022 131,454
    Japão Iene 2021 109,817
    Japão Iene 2020 106,725
    Japão Iene 2019 109,008
    Japão Iene 2018 110,424
    Japão Iene 2017 116,667
    Suécia Coroa sueca 2022 10,122
    Suécia Coroa sueca 2021 8,584
    Suécia Coroa sueca 2020 9,205
    Suécia Coroa sueca 2019 9,457
    Suécia Coroa sueca 2018 8,703
    Suécia Coroa sueca 2017 8,894
    Suíça Franco 2022 0.955
    Suíça Franco 2021 0,914
    Suíça Franco 2020 0,939
    Suíça Franco 2019 0,994
    Suíça Franco 2018 0,979
    Suíça Franco 2017 1.024
    Reino Unido Libra 2022 0,811
    Reino Unido Libra 2021 0.727
    Reino Unido Libra 2020 0,779
    Reino Unido Libra 2019 0,784
    Reino Unido Libra 2018 0,75
    Reino Unido Libra 2017 0,808

Criar uma coluna de Ano

É necessária uma nova coluna de Ano na tabela de datas existente.

  1. No modo de exibição Modelo, clique com o botão direito na tabela Data e selecione Nova coluna.

  2. Na barra de fórmulas do DAX, insira a seguinte expressão: Year = YEAR([Date]) e, em seguida, pressione Enter.

    Captura de tela da fórmula Ano na barra de fórmulas do DAX.

Criar relações

São necessárias relações entre as novas tabelas Taxas de Câmbio Médias Anuais e Cadeias de Caracteres de Formato de Moeda do País e entre a tabela Taxas de Câmbio Médias Anuais e a tabela Data existente.

  1. Se você tiver ativado a detecção automática de relacionamentos, a relação entre as Cadeias de Caracteres de Formato de Moeda do País e as Taxas de Câmbio Médias Anuais na coluna País pode ter sido criada para você. Caso contrário, crie esse relacionamento:

    • Tabela 1: Taxas de Câmbio Médias Anuais
    • Tabela 1 Coluna: País
    • Cardinalidade: Muitos para um
    • Tabela 2: Cadeias de Caracteres de Formato de Moeda do País
    • Tabela 2 Coluna: País
    • Tornar esse relacionamento ativo: Sim
    • Direção do filtro cruzado: Único

    O relacionamento deve ter a seguinte aparência:

    Captura de tela das Propriedades do relacionamento entre Cadeias de Caracteres de Formato de Moeda do País e Taxas de Câmbio Médias Anuais.

  2. Se você tiver a Detecção Automática de relacionamentos ativada, uma relação entre Cadeias de Caracteres de Formato de Moeda do País e Território de vendas na coluna País pode ter sido criada. Essa relação, no entanto, não é correta para o nosso modelo. No modo de exibição Modelo, exclua esse relacionamento.

  3. Em vez disso, crie uma relacionamentos entre as Taxas de Câmbio Médias Anuais e a Data na coluna Ano.

    • Tabela 1: Taxas de Câmbio Médias Anuais
    • Tabela 1 Coluna: Ano
    • Cardinalidade: Muitos para Muitos
    • Tabela 2: Data
    • Tabela 2 Coluna: Ano
    • Tornar esse relacionamento ativo: Sim
    • Direção do filtro cruzado: Único (filtros ‘Taxa de Câmbio Média Anual‘ ‘Data’)

    O relacionamento deve ter a seguinte aparência:

    Captura de tela do Relacionamento.

  4. Salvar o modelo.

Criar uma tabela de grupos de medidas

Um grupo de medidas ajuda você a organizar diferentes medidas ao colocá-las em uma única tabela.

  1. Na faixa de opções Início, selecione Inserir dados.

  2. Na caixa de diálogo Criar Tabela, deixe os valores em branco. Nomeie a tabela Medidas de vendas e clique em Carregar. Essa tabela contém suas novas medidas.

Criar medidas

  1. No painel Dados, expanda e clique com o botão direito do mouse em Medidas de vendas e selecione Nova medida. Insira a seguinte expressão DAX na barra de fórmulas do DAX e pressione Enter:

    Sales Amount = SUM(Sales[Sales Amount])
    

    Ele deverá ser parecido com:

    Captura de tela da fórmula do DAX da medida de quantidade de Vendas.

  2. Em Medidas de vendas, clique com o botão direito do mouse em Coluna1 e selecione Ocultar no modo de exibição de relatório . Isso altera as medidas de Vendas de um grupo de medidas, que agora aparece na parte superior do painel Dados com um ícone de grupo de medidas, assim:

    Captura de tela da Coluna1 no grupo de medidas de Vendas.

  3. Agora você pode criar uma medida para calcular a taxa de câmbio. Clique com o botão direito do mouse em Medidas de vendas , selecione Nova medida, insira a seguinte expressão na barra de fórmulas do DAX e pressione Enter:

    Exchange Rate (Yearly Avg) = 
    IF (
        ISBLANK ( SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) )
            || SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) = "United States",
        1,
        AVERAGE ( 'Yearly Average Exchange Rates'[Yearly Average Exchange Rate] )
    )
    
    

    Deve ficar assim: Captura de tela da fórmula do DAX de taxa de câmbio no editor do DAX.

  4. Agora você cria outra medida para converter a medida Valor de vendas em outras moedas. Clique com o botão direito do mouse em Medidas de vendas , selecione Nova medida, insira a seguinte expressão na barra de fórmulas do DAX e pressione Enter:

        Converted Sales Amount = 
        SUMX('Date',
        CALCULATE( [Sales Amount] * [Exchange Rate (Yearly Avg)]))
    
    

    O grupo de medidas Medidas de vendas agora deve ter a seguinte aparência: Captura de tela da fórmula de medida de quantidade de vendas convertidas.

Criar um relatório

  1. Acesse o Modo de exibição de relatório. Adicionar uma nova página em branco ao relatório.

  2. Adicionar um visual de gráfico de linhas à sua nova página de relatório. Use esse visual para ver sua medidas antes de adicionar a cadeia de caracteres de formato dinâmico às medidas.

  3. No painel Dados>Medidas de vendas, selecione Valor de vendas convertido. Sem clicar em nenhum outro lugar, selecione também o Ano na tabela Data.

    Captura de tela do visual do Gráfico de linhas no modo de exibição de Relatório.

  4. Copie e cole o visual para que você tenha dois visuais de gráfico de linhas. Altere o visual do segundo gráfico de linhas para um visual de tabela, e depois mova-o abaixo do gráfico de linhas, desta forma:

    Captura de tela do visual do Copiar gráfico de linhas.

  5. Adicionar um visual de segmentação de dados à página de relatório. Na faixa de opções Formato, adicione o País da tabela Cadeias de Caracteres de Formato de Moeda do País ao segmentador.

    Captura de tela da Segmentação de país.

  6. Reorganize os visuais até que eles tenham um layout melhor, algo assim:

    Captura de tela de Reorganizar visuais.

  7. Embora não seja necessário, você pode alterar as propriedades visuais para criar um relatório melhor:

    Segmentação de Dados

    • Configurações de segmentação: seleção única
    • Tamanho e estilo, preenchimento: 10 px, todas as bordas
    • Tamanho e estilo, Visual da borda: cinza-claro, cantos arredondados de 10 px
    • Configurações de Segmentação, Estilo: bloco
    • Cabeçalho da segmentação de dados: desativado
    • Valores, borda: esquerda, #333333, largura de 6 linhas

    Tabela

    • Tamanho e estilo, preenchimento: 10 px, todas as bordas
    • Tamanho e estilo, Visual da borda: cinza-claro, cantos arredondados de 10 px
    • Grade, Linhas de grade horizontais: branco, largura 2
    • Grade, Linhas de grade verticais: branco, largura 2
    • Grade, Borda: branca
    • Grade, Opções: preenchimento de 2 linhas
    • Valores, Valores: cor do segundo plano #F6F4F4
    • Valores, Valores: alternar a cor do segundo plano #F6F4F4
    • Cabeçalhos da coluna, Texto: negrito, cor do texto branco, cor do segundo plano #0D6ABF

    Gráfico de Linhas

    • Tamanho e estilo, preenchimento: 10 px, todas as bordas
    • Tamanho e estilo, Visual da borda: cinza-claro, cantos arredondados de 10 px
    • Título, Subtítulo: ativado
    • Eixo Y, Título: desativado
    • Eixo Y: desativado
    • Marcadores: ativado
    • Rótulos de dados: ativado
    • Rótulos de dados, Valores: negrito, azul

    Tela (opcional)

    • Tela de fundo: cinza-claro, 85% de transparência

    Com essas propriedades visuais, você obtém uma boa página do relatório, assim:

    Captura de tela do Fundo cinza de tela para visual.

Criar uma cadeia de caracteres de formato dinâmico

A seleção de diferentes nomes de País na segmentação de dados mostra que a medida do Valor de Vendas Convertido resulta em recursos visuais, mas não no formato correto para esse país ou região.

  1. No painel Dados>Medidas de vendas, selecione Valor de vendas convertido.

  2. Na faixa de opções Ferramentas de medidas, clique na lista suspensa Formato e selecione Dinâmico.

  3. A caixa de listagem suspensa à esquerda da barra de fórmulas deve agora dizer Formato, e a fórmula na barra de fórmulas deve ter uma cadeia de caracteres de formato. Substitua a cadeia de caracteres de formato pela seguinte expressão DAX e, em seguida, pressione Enter:

    SELECTEDVALUE ( 'Country Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
    

    Ele deverá ser parecido com:

    Captura de tela da fórmula dinâmica da Cadeias de Caracteres de Formato de Moeda do País.

  4. Selecione um país diferente na segmentação dos dados. Os recursos visuais da tabela e do gráfico de linhas agora devem mostrar o valor da moeda convertida, no formato correto, para esse país ou região. Tente selecionar um país/região diferente na segmentação de dados para ver como os recursos visuais são alterados.

    Captura de tela do visual de quantidade de Vendas convertido.

  5. Salvar o modelo.

Problemas e considerações conhecidos

Durante a pré-visualização, os seguintes problemas e limitações estão sendo resolvidos:

  • Os visuais têm opções de formatação que podem afetar a exibição da cadeia de caracteres de formato. Se a formatação estiver sendo exibida inesperadamente em um recurso visual, acesse as opções de Formato visual, pesquise por Unidades de exibição e altere-as de Automático para Nenhum.

    Captura de tela das Unidades de exibição de automático para nenhum.

  • A medida em si pode ser referenciada diretamente na sua cadeia de caracteres de formato dinâmico usando seu nome, como [Medida A], ou indiretamente usando SELECTEDMEASURE().

  • As cadeias de caracteres de formato dinâmico para medidas são somente para medidas de modelo. As medidas de relatório que podem ser adicionadas a um relatório de conexão dinâmico não podem ter cadeias de caracteres de formato dinâmico para medidas.

  • Com o DirectQuery for Analysis Services, quando você clica em Fazer alterações nesse modelo em um relatório de conexão dinâmica, ele muda a conexão para o DirectQuery pelo Analysis Services. Em geral, você pode fazer alterações nas cadeias de formato das medidas do modelo remoto. Durante a pré-visualização:

    • As medidas do modelo remoto com cadeias de caracteres de formato dinâmico definidas são impedidas de fazer alterações da cadeia de caracteres de formato para uma cadeia de caracteres de formato estático ou para uma expressão DAX de cadeia de caracteres de formato dinâmico diferente.
    • As medidas de modelo remoto não podem ser alteradas de uma cadeia de caracteres de formato estático para uma expressão DAX de cadeia de caracteres de formato dinâmico definida no modelo local.
    • As medidas do modelo local estão impedidas de usar cadeias de caracteres de formato dinâmico para medidas.