Criar cadeias de caracteres de formato dinâmico para medidas
APLICA-SE A: Serviço Power BI do Power BI Desktop
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 expressão DAX separada.
Nota
As cadeias de caracteres de formato dinâmico para medidas estão atualmente em Pré-visualização. Quando na Pré-visualização, é provável que a funcionalidade e a documentação sejam alteradas.
As cadeias de caracteres de formato dinâmico superam uma desvantagem inerente ao uso da função FORMAT. Ou seja, com FORMAT até mesmo tipos de dados numéricos são retornados como uma cadeia de caracteres, que pode não funcionar com elementos 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 a mudar para um tipo de dados de cadeia de caracteres. Isso aplica cadeias de caracteres de formato diferentes à medida, dependendo do contexto.
Cadeias de caracteres de formato dinâmico também podem ser usadas com grupos de cálculo. Os mesmos padrões DAX que trabalham 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 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
No painel Dados, selecione a medida para a qual você deseja especificar uma cadeia de caracteres de formato dinâmico.
Na caixa de listagem Formatar da seção Formatar da faixa >de opções > Ferramentas de medida, selecione Dinâmico. Uma nova caixa de listagem 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.
Substitua a cadeia de caracteres por uma expressão DAX que produza 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 que queremos em uma tabela 'Cadeias de caracteres de formato de moeda de país':
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 caixa de listagem Formatar 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.
Exemplo
A melhor maneira de aprender sobre um novo recurso é experimentá-lo você mesmo. Você pode fazer exatamente isso com o arquivo PBIX de exemplo do Adventure Works 2020 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.
Na faixa de opções Página Inicial, selecione Inserir dados.
Na caixa de diálogo Criar tabela, digite o seguinte nome de tabela e copie e cole a tabela a seguir:
Nome da tabela: Strings de formato de moeda do país
País 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 da América Dólar EUA $ #,0.00 Verifique se a tabela está correta e clique em Carregar.
Repita as etapas anteriores para a tabela a seguir:
Nome da tabela: Taxas de câmbio médias anuais
País Moeda Anual 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.
Na vista Modelo , clique com o botão direito do rato na tabela Data e, em seguida, selecione Nova coluna.
Na barra de fórmulas DAX, digite a seguinte expressão:
Year = YEAR([Date])
e pressione Enter.
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 e entre a tabela de Taxas de Câmbio Médias Anuais e a tabela Data existente.
Se você tiver a Deteção Automática para relacionamentos ativados, 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 esta relação:
- Quadro 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
- Torne esta relação ativa: Sim
- Direção do filtro cruzado: Simples
A relação deve ter esta aparência:
Se você tiver a Deteção Automática para relacionamentos ativados, uma relação entre as Cadeias de Caracteres de Formato de Moeda do País e o 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 essa relação.
Em vez disso, crie uma relação entre as Taxas de Câmbio Médias Anuais e a coluna Data no Ano .
- Quadro 1: Taxas de câmbio médias anuais
- Tabela 1 Coluna: Ano
- Cardinalidade: Muitos para Muitos
- Quadro 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:
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.
Na faixa de opções Página Inicial, selecione Inserir dados.
Na caixa de diálogo Criar tabela, deixe os valores em branco. Nomeie a tabela Medidas de vendas e clique em Carregar. Este quadro contém as suas novas medidas.
Criar medidas
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:
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:
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 Currency Format Strings'[Country] ) ) || SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) = "United States", 1, AVERAGE ( 'Yearly Average Exchange Rates'[Yearly Average Exchange Rate] ) )
Deve ter a seguinte aparência:
Agora você cria 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)]))
O grupo de medidas de vendas agora deve ter esta aparência:
Criar um relatório
Vá para a visualização Relatório. Adicione uma nova página em branco ao relatório.
Adicione um gráfico de linhas visual à sua nova página de relatório. Use esse visual para ver sua medida antes de adicionar a cadeia de caracteres de formato dinâmico para medidas.
No painel >Dados Medidas de vendas, selecione Valor de vendas convertido. Sem clicar em nenhum outro lugar, selecione também Ano na tabela Data .
Copie e cole o visual para ter dois visuais de gráfico 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, da seguinte forma:
Adicione um visual de segmentação de dados à página de relatório. Na faixa de opções Formatar, adicione País da tabela Cadeias de caracteres de formato de moeda do país à segmentação de dados.
Reorganize os visuais até que eles tenham um layout melhor, algo assim:
Embora não seja necessário, você pode alterar as propriedades visuais para criar um relatório mais agradável:
Segmentação de dados
- Configurações da segmentação de dados: Seleção única
- Tamanho e estilo, preenchimento: 10 px, todas as bordas
- Tamanho e estilo, borda visual: cinza claro, cantos arredondados de 10 px
- Configurações de segmentação de dados, Estilo: Bloco
- Cabeçalho da segmentação de dados: Desativado
- Valores, borda: Esquerda, #333333, 6 largura de linha
Tabela
- Tamanho e estilo, preenchimento: 10 px, todas as bordas
- Tamanho e estilo, borda visual: cinza claro, cantos arredondados de 10 px
- Grade, Linhas de grade horizontais: Branco, 2 largura
- Grade, Linhas de grade verticais: Branco, 2 largura
- Grade, borda: Branco
- Grade, Opções: preenchimento de 2 linhas
- Valores, Valores: Cor de fundo #F6F4F4
- Valores, Valores: Cor de fundo alternativa #F6F4F4
- Cabeçalhos de coluna, Texto: negrito, cor do texto branco, cor de fundo #0D6ABF
Gráfico de linhas
- Tamanho e estilo, preenchimento: 10 px, todas as bordas
- Tamanho e estilo, borda visual: cinza claro, cantos arredondados de 10 px
- Título, Legenda: On
- Eixo Y, Título: Desligado
- Eixo Y: Desligado
- Marcadores: Ativado
- Rótulos de dados: Ativado
- Rótulos de dados, Valores: Negrito, Azul
Lona (opcional)
- Fundo da tela: cinza claro, 85% transparência
Com essas propriedades visuais, você obtém uma boa página de relatório, como esta:
Criar uma cadeia de caracteres de formato dinâmico
A seleção de nomes de países diferentes 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 ou região.
No painel >Dados Medidas de vendas, selecione Valor de vendas convertido.
Na faixa de opções Ferramentas de medida, clique na lista suspensa Formatar e selecione Dinâmico.
A caixa de listagem 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 Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
Deverá ter o seguinte aspeto:
Selecione um País diferente na segmentação de dados. Os visuais de tabela e 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 elementos visuais mudam.
Guarde o seu modelo.
Problemas conhecidos e considerações
Durante a Pré-visualização, estão a ser abordados os seguintes problemas e limitaçõ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 ser apresentada inesperadamente num visual, aceda às opções de Formato visual, procure unidades de visualização e altere-a de Automático para Nenhum.
A medida em si pode ser referenciada diretamente 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 podem ser adicionadas 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ê clica em 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. Durante a Pré-visualização:
- Medidas de modelo remoto com cadeias de caracteres de formato dinâmico definidas são impedidas de fazer alterações de cadeia de caracteres de formato estático 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 são impedidas de usar cadeias de caracteres de formato dinâmico para medidas.