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
No painel Dados, selecione a medida para a qual você deseja especificar uma cadeia de caracteres de formato dinâmico.
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.
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’:
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.
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.
Na faixa de opções Início, selecione Inserir dados.
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 Verifique se a tabela parece correta e clique em Carregar.
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.
No modo de exibição Modelo, clique com o botão direito na tabela Data e selecione Nova coluna.
Na barra de fórmulas do DAX, insira a seguinte expressão:
Year = YEAR([Date])
e, em seguida, pressione Enter.
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.
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:
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.
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:
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.
Na faixa de opções Início, 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. Essa tabela contém 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 do DAX e pressione Enter:
Sales Amount = SUM(Sales[Sales Amount])
Ele deverá ser parecido com:
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:
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:
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:
Criar um relatório
Acesse o Modo de exibição de relatório. Adicionar uma nova página em branco ao relatório.
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.
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.
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:
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.
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 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:
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.
No painel Dados>Medidas de vendas, selecione Valor de vendas convertido.
Na faixa de opções Ferramentas de medidas, clique na lista suspensa Formato e selecione Dinâmico.
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:
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.
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.
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.