Quantas pessoas temos?
Headcount no fim do período, por setor e gestor, evolução mês a mês e tempo médio de casa.
Página 1Modelo de portfólio · dados fictícios · João Victor Soares
Guia de montagem de um painel que transforma as rotinas do RH de uma filial — recrutamento, admissão, ponto e banco de horas, conferência para a folha, férias, afastamentos, desligamentos e atendimento — em indicadores para decisão.
Base_RH_Filial_Ficticia.xlsx — 7 tabelas, competências out/2025 a set/2026, retrato em 22/10/2026Medidas_DAX.txt — calendário, tabelas de apoio e medidas comentadasTema_RH_Portfolio.json — cores, fontes e grades do relatórioCada página responde perguntas que o RH de uma filial ouve toda semana — da gerência, do financeiro e dos próprios colaboradores.
Headcount no fim do período, por setor e gestor, evolução mês a mês e tempo médio de casa.
Página 1Desligamentos por tipo (pedido, sem justa causa, término de experiência, acordo, justa causa), turnover e turnover voluntário.
Página 1Absenteísmo % = (faltas + atestados + atrasos) ÷ horas previstas, por setor, gestor e mês.
Página 2Horas extras 50% e 100%, peso sobre as horas previstas e custo estimado (salário ÷ 220 × 1,5 ou × 2, sem encargos).
Página 2Férias vencidas, críticas (menos de 60 dias para o limite) e a programar, com lista nominal e dias até o limite concessivo.
Página 3Afastados hoje, dias pagos pela empresa × dias INSS, motivo do afastamento e estabilidade acidentária.
Página 3Tempo médio de fechamento, funil de candidatos, taxa de conversão e fonte de cada contratação.
Página 4Chamados por categoria, % dentro do SLA e tempo médio de resolução em dias úteis.
Página 4 e selecione Base_RH_Filial_Ficticia.xlsx. No Navegador, marque as 7 tabelas:
Cada aba tem uma Tabela do Excel com o mesmo nome. Marque o item com ícone de tabela (não o de planilha) e deixe a aba LEIA-ME de fora. Em seguida, clique em .
| Colunas | Tipo |
|---|---|
Matricula, MatriculaContratado | Número inteiro |
Todas as datas: DataAdmissao, DataDesligamento, UltimoASO, Competencia, VencimentoSaldo, InicioAquisitivo, FimAquisitivo, LimiteConcessivo, InicioGozo, DataInicio, DataFim, FimEstabilidade, DataAbertura, DataFechamento, DataResolucao | Data (não Data/Hora — senão as relações com o calendário falham) |
Salario | Número decimal fixo (moeda) |
Horas: HorasPrevistas, HorasFaltas, HorasAtestados, HorasAtrasos, HorasExtras50, HorasExtras100, HorasAdicionalNoturno, SaldoAnterior, Creditos, Debitos, SaldoFinal | Número decimal |
Contagens: DiasUteis, Dias, DiasEmpresa, DiasINSS, DiasGozo, Inscritos a Contratados, SLADiasUteis, DiasUteisResolucao | Número inteiro |
| Demais colunas (nomes, setor, situação, motivo…) | Texto |
Clique em . Em , desmarque Data/hora automática: o modelo usa a sua própria tabela de calendário.
e cole o bloco dCalendario do arquivo de medidas:
dCalendario =
VAR Datas =
SELECTCOLUMNS(
CALENDAR(DATE(2025, 1, 1), DATE(2026, 12, 31)),
"Data", [Date]
)
VAR ComColunas =
ADDCOLUMNS(
Datas,
"Ano", YEAR([Data]),
"Mês nº", MONTH([Data]),
"Mês", SWITCH(
MONTH([Data]),
1, "jan", 2, "fev", 3, "mar", 4, "abr", 5, "mai", 6, "jun",
7, "jul", 8, "ago", 9, "set", 10, "out", 11, "nov", 12, "dez"
),
"AnoMês", YEAR([Data]) * 100 + MONTH([Data]),
"Competência", DATE(YEAR([Data]), MONTH([Data]), 1)
)
RETURN
ADDCOLUMNS(
ComColunas,
"Mês/Ano", [Mês] & "/" & RIGHT(FORMAT([Ano], "0"), 2) // ex.: "out/25"
)
Data.Mês/Ano por AnoMês; Mês por Mês nº.dSetor (setores de colaboradores e vagas, para uma segmentação única) e dEtapaFunil (etapas do funil; classifique Etapa por Ordem).. Apague relações criadas automaticamente que não estejam na lista. Todas são de um para muitos, com filtro em direção única (do lado 1 para o lado muitos). Para as inativas, desmarque Tornar esta relação ativa.
| De (lado 1) | Para (lado muitos) | Cardinalidade | Direção do filtro | Ativa |
|---|---|---|---|---|
dColaboradores[Matricula] | fPonto[Matricula] | 1 : * | Única → | Sim |
dColaboradores[Matricula] | fBancoHoras[Matricula] | 1 : * | Única → | Sim |
dColaboradores[Matricula] | fFerias[Matricula] | 1 : * | Única → | Sim |
dColaboradores[Matricula] | fAfastamentos[Matricula] | 1 : * | Única → | Sim |
dSetor[Setor] | dColaboradores[Setor] | 1 : * | Única → | Sim |
dSetor[Setor] | fVagas[Setor] | 1 : * | Única → | Sim |
dCalendario[Data] | fPonto[Competencia] | 1 : * | Única → | Sim |
dCalendario[Data] | fBancoHoras[Competencia] | 1 : * | Única → | Sim |
dCalendario[Data] | fAfastamentos[DataInicio] | 1 : * | Única → | Sim |
dCalendario[Data] | fVagas[DataAbertura] | 1 : * | Única → | Sim |
dCalendario[Data] | fVagas[DataFechamento] | 1 : * | Única → | Não (inativa) |
dCalendario[Data] | fChamados[DataAbertura] | 1 : * | Única → | Sim |
dCalendario[Data] | fChamados[DataResolucao] | 1 : * | Única → | Não (inativa) |
dCalendario[Data] | fFerias[LimiteConcessivo] | 1 : * | Única → | Não (inativa) |
dColaboradores não se liga ao calendário? Se ligasse, haveria dois caminhos de filtro até fPonto (direto e via colaboradores). As medidas de quadro leem o período do calendário e comparam com DataAdmissao e DataDesligamento. As relações inativas são ligadas só dentro das medidas que precisam delas, com USERELATIONSHIP; a de férias é inativa porque os indicadores de férias são um retrato na data de referência.
› abra a galeria pela seta › › Tema_RH_Portfolio.json.
O tema define Segoe UI, títulos em 12 pt seminegrito na cor #18212B, linhas de grade claras (#E3E7EC), números dos cartões em #18212B e fundo de página cinza-claro com visuais brancos.
, nomeie a tabela como _Medidas e clique em . Com ela selecionada, use e cole um bloco do Medidas_DAX.txt por vez (do Nome = até o fim da expressão; os comentários podem ir junto). Ajuste o formato em conforme indicado em cada bloco e, ao final, exclua a coluna Coluna1 — a tabela passa a ser só de medidas.
| Tema | Medidas |
|---|---|
| Quadro | Headcount, Headcount Médio, Admissões, Desligamentos, Desligamentos Voluntários, Turnover %, Turnover Voluntário %, Tempo Médio de Casa (anos), Prazo para Pagamento da Rescisão |
| Ponto | Horas Previstas, Horas de Faltas / Atestados / Atrasos, Horas de Ausência, Absenteísmo %, Horas Extras 50% / 100% / Totais, HE % sobre Horas Previstas, Custo Estimado de HE (sem encargos) |
| Banco de horas | Saldo Banco de Horas (último mês do contexto), Saldo a Vencer em 30 dias |
| Férias | Férias Vencidas, Férias Críticas, Férias a Programar, % Férias em Dia, Dias até o Limite Concessivo, Férias com Limite no Período |
| Afastamentos | Afastados Hoje, Dias de Afastamento, Dias pagos pela Empresa, Dias INSS, Com Estabilidade Acidentária |
| Recrutamento | Vagas Abertas, Vagas Fechadas, Tempo Médio de Fechamento (dias), Taxa de Conversão, Vagas por Fonte, % Vagas por Fonte, Candidatos na Etapa |
| Atendimento | Chamados, % Dentro do SLA, Tempo Médio de Resolução (dias úteis), Chamados Resolvidos |
No painel , arraste dCalendario[Competência] e use a filtragem avançada: é posterior ou igual a 01/10/2025 e é anterior ou igual a 01/09/2026. A base não traz quem saiu antes de outubro de 2025; sem esse filtro, os meses anteriores mostrariam um quadro incompleto.
Cartões de “retrato” (Afastados Hoje, férias, saldo a vencer) olham a data de referência — 22/10/2026 na base fictícia, TODAY() em produção. Os demais seguem o período filtrado.
Tela 16:9. A ordem de leitura é a mesma em todas as páginas: segmentações no topo, cartões com os números-chave, tendência no meio e listas de ação embaixo — quem abre o painel vê primeiro quanto, depois desde quando e por fim quem.
Esquema ilustrativo. No celular, os blocos aparecem empilhados.
| Visual | Campos | Medida(s) |
|---|---|---|
| Segmentação de dados (botões) | dSetor[Setor] | — |
| Segmentação de dados (lista suspensa) | dCalendario[Mês/Ano] ou dCalendario[Competência] no estilo “Entre” | — |
| Cartão | — | Headcount |
| Cartão | Dica de ferramenta: Turnover Voluntário % | Turnover % |
| Cartão | — | Absenteísmo % |
| Cartão | — | Vagas Abertas |
| Gráfico de linhas | Eixo X: dCalendario[Mês/Ano] | Headcount |
| Gráfico de colunas agrupadas | Eixo X: dCalendario[Mês/Ano] | Admissões, Desligamentos (mesma unidade: pessoas) |
| Gráfico de barras agrupadas | Eixo Y: dColaboradores[TipoDesligamento] | Desligamentos |
| Tabela | dColaboradores[Nome], [Setor], [TipoDesligamento], [DataDesligamento]; filtro do visual: Desligamentos é 1 | Prazo para Pagamento da Rescisão |
| Visual | Campos | Medida(s) |
|---|---|---|
| Segmentações | dSetor[Setor], dCalendario[Mês/Ano] | — |
| Cartões (6) | — | Absenteísmo %, Horas Extras Totais, HE % sobre Horas Previstas, Custo Estimado de HE (sem encargos), Saldo Banco de Horas, Saldo a Vencer em 30 dias |
| Gráfico de colunas empilhadas | Eixo X: dCalendario[Mês/Ano] | Horas de Faltas, Horas de Atestados, Horas de Atrasos |
| Gráfico de barras agrupadas | Eixo Y: dSetor[Setor]; cor das barras por Cor Absenteísmo | Absenteísmo % |
| Gráfico de colunas empilhadas | Eixo X: dCalendario[Mês/Ano] | Horas Extras 50%, Horas Extras 100% |
| Matriz | Linhas: dColaboradores[Gestor] › dColaboradores[Nome]; barras de dados no custo | Horas Extras Totais, Custo Estimado de HE (sem encargos), Saldo Banco de Horas |
O custo de HE é uma estimativa (salário ÷ 220 × 1,5 para HE 50% e × 2 para HE 100%), sem encargos e reflexos — deixe isso escrito no título do cartão.
| Visual | Campos | Medida(s) |
|---|---|---|
| Segmentações | dSetor[Setor], dColaboradores[Gestor] | — |
| Cartões (6) | — | Férias Vencidas, Férias Críticas, Férias a Programar, % Férias em Dia, Afastados Hoje, Dias INSS |
| Tabela de férias | dColaboradores[Nome], [Gestor], fFerias[FimAquisitivo], [LimiteConcessivo], [Situacao]; filtro do visual: Situacao = Vencida, Crítica (< 60 dias), A programar; ordenar por dias até o limite (crescente) | Dias até o Limite Concessivo |
| Gráfico de colunas empilhadas | Eixo X: dCalendario[Mês/Ano] | Dias pagos pela Empresa, Dias INSS |
| Tabela de afastamentos | dColaboradores[Nome], fAfastamentos[Motivo], [DataInicio], [DataFim], [Beneficio], [ExameRetorno]; filtro do visual: Afastados Hoje é 1 | Afastados Hoje |
| Gráfico de barras agrupadas | Eixo Y: fAfastamentos[Motivo] | Dias de Afastamento |
Situacao › › Formatar estilo: Valor do campo › medida Cor Situação Férias (vencida em vermelho #D9452B, crítica em âmbar #C98A0B).Dias até o Limite Concessivo › por regras: menor que 0 em vermelho; de 0 a 59 em âmbar.Opcional: um gráfico de colunas com Férias com Limite no Período por Mês/Ano vira a agenda de programação dos próximos meses (para enxergar limites de 2027 em diante, amplie a data final da dCalendario).
| Visual | Campos | Medida(s) |
|---|---|---|
| Segmentações | dSetor[Setor] (filtra vagas; chamados não têm setor), dCalendario[Mês/Ano] | — |
| Cartões (6) | — | Vagas Abertas, Tempo Médio de Fechamento (dias), Taxa de Conversão, Chamados, % Dentro do SLA, Tempo Médio de Resolução (dias úteis) |
| Funil | Categoria: dEtapaFunil[Etapa] | Candidatos na Etapa |
| Gráfico de barras agrupadas | Eixo Y: dSetor[Setor] | Tempo Médio de Fechamento (dias) |
| Gráfico de barras agrupadas | Eixo Y: fVagas[Fonte]; dica de ferramenta: % Vagas por Fonte | Vagas por Fonte |
| Gráfico de barras agrupadas | Eixo Y: fChamados[Categoria]; dica de ferramenta: % Dentro do SLA | Chamados |
| Gráfico de linhas | Eixo X: dCalendario[Mês/Ano]; em 90% (meta ilustrativa) | % Dentro do SLA |
Nada de eixo duplo. Pessoas e percentuais não dividem o mesmo gráfico: headcount fica em um visual, turnover em outro (ou na dica de ferramenta). Quando duas medidas aparecem juntas, como admissões × desligamentos ou dias empresa × dias INSS, elas têm a mesma unidade. Uma meta entra como linha constante, não como segunda escala.
As cores seguem o tema: bom #1E8A5A, atenção #C98A0B e crítico #D9452B. As medidas Cor Situação Férias, Cor % SLA e Cor Absenteísmo devolvem o código da cor e entram em . A regra fica em um lugar só e vale para todos os visuais. Os limites de absenteísmo e SLA do arquivo são ilustrativos: ajuste-os às metas da empresa.
1. Crie uma tabela de mapeamento dAcessoGestor, sem relação com as demais e oculta no relatório:
| Gestor | Setor | |
|---|---|---|
| ricardo.m@example.com | Ricardo M. | Comercial |
| patricia.l@example.com | Patrícia L. | Trade Marketing |
| anderson.k@example.com | Anderson K. | Logística |
| fernanda.r@example.com | Fernanda R. | Administrativo |
2. “Gestor”, com estes filtros:
// Tabela dColaboradores — o filtro desce para fPonto, fBancoHoras,
// fFerias e fAfastamentos pela Matricula
[Gestor] IN
CALCULATETABLE(
VALUES(dAcessoGestor[Gestor]),
dAcessoGestor[Email] = USERPRINCIPALNAME()
)
// Tabela fVagas — vagas do setor do gestor
[Setor] IN
CALCULATETABLE(
VALUES(dAcessoGestor[Setor]),
dAcessoGestor[Email] = USERPRINCIPALNAME()
)
// Tabela dAcessoGestor — cada um enxerga só a própria linha
[Email] = USERPRINCIPALNAME()
3. Crie também a função “RH”, sem filtros. Teste em e, depois de publicar, associe os e-mails às funções na segurança do modelo semântico, no serviço do Power BI.
Data de Referência por TODAY(). No serviço, TODAY() segue o horário UTC; o arquivo de medidas traz a versão ajustada para Brasília._Medidas, separadas por pastas de exibição (Quadro, Ponto, Banco de horas, Férias, Afastamentos, Recrutamento, Atendimento, Formatação).Matricula nas tabelas fato, AnoMês, Mês nº, Ordem) para que o painel de campos mostre só o que se usa nos visuais.Antes de mostrar o painel, três checagens que não dependem de valores fixos:
Headcount deve ser igual ao número de linhas com Status = "Ativo" em dColaboradores.Vagas Abertas em out/2026 deve ser igual ao número de vagas com Status diferente de “Fechada”.