Selo de estado:
Preview(teto atual do produto) · Curso ACD-330 — Dashboards: visuais, filtros, interações e design · Aula 7 de 12 · Atualizado em 2026-10-04.
Objetivo#
Ao final desta aula você vai configurar período relativo e escopo.
Vídeo#
Identificador: acd-330-07-slicers-datas-relativas · Duração-alvo: 7 min · Tela: /dashboards.
Roteiro (capítulos):
- 0:00–1:15 — os 8 tipos de slicer (
/dashboards/[id]) — select, daterange, buttons, range, hier, number, field, measure. - 1:15–2:30 — escopo: dashboard, página ou visual (
/dashboards/[id]) — onde cada slicer alcança. - 2:30–4:00 — datas relativas (
/dashboards/[id]) — presets e a sintaxe-Nd/-Nw/-Nm/-Ny. - 4:00–5:15 — sincronização entre páginas (
/dashboards/[id]) — um controle só, válido no painel inteiro. - 5:15–6:30 — link filtrado por URL (
/dashboards/[id]) — o que viaja no?f=e o que não viaja. - 6:30–7:00 — por que filtro nunca vira SQL — custo zero e zero superfície de injeção.
Conteúdo#
Todo filtro é client-side — e isso muda a decisão de design
Antes de escolher o tipo de slicer, vale entender a regra que está por trás de todos eles: nenhum filtro/slicer vira SQL. O recorte acontece sobre o snapshot já carregado no navegador. Isso tem três consequências práticas: custo zero por interação (filtrar não gera nova consulta faturável), nenhuma superfície de injeção via slicer, e o limite do filtro passa a ser o que já está no snapshot — se um valor não foi materializado, nenhum slicer o traz de volta.
Como aparece no produto
O editor tem 8 tipos de slicer: select (lista/combo), daterange (intervalo de datas), buttons (botões de opção única), range (faixa numérica com arraste), hier (hierarquia encadeada, ex.: Região → UF → Cidade), number ("e se" — simula um número), field (troca o campo/dimensão usado por um visual) e measure (troca a métrica). Os seis primeiros recortam dados; os dois últimos (field/measure) são parâmetros — mudam o que o visual mostra, não que linhas aparecem.
Cada slicer tem um escopo: o painel inteiro, só a página atual, ou só um ou mais visuais específicos (destino). Um slicer de categoria no escopo do dashboard recorta tudo; o mesmo slicer restrito a um visual só vale ali — e o editor avisa quando o escopo escolhido "não alcança nada" (por exemplo, um visual que não usa a coluna filtrada). Todo slicer com muitas opções (20+) ganha busca embutida, com multi-seleção (OR/AND) e os botões "selecionar tudo"/"limpar".
Datas relativas resolvem a dor mais comum de painel executivo: "últimos 30 dias" que ninguém precisa reconfigurar todo santo dia. Os presets vão de hoje/7d/30d/mês/ano até a sintaxe genérica -Nd/-Nw/-Nm/-Ny (estilo Power BI) — a janela é calculada no fuso do painel (America/Sao_Paulo por padrão), então "hoje" significa o dia local do leitor, não UTC.
Sincronização entre páginas (syncPages) resolve a segunda dor: configurar o mesmo filtro em 5 páginas separadas. Um slicer marcado como sincronizado vale no painel inteiro, mesmo aparecendo fisicamente numa página só — mude-o na página "Resumo" e ele também recorta a página "Detalhe".
Por fim, a seleção pode viajar pela URL (?f=, codificada em base64url) para compartilhar um link já filtrado com um colega — junto dela viajam os parâmetros field/measure/number. É útil, mas incompleto: faixa (range) e hierarquia (hier) não sobrevivem só pela URL (dependem de um bookmark salvo), e não há autosave por usuário — por isso esse recurso específico (persistência por URL) é Preview, mesmo com os slicers e datas relativas sendo GA-candidato.
Exemplo na Aurora Varejo
No painel "Comercial — Aurora", adicione um daterange com preset "últimos 30 dias" no escopo do dashboard — ele recorta KPIs, mapa e linha de uma vez. Adicione um select de filiais.regiao e um select de produtos.marca, ambos também no escopo do dashboard. Marque o daterange como sincronizado entre páginas: configure-o na página "Resumo" e confirme que ele também vale na página "Detalhe". Filtre por "Bebidas", copie a URL do painel e abra em outra aba — a categoria deve vir recortada.
Erros comuns de design
- Escopo errado por visual. Restringir um slicer a um visual que nem usa a coluna filtrada gera o aviso "não alcança nada" — confirme o escopo antes de publicar.
- Confiar que a URL guarda tudo. Faixa e hierarquia não sobrevivem só pela URL — se o link precisa restaurar esses tipos, use um bookmark (aula 8), não o
?f=. - Datas relativas sem checar o fuso. "Hoje" no fuso errado desalinha o painel por um dia inteiro perto da virada — confirme o fuso configurado do painel.
- Sincronizar demais. Nem todo slicer deveria valer no painel inteiro; um filtro só da página "Detalhe" não precisa (e não deveria) recortar o "Resumo".
- Slicer de parâmetro (
field/measure) sem rótulo claro. Como eles trocam o que o visual mostra (não o que é filtrado), um rótulo ambíguo confunde o leitor sobre o que está mudando.
Estado atual (Preview)
Slicers, escopos, datas relativas e sincronização entre páginas são GA-candidato — cobertos por suíte determinística (presetRange, os 8 tipos de DASH_FILTER_TYPES, applyCrossFilter). O codec versionado do estado de filtros na URL (C03.2, usado por ?f=) também é GA-candidato na lógica de codificação/decodificação — mas a persistência completa por URL é Preview, porque faixa/hierarquia dependem de bookmark e não há autosave por usuário. Filtro pessoal por usuário (slicer que lembra a preferência de cada pessoa) é Roadmap — hoje, o que existe por usuário é RLS, não um slicer pessoal.
Nota
"Client-side sobre o snapshot" é a frase-chave desta aula: filtrar nunca dispara uma nova consulta cobrável no BigQuery — o custo já foi pago no refresh que gerou o snapshot.
| Necessidade | Tipo de slicer |
|---|---|
| Recortar por categoria | select |
| Recortar por intervalo de datas fixo | daterange |
| Período que anda sozinho ("últimos 30 dias") | daterange com preset relativo |
| Escolher uma opção só, visível como botões | buttons |
| Recortar por faixa numérica | range |
| Descer Região → UF → Cidade | hier |
| Simular um número ("e se o preço fosse X") | number |
| Trocar a dimensão/medida do visual | field / measure |
Faça você mesmo#
No workspace de treino Aurora Varejo (abra /dashboards no console):
- No painel "Comercial — Aurora", adicione um
daterangecom preset "últimos 30 dias", escopo dashboard. - Adicione um
selectdefiliais.regiaoe umselectdeprodutos.marca, escopo dashboard. - Marque o
daterangecomo sincronizado entre páginas ("Resumo" e "Detalhe"). - Confirme, na página "Detalhe", que o mesmo
daterangejá aparece aplicado. - Filtre por uma região e uma marca; confirme que todos os visuais do dashboard recortam.
- Copie a URL do painel filtrado, abra em outra aba e confirme que a seleção volta.
- Adicione um slicer
hierde Região → UF → Cidade (se houver hierarquia no modelo) e desça um nível.
Você terminou quando: o daterange sincronizado recorta as duas páginas, e a URL copiada restaura categoria e região numa aba nova.
Checagem rápida#
Três perguntas no final da aula, corrigidas no servidor. A aula só conta como concluída depois da checagem.
Documentação relacionada#
Capacidades ensinadas#
C03.2 — o selo exibido na aula é sempre o estado mais conservador entre as capacidades citadas; nada aqui é "GA".