Partilhar via


Criar cadeias de caracteres de formato dinâmico para medidas

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

Com cadeias de caracteres de formato dinâmico para medidas, você pode determinar como as medidas aparecem em elementos visuais aplicando condicionalmente uma cadeia de caracteres de formato com uma fórmula DAX (Data Analysis Expression) separada.

As cadeias de caracteres de formato dinâmico superam uma desvantagem inerente ao uso da função FORMAT. Com FORMAT, até mesmo tipos de dados numéricos são retornados como cadeias de caracteres, que podem não funcionar com elementos 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 a mudar para um tipo de dados de cadeia de caracteres. Isso aplica strings de formato diferentes a cada medição, 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 trabalham 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 saber mais, consulte 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. No friso Ferramentas de medida, na secção >, na caixa de listagem Formato, selecione >. Uma nova lista suspensa com Formato já selecionado aparece à esquerda da barra de fórmulas DAX. Esta lista suspensa é como 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 que estava em uso antes de mudar para Dynamic é pré-preenchida como uma cadeia de caracteres na barra de fórmulas DAX.

    Captura da lista suspensa do menu Formato.

  3. Substitua a sequência de caracteres por uma expressão DAX que produza a cadeia de caracteres de formato correta para a sua medida. Por exemplo, a expressão a seguir procura a cadeia de caracteres de formato de moeda que desejamos em uma tabela Strings 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 lista suspensa Formato da seção >Formatação, selecione uma opção de formato diferente. Como não há como desfazer essa ação, uma caixa de diálogo é exibida perguntando se você deseja continuar. Se quiser voltar a usar uma cadeia de caracteres de formato dinâmico novamente, insira novamente a expressão DAX.

    Captura de ecrã do aviso de alteração de formato.

Exemplo

A melhor maneira de aprender sobre um novo recurso é experimentá-lo você mesmo. Você pode fazer exatamente isso com o arquivo Adventure Works 2020 PBIX de exemplo disponível no modelo de exemplo DAX. Usando o modelo de exemplo, você pode adicionar conversão de moeda para mostrar o valor de vendas convertido 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 de país/região no campo Nome e, em seguida, copie e cole a tabela a seguir:

    Country/Region Moeda Formato
    Austrália Dólar AU$ #.0,00
    Canadá Dólar C$ #.0,00
    Dinamarca Coroa kr#,0
    Zona Euro Euro € #,0.00
    Japão Iene ¥ #,0
    Suécia Krona kr#,0
    Suíça Franco CHF#0,00
    Reino Unido Libra £ #,0
    Estados Unidos Dólar US$ #.000,00
  3. Verifique se a tabela está correta e selecione Carregar.

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

  4. Repita as etapas anteriores para a tabela a seguir:

    Nome da tabela: Taxas de câmbio médias anuais

    Country/Region Moeda Ano 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 2022 7.077
    Dinamarca Coroa 2021 6.29
    Dinamarca Coroa 2020 6.538
    Dinamarca Coroa 2019 6.67
    Dinamarca Coroa 2018 6.319
    Dinamarca Coroa 2017 6.864
    Zona Euro Euro 2022 0.951
    Zona Euro Euro 2021 0.846
    Zona Euro Euro 2020 0.877
    Zona Euro Euro 2019 0.893
    Zona Euro Euro 2018 0.848
    Zona 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 Krona 2022 10.122
    Suécia Krona 2021 8.584
    Suécia Krona 2020 9.205
    Suécia Krona 2019 9.457
    Suécia Krona 2018 8.703
    Suécia Krona 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 Ano

Uma nova coluna Ano é necessária na tabela Data existente.

  1. Na vista Modelo , clique com o botão direito do rato na tabela Data e selecione Nova coluna.

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

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

Criar relações

São necessárias relações entre as novas tabelas de Taxas de Câmbio Médias Anuais e 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 Data existente.

  1. Se tiver a Deteção Automática de relacionamentos ativa (no separador Ferramentas de coluna, selecione Gerir relacionamentos e, em seguida, selecione Deteção Automática), a relação entre Cadeias de Caracteres de Formato de Moeda por País/Região e as Taxas de Câmbio Médias Anuais na coluna País/Região pode ter sido criada automaticamente para si. Caso contrário, crie essa relação usando o botão Nova relação nas ferramentas>Coluna Gerenciar relacionamentos:

    • Quadro 1: Taxas de câmbio médias anuais
    • Tabela 1 Coluna: País/Região
    • Cardinalidade: Muitos para um
    • Tabela 2: Cadeias de caracteres de formato de moeda de país/região
    • Tabela 2 Coluna: País/Região
    • Torne esta relação ativa: Sim
    • Direção do filtro cruzado: Único

    A relação deve ter esta aparência:

    Captura de ecrã 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 Deteção Automática para relacionamentos ativados, uma relação entre Cadeias de caracteres de formato 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. Elimine esta relação.

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

    • Quadro 1: Taxas de câmbio médias anuais
    • Tabela 1 Coluna: Ano
    • Cardinalidade: Muitos para Muitos
    • Tabela 2: Data
    • Tabela 2 Coluna: Ano
    • Torne esta relação ativa: Sim
    • Direção do filtro cruzado: Único ('Taxa de Câmbio Média Anual' filtra 'Data')

    A relação deve ter esta aparência:

    Captura de ecrã de Relacionamento.

  4. Guarde o seu modelo.

Criar uma tabela de grupo de medidas

Um grupo de medidas ajuda você a organizar diferentes medidas, colocando-as 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 selecione Carregar. Este quadro contém as 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 DAX e pressione Enter:

    Sales Amount = SUM(Sales[Sales Amount])
    

    Deverá ter o seguinte aspeto:

    Captura de tela da fórmula DAX da medida do valor 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, da seguinte forma:

    Captura de tela da Coluna 1 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 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 da taxa de câmbio no editor DAX.

  4. Agora, crie outra medida para converter a medida Valor de vendas para 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)]))
    
    

    As medidas Vendas grupo de medidas agora devem ter esta aparência: Captura de tela da fórmula de medida Valor de vendas convertido.

Criar um relatório

  1. Vá para a visualização Relatório. Adicione uma nova página em branco ao relatório.

  2. Adicione um gráfico de linhas visual à 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 de Dados>Medidas de Vendas, selecione Valor de Vendas Convertido. Sem selecionar nenhum outro lugar, selecione também Ano na tabela Data .

    Captura de ecrã do gráfico de linhas em visualização de Relatório.

  4. Copie e cole o visual para ter dois gráficos de linhas. Altere o visual do segundo gráfico de linhas para um visual de tabela e, em seguida, mova-o abaixo do gráfico de linhas, desta forma:

    Captura de ecrã de um gráfico de linhas visual.

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

    Captura de ecrã da segmentação de dados País/Região.

  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 mais agradável. Use o botão Formatar seu visual no painel Visualizações para fazer as seguintes alterações:

    Filtro

    • Visual>Configurações da segmentação de dados>Seleção Única>Ligado
    • > Propriedades>Preenchimento: 10 px, todas as bordas
    • > Efeitos>Borda visual: Ligado, cinza claro, cantos arredondados de 10 px
    • Geral guia >Título: Desativado
    • Borda dos> da guia > visual: #333333, largura de 6 linhas

    Tabela

    • > Propriedades>Preenchimento: 10 px, todas as bordas
    • > Efeitos>Borda visual: Ligado, cinza claro, cantos arredondados de 10 px
    • Visual>Grelha>Linhas horizontais da grelha: Ligadas, Branco, largura 2
    • Guia Visual>Grade>Linhas de grade verticais: Ligado, Branco, 2 espessura
    • > Borda da grade>: Branco
    • > Opções de grade>: preenchimento de 2 linhas
    • Visual>Valores>Cor de fundo: #F6F4F4
    • Separador Visual>Valores>Cor de fundo alternativa: #F6F4F4
    • Guia Visual>Cabeçalhos de coluna>Texto: negrito, cor do texto branco, cor de fundo #0D6ABF

    Gráfico de linhas

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

    Canvas (opcional)

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

    Com essas propriedades visuais, você obtém uma boa página de relatório, como esta:

    Captura de ecrã do fundo cinzento da tela para visualização.

Criar uma cadeia de caracteres de formato dinâmico

A seleção de diferentes nomes de País/Região na segmentação de dados mostra o resultado da medida Valor de Vendas Convertido em elementos 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 fita de opções de Medir, selecione Dinâmico no menu pendente Formatar.

  3. A lista suspensa à esquerda da barra de fórmulas agora deve dizer Format, e a fórmula na barra de fórmulas deve incluir 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" )
    

    Deverá ter o seguinte aspeto:

    Captura de ecrã da fórmula dinâmica de strings de formato de moeda para país/região.

  4. Selecione um País/Região diferente no segmentador. 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 no filtro para ver como os elementos visuais mudam.

    Captura de tela do visual do valor de vendas convertido.

  5. Guarde o seu modelo.

Problemas conhecidos e considerações

  • Os elementos 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 a aparecer inesperadamente num visual, vá para as opções de Visualizações>Formatar visual, procure Unidades de visualização e altere-as de Automático para Nenhuma.

    Captura de ecrã de unidades de visualização de automático para nenhum.

  • Você pode fazer referência direta à 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 apenas 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 caracteres de formato dinâmico para medidas.

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

    • Medidas de modelo remoto com cadeias de caracteres de formato dinâmico definidas são impedidas de alterar essas cadeias para uma cadeia de caracteres de formato estático ou para uma expressão DAX com uma cadeia de caracteres de formato dinâmico diferente.
    • Não é possível 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 são impedidas de usar cadeias de caracteres de formato dinâmico para medidas.