Calcula a expressão trocando o filtro: TUDO() ignora o grupo, FILTRAR() recorta.
| Campo | Valor |
|---|---|
| Categoria | Contexto e filtro |
| Tipo | Agregação (opera sobre um conjunto de linhas) |
| Aridade | 1 a 9 argumentos |
| Compila para SQL (coluna calculada) | Não |
| Versão | Motor de fórmulas v3. |
Aliases#
Nome canônico: CALCULAR. Aliases aceitos (maiúsc./minúsc. indiferente): calculate.
Assinatura#
CALCULAR(expr; [arg2]; [arg3]; [arg4]; [arg5]; [arg6]; [arg7]; [arg8]; [arg9])Todos os argumentos são expressões.
Retorno#
O valor da expressão avaliada no contexto trocado.
Tratamento de nulos#
Quando não há linha no contexto trocado, devolve vazio (nunca zero) — um branco é mais honesto que um zero inventado.
Contexto de avaliação#
Troca o contexto de filtro e SÓ ENTÃO avalia a expressão (avaliação preguiçosa) — por isso o resultado difere de calcular a expressão antes.
Diferenças para DAX#
- Equivalente DAX: CALCULATE
- Compatibilidade: DIFERE do DAX — semântica diferente, atenção
- Observação: Modificadores restritos ao repertório do motor (condição solta, FILTRAR, TUDO, TUDO_EXCETO, REMOVER_FILTROS, ENTRE_DATAS, DATAS_NO_PERIODO, TRATAR_COMO, PRIMEIROS_N). Opera sobre as linhas do visual, sem modelo tabular.
Exemplos#
CALCULAR(SOMA(receita); FILTRAR(uf = "SP"))Exemplo com valores#
Entrada: soma ignorando o filtro do grupo (TUDO) → 100.
CALCULAR(SOMA(receita); TUDO()) → 100Resultado esperado: 100
Exemplo de negócio#
Medida comparativa — participação no total, ranking, variação contra outro período.
Erros comuns#
Erros de digitação em nome de coluna, tipo incompatível ou argumento inválido viram mensagem amigável (pt-BR) — o motor nunca devolve um número errado em silêncio.