Partilhar via


Criar cadeias de caracteres de formato dinâmico para medidas

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

Ao usar strings de formato dinâmico para as medidas, pode controlar como as medidas aparecem nos visuais. Aplicar condicionalmente uma cadeia de caracteres de formato usando uma fórmula separada de Expressão de Análise de Dados (DAX).

As strings de formato dinâmico resolvem um problema com a função FORMAT. O FORMAT devolve todos os resultados como cadeias de caracteres, mesmo tipos de dados numéricos. Este comportamento pode causar problemas com imagens como gráficos que precisam de valores numéricos.

Quando usas strings de formato dinâmico, a medida mantém o seu tipo de dados e não muda para um tipo de data string. Aplicas diferentes cadeias de formato à medida dependendo do contexto.

Você também pode usar cadeias de caracteres de formato dinâmico com grupos de cálculo. Os mesmos modelos DAX que funcionam com grupos de cálculo também funcionam em cadeias de formato dinâmico para medidas. No entanto, o âmbito está limitado a medidas individuais em vez de todas as medidas do modelo. Para mais informações, veja Grupos de cálculo - Strings de formato dinâmico.

Criar cadeias 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 barra de ferramentas de Medição, na secção Formatação, selecione Dinâmico na lista de Formatos. 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. A string de formato estático que usaste antes da mudança para Dynamic está pré-preenchida como uma string na barra de fórmulas DAX.

Use a parte de valor de uma caixa de texto

Quando trabalha com caixas de texto nos seus relatórios, pode mostrar os valores de medida com formatação dinâmica. Para usar a parte de valor de uma caixa de texto:

  1. Selecione a caixa de texto no seu relatório.

  2. No painel de Formato, em Valores, selecione o botão de campo (ícone fx).

  3. Escolha a medida que tenha uma string de formato dinâmico aplicada.

  4. A caixa de texto mostra o valor da medida usando a cadeia de formato dinâmico.

    Para mais informações sobre caixas de texto e conteúdos dinâmicos, consulte Adicionar caixas de texto e formas aos relatórios do Power BI.

    Captura da lista suspensa do menu Formato.

  5. 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 seguinte procura a cadeia de formato de moeda que pretende numa tabela Formatos de Moeda por País/Região:

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

  6. 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, precisas de 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

Adicione uma nova coluna de Ano à tabela de datas 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, introduza a seguinte expressão: Year = YEAR([Date]), e depois pressione Enter.

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

Criar relações

Crie relações entre as suas novas Taxas de Câmbio Médias Anuais e as tabelas de Formatos de Moeda de País/Região, e entre a tabela de Taxas de Câmbio Médias Anuais e a tabela de datas existente.

  1. Se ativares a Deteção Automática para relações (no separador Ferramentas de Colunas , seleciona Gerir relações e depois selecionaDeteção Automática), pode ser criada a relação entre as Strings de Formato de Moeda País/Região e as Taxas de Câmbio Médias Anuais na coluna País/Região . Se não, crie esta relação usando o botão Novo relacionamento em Ferramentas de Coluna>Gerir relações:

    • 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 ativar a deteção automática para relações, pode ser criada uma relação entre as Formatações Monetárias de País/Região e o território de vendas na coluna País/Região. Apaga esta relação porque não está correta para o modelo.

  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 das medidas de vendas e depois selecione Carregar. Este quadro contém as suas novas medidas.

Criar medidas

  1. No painel de Dados , expanda e clique com o botão direito nas medidas de Vendas, e depois 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. Esta alteração transforma as medidas de Vendas num grupo de medidas, que agora aparece no topo do painel de Dados com um ícone de grupo de medidas, desta 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. Mude o visual do segundo gráfico de linhas para um visual de tabela e depois move-o por baixo do gráfico de linhas, assim:

    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
    • Separador geral>Efeitos>Borda visual: Ativado, cinzento claro, cantos arredondados a 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
    • Geral>Separador>Borda visual: Ligada, cinzento claro, cantos arredondados a 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
    • Geral>Efeitos>Contorno 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 do Canvas>Fundo do Canvas: cinzento claro, transparência de 85%

    Ao usar estas propriedades visuais, cria uma página de relatório que se assemelha a esta:

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

Criar uma cadeia de caracteres de formato dinâmico

Quando selecionas diferentes nomes de País/Região no slicer, os visuais mostram o resultado da medida do Valor de Vendas Convertido, 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. O menu suspenso à esquerda da barra de fórmulas agora mostra Format, e a fórmula na barra de fórmulas tem uma cadeia de formatação. Substitua a string de formato pela seguinte expressão DAX e depois 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 gráficos da tabela e do gráfico de linhas mostram agora o montante 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 e considerações conhecidos

  • Os elementos visuais têm opções de formatação que podem afetar a aparência da cadeia de formatação. Se a formatação aparecer inesperadamente num visual, vá às opções de Formatação de Visualizações> do visual, procure unidades de exibição e mude-as de Auto para Nenhum.

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

  • Pode referenciar a medida em si na sua string de formato dinâmico diretamente usando o seu nome, como [Medida A], ou indiretamente usando SELECTEDMEASURE().

  • As strings de formato dinâmico para medidas aplicam-se apenas a medidas de modelo. Não podes adicionar strings de formato dinâmico para as medidas de relatório num relatório de live connect.

  • Ao usar o DirectQuery para Serviços de Análise, ao selecionar Fazer alterações a este modelo num relatório de live connect, transfere a ligação para o DirectQuery em vez dos Serviços de Análise. Em geral, você pode fazer alterações nas cadeias de caracteres de formato das medidas de modelo remoto. Usando 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.