Trabalhar com colunas de fórmula
As colunas de fórmula são colunas que exibem um valor calculado em uma tabela do Microsoft Dataverse. As fórmulas usam o Power Fx, uma linguagem de programação poderosa, porém, amigável. Crie uma fórmula em uma coluna de fórmula do Dataverse da mesma forma que você criaria uma fórmula no Microsoft Excel. À medida que você digita, o Intellisense sugere funções e sintaxe, e até ajuda a corrigir erros.
Adicionar uma coluna de fórmula
Entre no Power Apps em https://make.powerapps.com.
Selecione Tabelas e, em seguida, selecione a tabela à qual pretende adicionar uma coluna de fórmula. Se o item não estiver no painel lateral, selecione …Mais e selecione o item desejado.
Selecione a área Colunas e, em seguida, Nova coluna.
Insira as seguintes informações:
- Um Nome de exibição para a coluna.
- Se desejar, insira uma Descrição da coluna.
Em Tipo de dados selecione Fórmula de fx.
Digite a fórmula ou use sugestões de fórmula:
Insira a fórmula do Power Fx na caixa Fórmula. Mais informações: Digitar uma fórmula
- Selecione propriedades adicionais:
- Selecione Pesquisável, se quiser que essa coluna esteja disponível em exibições, gráficos, painéis e na Localização Avançada.
- Opções avançadas:
- Se a fórmula for avaliada como um valor decimal, expanda Opções avançadas para alterar o número de pontos de precisão, entre 0 e 10. O valor padrão é 2.
- Selecione Salvar.
Digitar uma fórmula
O exemplo a seguir cria uma coluna de fórmula chamada Preço total. A coluna Número de unidades é um tipo de dados de número inteiro. A coluna Preço é um tipo de dados decimal.
A coluna de fórmula exibe o resultado de Preço multiplicado por Número de unidades.
A fórmula que você insere determina o tipo de coluna. Não é possível alterar um tipo de coluna depois que a coluna é criada. Isso significa que você poderá alterar a fórmula após a criação da coluna somente se ela não alterar o tipo de coluna.
Por exemplo, a fórmula preço * desconto cria um tipo de coluna de número. Você pode alterar preço * desconto para preço * (desconto + 10%) porque isso não muda o tipo de coluna. No entanto, você não pode alterar preço * desconto para Texto(preço * desconto) porque isso exigiria alterar o tipo de coluna para cadeia de caracteres.
Obter sugestões de fórmula (versão preliminar)
[Este tópico faz parte da documentação de pré-lançamento e está sujeito a alterações.]
Descreva o que deseja que a fórmula faça e receba resultados gerados por IA. As sugestões de fórmula aceitam sua entrada em linguagem natural para interpretar e sugerir uma fórmula do Power Fx usando o modelo de IA baseado em GPT.
Importante
Este é um recurso em versão preliminar e está disponível somente nas regiões dos EUA.
Os recursos de visualização não foram criados para uso em ambientes de produção e podem ter funcionalidade restrita. Esses recursos são disponibilizados antes de um lançamento oficial para que os clientes possam ter acesso antecipado e fornecer comentários.
No momento, há suporte às sugestões de fórmula que fazem referência a uma única tabela. Não há suporte às sugestões de fórmula que fazem referência a uma coluna em uma tabela relacionada.
Pré-requisitos
Para habilitar esse recurso, você deve habilitar a configuração de ambiente Sugestões de IA para colunas de fórmula. Mais informações: Sugestões de IA para as colunas de fórmula
Exemplo de entrada de linguagem natural
Imagine que haja uma coluna Classificação do cliente que mostra a classificação por conta.
Na caixa Obter sugestões de fórmula, insira a fórmula em linguagem natural, como Se a classificação na coluna de classificação for igual ou superior a 5, então indique como Bom e se for menor que 5 indique como Médio e se o valor estiver em branco ou for zero, exiba como Ruim e selecione o botão de seta (enter).
Em seguida, copie a Fórmula sugerida.
E cole-a na caixa Digitar uma fórmula. Selecione Salvar.
Veja como a fórmula é exibida depois de colada.
Switch(
ThisRecord.'Customer Rating',
Blank(), "Bad",
0, "Bad",
1, "Average",
2, "Average",
3, "Average",
4, "Average",
5, "Good",
6, "Good",
7, "Good",
8, "Good",
9, "Good",
10, "Good"
)
Verifique a coluna da fórmula computada Descrição da classificação, que é exibida assim.
IA responsável
Para obter informações sobre IA responsável, acesse estes recursos:
- Perguntas frequentes sobre a criação de aplicativos e tabelas por meio de conversa
- Perguntas frequentes sobre o uso responsável da IA no Power Apps
Operadores
Você pode usar os seguintes operadores em uma coluna de fórmula:
+, -, *, /, %, in, exactin, &
Para obter mais informações, vá para Operadores no Power Apps.
Tipos de dados
É possível exibir os seguintes tipos de dados em uma coluna de fórmula:
- Texto
- Número decimal
- Opção Sim/Não (booliano)
- Datetime
- Número inteiro
Os tipos de dados moeda e escolha (antigos conjuntos de opções) não são suportados no momento.
Tipos de função
É possível usar os seguintes tipos de função em uma coluna de fórmula:
- Decimal
- Cadeia de caracteres
- Booliano
- Conjunto de Opções
- DateTime (TZI)
- DateTime (local do usuário) (limitado a comparações com outros valores de local do usuário e as funções DateAdd e DateDiff)
- DateTime (somente data) (limitado a comparações com outros valores somente data e as funções DateAdd e DateDiff)
- Currency
- Número inteiro, promovido a decimal
Funções
Para as funções escalares que você pode usar em uma coluna de fórmula, vá para Referência de fórmula - Dataverse colunas de fórmula.
* As funções Text e Value só funcionam com números inteiros, onde nenhum separador decimal está envolvido. O separador decimal varia entre localidades. Como as colunas de fórmula são avaliadas sem conhecimento de localidade, não há como interpretar ou gerar corretamente o separador decimal.
* Não há suporte ao argumento StartOfWeek para as funções WeekNum e Weekday nas colunas da fórmula.
Exemplo de função
Description | Exemplo |
---|---|
Recupere um valor de data. | DateAdd(UTCNow(),-1,TimeUnit.Years) |
Crie uma coluna de fórmula decimal
Crie uma coluna de fórmula que retorne um número decimal.
- Ao criar uma coluna, insira as seguintes informações:
- Um Nome de exibição para a coluna.
- Se desejar, insira uma Descrição da coluna.
- Em Tipo de dados selecione Fórmula de fx.
- Insira uma fórmula que retorne um valor numérico na barra Fórmula . Este exemplo cria uma coluna de fórmula chamada Valor Total. A coluna preço por unidade é do tipo de dados decimal.
- Expanda Opções avançadas, Select Decimal como o Tipo de dados de fórmula e defina o número necessário de casas decimais.
- Selecione Salvar.
Crie uma coluna de fórmula de número inteiro
Crie uma coluna de fórmula que retorne um número inteiro.
- Ao criar uma coluna, insira as seguintes informações:
- Um Nome de exibição para a coluna.
- Se desejar, insira uma Descrição da coluna.
- Em Tipo de dados selecione Fórmula de fx.
- Insira uma fórmula que retorne um valor numérico na barra Fórmula . Este exemplo cria uma coluna de fórmula chamada Número de Unidades. As colunas Preço Total e preço por unidade são do tipo de dados decimal.
- Expanda Opções avançadas e Select Número inteiro como o Tipo de dados de fórmula e defina o formato necessário para a coluna de número inteiro.
- Selecione Salvar.
Diretrizes e limitações
Esta seção descreve as diretrizes e as limitações conhecidas das colunas de fórmula no Dataverse.
Validações de uso de campos de moeda
- As colunas de fórmula não oferecem suporte ao uso de uma coluna de moeda de tabela relacionada na fórmula, como neste exemplo.
- No momento, não há suporte ao uso direto de colunas de moeda e taxa de câmbio na fórmula. O uso de colunas de moeda e taxa de câmbio é feito por meio da função
Decimal
, comoDecimal(currency column)
ouDecimal(exchange rate)
. A funçãoDecimal
garante que a saída esteja dentro do intervalo aceito. Se o valor da coluna de moeda ou taxa de câmbio exceder o intervalo aceito, a fórmula retornará nulo. - Não há suporte às colunas de moeda base nas expressões de coluna de fórmula porque elas são colunas do sistema usadas para fins de relatório. Se quiser um resultado semelhante, você poderá usar um tipo de coluna de moeda juntamente com uma combinação de coluna de taxa de câmbio, como
CurrencyField_Base = (CurrencyField / ExchangeRate)
.
Validações de uso de colunas de data e hora
- O comportamento das colunas de fórmula de data e hora só pode ser atualizado quando não é usado em outra coluna de fórmula.
- Para colunas de fórmula de data e hora, ao usar a função
DateDiff
, certifique-se de que:- A coluna de comportamento do Local do Usuário não pode ser comparada ou usada com uma coluna de comportamento
DateTime(TZI)/DateOnly
. - A coluna de comportamento do Local do Usuário só pode ser comparada ou usada com outra coluna de comportamento de Local do Usuário.
- As colunas de comportamento
DateTime(TZI)
podem ser comparadas ou usadas em funçõesDateDiff
com outra coluna de comportamentoDateTime(TZI)/DateOnly
. - As colunas de comportamento
DateOnly
podem ser comparadas ou usadas em funções DateDiff com outra coluna de comportamentoDateTime(TZI)/DateOnly
.
- A coluna de comportamento do Local do Usuário não pode ser comparada ou usada com uma coluna de comportamento
- Colunas de data e hora e funções de data e hora
UTCNow()
,Now()
não podem ser passadas como parâmetro para funções de cadeia de caracteres.
Uso da coluna de fórmula em campos cumulativos
- Uma coluna de fórmula simples é onde a fórmula usa colunas do mesmo registro ou valores embutidos em código. Para colunas cumulativas, as colunas de fórmula devem ser colunas de fórmula simples, como este exemplo de coluna cumulativa.
- Uma coluna de fórmula que depende de funções com limite de tempo
UTCNow()
eUTCToday()
não pode ser usada em um campo cumulativo.
Recomendações da função text do Power Fx
As colunas de fórmula não oferecem suporte a funções
Text()
com um único argumento do tipo Número. O número pode ser inteiro, decimal ou monetário.As colunas de fórmula não oferecem suporte ao uso de números nas seguintes configurações:
- Em funções da cadeia de caracteres. Estas são funções de cadeia de caracteres colocadas onde quer que um argumento de texto seja esperado: Upper, Lower, Left, Right, Concatenate, Mid, Len, StartsWith, EndsWith, TrimEnds, Trim, Substitute e Replace.
- Nas fórmulas implícitas, como
12 & "foo"
,12 & 34
ou"foo" & 12
. - Não há suporte à coerção de número interno para texto. Recomendamos usar
Text(Number, Format)
para converter um número em texto. No caso em que um argumentoString
seja passado em uma funçãoText
, o argumentoFormat
não terá suporte. - Veja um exemplo usando a função
Text
para converter um número em texto e acrescentar uma cadeia de caracteres a ele:
Concatenate(Text(123,"#"),"ab") Text(123,"#") & "foo"
Não há suporte aos tokens de formatação específicos da localidade, como "." e "," em colunas de fórmula.
Validações de intervalo em colunas de fórmula
- Não é possível definir as propriedades Valor mínimo ou Valor máximo de uma coluna de fórmula.
- Todos os cálculos internos devem estar dentro do intervalo do Dataverse para as colunas de fórmula do tipo decimal (-100000000000 a 100000000000).
- Um valor literal embutido em código inserido na barra de fórmulas deve estar dentro do intervalo do Dataverse.
- Se houver uma coluna numérica nula, ela será considerada 0 na operação intermediária. Por exemplo,
a+b+c and If a = null, b=2, c=3
, então a coluna de fórmula fornece0 + 2 + 3 = 5
.- Esse comportamento é diferente das colunas calculadas neste caso porque as colunas calculadas fornecem
null + 2 + 3 = null
.
- Esse comportamento é diferente das colunas calculadas neste caso porque as colunas calculadas fornecem
Validações gerais em colunas de fórmula
- As colunas de fórmula podem fazer referência a outras colunas de fórmula, mas uma coluna de fórmula não pode fazer referência a si mesma.
- As colunas de fórmula não oferecem suporte a cadeias cíclicas, como
F1 = F2 + 10, F2 = F1 * 2
. - O tamanho máximo da expressão de fórmula nas colunas de fórmula é de 1.000 caracteres.
- A profundidade máxima permitida nas colunas da fórmula é 10. Profundidade é definida como a cadeia de colunas de fórmula que fazem referência a outras colunas de fórmula ou cumulativas.
- Por exemplo,
table E1, F1 = 1*2, table E2, F2 - E1*2
. Neste exemplo, a profundidade de F2 é 1.
- Por exemplo,
- Em aplicativos baseados em modelo, a classificação permanece desabilitada em:
- Uma coluna de fórmula contendo uma coluna de uma tabela relacionada.
- Uma coluna de fórmula contendo uma coluna lógica (por exemplo, uma coluna de endereço).
- Uma coluna de fórmula contendo outra coluna ou fórmula calculada.
- Uma coluna de fórmula usando uma função vinculada ao tempo
UTCNow()
.
- Não há suporte a colunas do tipo Número Inteiro com formato Idioma, Duração, Fuso Horário nas colunas de fórmula.
- Não há suporte a colunas do tipo Cadeia de Caracteres com formato Email, Área de Texto, Símbolo de Ação, URL nas colunas de fórmula.
- As colunas de fórmula não exibem valores quando o aplicativo está no modo offline.
- Não é possível desencadear fluxos de trabalho ou plug-ins em colunas de fórmula.
- Não recomendamos o uso de colunas calculadas em colunas de fórmula e vice-versa.
- As regras de detecção de duplicidades não são desencadeadas em colunas de fórmula.
- A função
Now
pode ser usada com colunas de fórmula.Now()
tem comportamento Local do Usuário eUTCNow()
tem comportamento independente de fuso horário. - Você pode definir a propriedade de precisão para colunas decimais.
- O valor do tipo de dados da fórmula padrão é definido como Decimal para fórmulas que retornam valores numéricos.
- A atualização do formato da coluna de fórmula de número inteiro não é suportada.
No momento, não há suporte a funções do Power Fx
- Power
- Sqrt
- Exp
- Ln
- ^ (operador)
Colunas de fórmula de tipos de dados que não podem ser produzidos
- Opções (exceto opção Sim/Não)
- Currency
Ver também
Visão geral do Microsoft Power Fx
Colunas de fórmula, calculadas e de valor acumulado usando código