O que são campos calculados (e quando usar)
Campos calculados são fórmulas criadas dentro do Looker Studio para gerar uma nova dimensão ou métrica a partir de campos existentes. Eles servem para transformar dados (ex.: limpar texto, agrupar categorias), criar indicadores (ex.: taxa, ticket médio) e padronizar regras de negócio diretamente no relatório.
Você pode criar campos calculados em dois lugares comuns:
- No nível da fonte de dados: o campo fica disponível para todos os gráficos que usam aquela fonte (bom para padronizar regras).
- No nível do gráfico: o campo existe apenas naquele gráfico (bom para testes rápidos ou exceções).
Como criar um campo calculado (passo a passo)
- Selecione um gráfico (ou abra a edição da fonte de dados, se preferir criar no nível da fonte).
- No painel de propriedades, localize a seção de Campos (Dimensão ou Métrica).
- Clique em Adicionar campo (ou Criar campo).
- Digite um nome claro para o campo.
- Escreva a fórmula e use a validação do editor (erros aparecem em destaque).
- Salve e aplique no gráfico para conferir o resultado.
Dica prática: comece criando uma tabela simples com os campos de entrada e o campo calculado ao lado. Isso facilita validar linha a linha.
Operações básicas: soma, razão e métricas derivadas
KPI de Receita (soma)
Se sua fonte possui um campo numérico de receita por evento/linha (por exemplo, revenue), o KPI geralmente é apenas a agregação Soma no gráfico. Mas em alguns casos você precisa garantir que o campo seja numérico e tratar nulos.
Exemplo de campo calculado para “Receita (segura)”:
- Ouça o áudio com a tela desligada
- Ganhe Certificado após a conclusão
- + de 5000 cursos para você explorar!
Baixar o aplicativo
IFNULL(revenue, 0)Depois, no KPI, use a agregação Soma desse campo.
Ticket Médio (razão)
Ticket médio é uma razão: Receita / Pedidos. É comum errar aqui criando AVG(revenue) (média por linha), que não representa o ticket médio real se a granularidade não for “pedido”. A forma mais segura é dividir somas.
Campo calculado:
SAFE_DIVIDE(SUM(IFNULL(revenue, 0)), SUM(IFNULL(orders, 0)))O que isso resolve:
SUM()garante que você está calculando no nível agregado do gráfico.IFNULL()evita que nulos “quebrem” o cálculo.SAFE_DIVIDE()evita erro quando o denominador é 0 (retorna nulo em vez de erro).
Conversões por Sessão (razão)
Um exemplo comum é “conversões por sessão”: Conversões / Sessões. A lógica é igual: dividir somas.
SAFE_DIVIDE(SUM(IFNULL(conversions, 0)), SUM(IFNULL(sessions, 0)))Para exibir como taxa (percentual), você pode multiplicar por 100 ou apenas formatar como porcentagem, dependendo do padrão do seu relatório:
SAFE_DIVIDE(SUM(IFNULL(conversions, 0)), SUM(IFNULL(sessions, 0)))Depois, ajuste a formatação do campo para Percentual (quando aplicável) ou mantenha como razão (ex.: 0,12) conforme o público.
Condições com IF e CASE: regras de negócio simples
Quando usar IF vs CASE
- IF: bom para uma condição simples (se/então/senão).
- CASE: ideal quando há várias regras e prioridades (primeira regra que bater “vence”).
Categorização de canais com regras simples (CASE)
Suponha que você tenha uma dimensão de origem/mídia ou canal (por exemplo, source, medium ou channel). Você pode criar uma dimensão “Canal (agrupado)” com regras básicas. Exemplo genérico usando source e medium:
CASE WHEN LOWER(medium) IN ("cpc", "ppc", "paid") THEN "Pago" WHEN LOWER(medium) IN ("organic", "seo") THEN "Orgânico" WHEN LOWER(medium) IN ("email", "e-mail") THEN "Email" WHEN LOWER(medium) IN ("referral") THEN "Referência" WHEN LOWER(medium) IN ("(none)", "none") AND LOWER(source) IN ("(direct)", "direct") THEN "Direto" ELSE "Outros"ENDBoas práticas nesse tipo de regra:
- Use
LOWER()para evitar falhas por variação de maiúsculas/minúsculas. - Coloque regras mais específicas antes das genéricas.
- Garanta um
ELSEpara não deixar valores sem categoria.
Exemplo com IF: flag de conversão
Se você precisa criar um indicador binário (0/1) para contar ocorrências:
IF(event_name = "purchase", 1, 0)Depois, você pode somar esse campo para obter o total de compras (desde que a granularidade faça sentido).
Concatenação e limpeza simples de texto
Concatenar campos para criar uma chave ou rótulo
Para unir duas dimensões em uma só (ex.: “Origem / Mídia”):
CONCAT(source, " / ", medium)Se houver risco de nulos, proteja cada parte:
CONCAT(IFNULL(source, "sem_source"), " / ", IFNULL(medium, "sem_medium"))Limpeza simples: remover espaços e padronizar caixa
Alguns problemas comuns são espaços extras e variações de escrita. Exemplos:
- Remover espaços no início/fim:
TRIM(campaign)- Padronizar para minúsculas:
LOWER(TRIM(campaign))- Substituição simples (quando aplicável):
REPLACE(LOWER(TRIM(medium)), "e-mail", "email")Essas limpezas ajudam a reduzir categorias duplicadas em gráficos (ex.: “Email” vs “email” vs “e-mail”).
Tratamento de nulos e zeros (para evitar números errados)
IFNULL para garantir valores padrão
Quando um campo pode vir nulo, o cálculo pode retornar nulo e “sumir” em alguns contextos. Use IFNULL para definir um padrão:
IFNULL(cost, 0)SAFE_DIVIDE para evitar divisão por zero
Em taxas e razões, o denominador pode ser 0 em filtros específicos (ex.: um canal sem sessões no período). Use:
SAFE_DIVIDE(SUM(numerator), SUM(denominator))Se você preferir exibir 0 em vez de nulo quando não há base, combine:
IFNULL(SAFE_DIVIDE(SUM(numerator), SUM(denominator)), 0)Como validar se o campo calculado está correto
Validação visual com tabela
Crie uma tabela com:
- Dimensão de inspeção (ex.: data, canal, campanha).
- Campos base (ex.: receita, pedidos, sessões, conversões).
- O campo calculado (ex.: ticket médio, conversões/sessão).
Depois:
- Compare o resultado em diferentes filtros (um canal específico, um dia específico).
- Verifique casos extremos: denominador 0, valores nulos, linhas sem conversão.
Checagem de consistência com “contas de guardanapo”
Escolha um recorte pequeno (por exemplo, um único dia) e confira:
- Ticket Médio esperado = Receita total do dia / Pedidos do dia.
- Conversões por Sessão esperado = Conversões do dia / Sessões do dia.
Se o valor do Looker Studio divergir, suspeite de:
- Granularidade diferente do que você imaginou (linha por evento, por item, por sessão).
- Uso de
AVG()quando deveria serSUM()/SUM(). - Filtros aplicados ao gráfico e não ao controle/página (ou vice-versa).
Como evitar erros de tipo (número vs texto vs data)
Erros comuns e como corrigir
| Problema | Sintoma | Correção típica |
|---|---|---|
| Campo numérico tratado como texto | Não soma corretamente ou não permite operações | Converter/ajustar para número e usar IFNULL(campo, 0) |
| Concatenação com número | Erro ao usar CONCAT | Converter número para texto quando necessário (ou concatenar apenas dimensões textuais) |
| Divisão por zero | Erro ou valores em branco inesperados | Usar SAFE_DIVIDE e, se necessário, IFNULL |
| CASE com retornos de tipos diferentes | Erro de validação no editor | Garantir que todos os THEN e ELSE retornem o mesmo tipo (todos texto ou todos número) |
Regra prática: em um CASE que cria uma dimensão, retorne sempre texto. Em um CASE que cria uma métrica, retorne sempre números (ex.: 0/1).
Exemplos guiados (do zero ao uso no gráfico)
1) KPI de Receita
- Crie o campo:
Receita (segura)comIFNULL(revenue, 0). - Insira um gráfico de KPI.
- Defina a métrica como
Receita (segura)com agregação Soma. - Valide com uma tabela por data para conferir se o total bate com o esperado.
2) Ticket Médio
- Crie o campo:
Ticket Médio. - Use a fórmula:
SAFE_DIVIDE(SUM(IFNULL(revenue, 0)), SUM(IFNULL(orders, 0)))- Coloque em um KPI e também em uma tabela por canal para ver variações.
- Valide pegando um canal e conferindo: receita do canal / pedidos do canal.
3) Conversões por Sessão
- Crie o campo:
Conversões por Sessão. - Use:
SAFE_DIVIDE(SUM(IFNULL(conversions, 0)), SUM(IFNULL(sessions, 0)))- Exiba em um gráfico de série temporal para acompanhar tendência.
- Teste um período curto e confira manualmente com os totais do mesmo recorte.
4) Categorização de canais (regras simples)
- Crie uma dimensão:
Canal (agrupado). - Use um
CASEcomLOWER()e umELSE(modelo apresentado acima). - Troque a dimensão do gráfico (ex.: tabela ou pizza) para
Canal (agrupado). - Valide filtrando por um valor de
mediume verificando se caiu na categoria correta.
Recomendações de nomenclatura e documentação do cálculo
Padrões de nome
- Comece com o tipo: KPI, Taxa, Dim, Flag (ex.:
KPI Receita,Taxa Conversão,Dim Canal (agrupado)). - Inclua unidade quando fizer sentido:
(R$),(%),(por sessão). - Evite nomes genéricos como “Novo campo”.
Documente a regra dentro do próprio relatório
- Crie uma pequena tabela de “Dicionário” em uma página de apoio com: nome do campo, fórmula e observações.
- Quando a regra tiver exceções (ex.: canais), registre a prioridade das condições do
CASE. - Se houver versões, use sufixos controlados:
Ticket Médio v2apenas durante transição; depois, renomeie para manter um único campo oficial.