Compartilhar via


Criar cadeias de caracteres de formato dinâmico para medidas

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

Com cadeias de caracteres de formato dinâmico para medidas, você pode determinar como as medidas aparecem em visuais aplicando condicionalmente uma cadeia de caracteres de formato com uma fórmula DAX (Expressão de Análise de Dados) separada.

As cadeias de caracteres de formato dinâmico superam uma desvantagem inerente do uso da função FORMAT. Com FORMAT, até mesmo tipos de dados numéricos são retornados como cadeias de caracteres, o que pode não funcionar com visuais como gráficos que exigem valores numéricos. 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.

Você também pode usar cadeias de caracteres de formato dinâmico com grupos de cálculo. Você pode usar os mesmos padrões DAX que funcionam com grupos de cálculo 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 lista suspensa com Formato já selecionada aparece à esquerda da barra de fórmulas DAX. Essa lista suspensa permite alternar entre a expressão DAX de medida estática e a expressão DAX de string 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 do menu suspenso 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 pesquisa a cadeia de caracteres de formato de moeda que queremos de uma tabela Cadeias de caracteres de formato de moeda de país/região :

    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ção Formatação lista suspensa >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 cadeias de caracteres de formato de moeda país/região no campo Nome e copie e cole a seguinte tabela:

    País/Região 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 selecione 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/Região 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 modelo , clique com o botão direito do mouse na tabela Data e selecione Nova coluna.

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

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

Criar relações

São necessárias relações entre suas novas tabelas de Taxas de Câmbio Médias Anuais e as cadeias de caracteres de formato de moeda de País/Região, e entre a tabela de Taxas de Câmbio Médias Anuais e a tabela de Data existente.

  1. Se você tiver Autodetect para relações ativado (na guia Ferramentas de Coluna, selecione Gerenciar relações e, em seguida, selecione Autodetect), a relação entre Formatos de Moeda por País/Região e Taxas de Câmbio Média Anual na coluna País/Região pode ter sido criada para você. Caso contrário, crie essa relação usando o botão Nova relação nas ferramentas De coluna>Gerenciar relações:

    • Tabela 1: Taxas de Câmbio Médias Anuais
    • Coluna da Tabela 1: País/Região
    • Cardinalidade: Muitos para um
    • Tabela 2: Cadeias de caracteres de formato de moeda de país/região
    • Coluna da Tabela 2: País/Região
    • Tornar esse relacionamento ativo: Sim
    • Direção do filtro cruzado: Único

    O relacionamento deve ter a seguinte aparência:

    Captura de tela das propriedades de relação entre cadeias de caracteres de formato de moeda de país/região e taxas de câmbio médias anuais.

  2. Se você tiver a Autodetecção para relacionamentos ativada, uma relação entre Formatos de Moeda de País/Região e território de vendas na coluna País/Região pode ter sido criada. Essa relação, no entanto, não é correta para o nosso modelo. Remova essa relação.

  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. Dê o nome medidas de Vendas à tabela e selecione 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 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 para um grupo de medidas, que agora aparece na parte superior do painel Dados com um ícone de grupo de medidas, desta forma:

    Captura de tela da Coluna 1 do 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 DAX e pressione Enter:

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

    Deve ter esta aparência: captura de tela da fórmula DAX de taxa de câmbio no editor da DAX.

  4. Agora, crie 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 DAX e pressione Enter:

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

    O grupo de medidas de Vendas agora deve ter esta aparência: captura de tela da fórmula de medida de quantidade de vendas convertida.

Criar um relatório

  1. Acesse o Modo de exibição de relatório. Adicione 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 este visual para ver sua medida antes de adicionar a cadeia de caracteres de formato dinâmico para medidas.

  3. No painel Dados>Medidas de vendas, selecione Valor de vendas convertido. Sem selecionar nenhum outro lugar, selecione Ano na tabela Data .

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

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

    Captura de tela do visual de gráfico de linhas a ser copiado.

  5. Adicione um visual de segmentação de dados à página de relatório selecionando Segmentação de dados lista no painel Visualizações. No painel Dados, selecione País/Região na tabela Cadeias de Caracteres de Formato de Moeda de País/Região para adicioná-lo à segmentação de dados.

    Captura de tela do filtro de país/região.

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

    Captura de tela de Rearrange visuals.

  7. Embora não seja necessário, você pode alterar as propriedades visuais para fazer um relatório mais agradável. Use o botão Formatar seu visual no painel Visualizações para fazer as seguintes alterações:

    Segmentação de dados

    • Visual de guia >Configurações de Cortador>Seleção única>Ativada
    • Guia geral >Propriedades>Padding: 10 px, todas as bordas
    • Guia>Efeitos>Borda visual: Ativado, cinza claro, cantos arredondados de 10 px
    • Título da guia >Geral: Desativado
    • Guia>Borda dos botões>: #333333, largura da linha: 6

    Tabela

    • Aba>Propriedades>Preenchimento: 10 px, todas as bordas
    • Geral guia >Efeitos>Borda visual: Ativado, cinza claro, cantos arredondados de 10 px
    • Aba Visual>Grade>Linhas de grade horizontais: Ligado, Branco, largura 2
    • Aba>Grade> linhas de grade verticais : Ligado, Branco, largura 2
    • Visual guia >Grade>Borda: Branco
    • Opções de > da guia >visual: preenchimento de 2 linhas
    • Guia Visual>Valores>Cor de Fundo: #F6F4F4
    • Visual guia >Valores>Cor de fundo alternativa: #F6F4F4
    • Visual> guia Cabeçalhos de coluna>Texto: Negrito, Cor do texto branca, Cor do plano de fundo #0D6ABF

    Gráfico de linhas

    • Aba Geral>Propriedades>Preenchimento: 10 px, todas as bordas
    • Geral guia >Efeitos>Borda visual: Ligado, cinza claro, cantos arredondados de 10 px
    • Geral guia >Propriedades>Título>Legenda: Ativado
    • Guia> Título do eixo Y>: Desativado
    • Guia visual>eixo Y>Valores: Desativado
    • Marcadores da guia >Visual: Ativado
    • Guia Visual>Rótulos de dados: Ativado
    • Guia Visual >Rótulos de Dados>Valor: Negrito, Azul

    Canvas (opcional)

    • Configurações de tela>Tela de fundo: cinza claro, 85% transparência

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

    Captura de tela de fundo cinza de tela para visualização.

Criar uma cadeia de caracteres de formato dinâmico

Selecionar nomes diferentes de país/região no filtro mostra o resultado da medida Valor de Vendas Convertidas nos visuais, mas não no formato correto para esse país/região.

  1. No painel Dados , em Medidas de Vendas, selecione Valor de Vendas Convertido.

  2. Na faixa de opções Measure Tools, selecione Dinâmico na lista suspensa Formatar.

  3. A lista suspensa à esquerda da barra de fórmulas agora deve dizer Formatar 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 pressione Enter:

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

    Ele deverá ser parecido com:

    Captura de tela da fórmula dinâmica Cadeias de Caracteres de Formato de Moeda de País/Região.

  4. Selecione um país/região diferente no fatiador. Os visuais de tabela e gráfico de linhas agora devem mostrar o valor da moeda convertida, no formato correto, para esse país/região 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 da visualização do valor das vendas convertidas.

  5. Salvar o modelo.

Problemas e considerações conhecidos

  • Os visuais têm opções de formatação que podem afetar a forma como a cadeia de caracteres de formato é exibida. Se a formatação estiver sendo exibida inesperadamente em um visual, vá para as opções de Visualizações>Formatar visual, pesquise por unidades de exibição e altere-as de Auto para Nenhum.

    Captura de tela das unidades de exibição de automático para nenhuma.

  • Você pode referenciar diretamente a própria medida em 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 você pode adicionar a um relatório de conexão ao vivo não podem ter cadeias de formato dinâmico para medidas.

  • Com o DirectQuery for Analysis Services, quando você seleciona Fazer alterações nesse modelo em um relatório de conexão dinâmica, ele desloca a conexão para o DirectQuery sobre o Analysis Services. Em geral, você pode fazer alterações nas cadeias de formato das medidas do modelo remoto. Com cadeias de caracteres de formato dinâmico para medidas:

    • 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.
    • Você não pode alterar medidas de modelo remoto 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.