Erro "The template language function 'formatNumber' format string is not valid"
O segundo parâmetro do formatNumber precisa ser um formato numérico do .NET, padrão (como N2, F0, C2, P1) ou personalizado (como 0.00, #,##0.00 ou 000). Uma letra ou combinação que não existe, como Z9, é recusada, e a mensagem mostra o formato recusado.
A mensagem completa
The template language function 'formatNumber' format string 'Z9' is not valid. The format string should be a numeric format string. Please see https://aka.ms/logicexpressions#FormatNumber for usage details.
No histórico de execuções, essa mensagem aparece dentro de uma frase maior: Unable to process template language expressions in action 'NOME_DA_ACAO' inputs at line '0' and column '0': '...'. O nome da ação é o da ação que contém a expressão e muda de fluxo para fluxo. O trecho em destaque acima é o que identifica o problema.
O que significa
O segundo parâmetro do formatNumber precisa ser um formato numérico do .NET, padrão (como N2, F0, C2, P1) ou personalizado (como 0.00, #,##0.00 ou 000). Uma letra ou combinação que não existe, como Z9, é recusada, e a mensagem mostra o formato recusado.
Causas mais comuns
- O formato foi copiado de outra ferramenta (Excel, Power Fx, SQL) que usa símbolos diferentes.
- Uma letra de formato que não existe, ou um erro de digitação.
- Confusão entre o formato de número e o de data.
Como corrigir
- Use um formato padrão: 'N2' para milhar com duas casas, 'F0' para sem casas, 'C2' para moeda, 'P1' para porcentagem.
- Ou um personalizado: '0.00' (duas casas), '000' (zeros à esquerda), '#,##0.00' (milhar).
- Informe a cultura para o separador brasileiro: formatNumber(float('1234.5'),'N2','pt-BR') devolve 1.234,50.
- Lembre que o formato '0' funciona e arredonda o meio para cima (2.5 vira 3), enquanto 'F0' arredonda 2.5 para 2.
Exemplo: antes e depois
| Expressão | Resultado no Power Automate |
|---|---|
formatNumber(1,'Z9') | Erro. The template language function 'formatNumber' format string 'Z9' is not valid. The format string should be a numeric format string. Please see... |
formatNumber(float('1234.5'),'N2','pt-BR') | 1.234,50 |
Os dois resultados vêm da execução real de 09/11/2026, e um teste automático do Me Ajuda Flow confere que o texto desta página é idêntico ao registrado.
Como evitar que o erro volte
- Veja o valor real: abra a execução e confira a entrada da ação que falhou, não só a expressão.
- Trate vazio e tipo antes de calcular: use
coalescepara vazio eintoufloatpara texto que parece número. - Confira a expressão antes de rodar: o analisador de fluxo e o verificador de expressões apontam parte desses problemas sem executar o fluxo.
Perguntas frequentes
formatNumber(1,'0') dá erro?
Não. No teste real de 09/11/2026, formatNumber(1,'0') devolveu 1 e formatNumber(1234.5,'0') devolveu 1235.
Como mostrar o valor com vírgula decimal?
Passe a cultura como terceiro parâmetro: 'pt-BR'.