Todos os postsKoda DigitalKODA · BLOG
Excel & SQL

Solução profissional em Excel: painel de contas a receber e inadimplência (passo a passo, com todas as fórmulas)

· 18 min de leitura
Solução profissional em Excel: painel de contas a receber e inadimplência (passo a passo, com todas as fórmulas)

Do arquivo bruto do ERP ao painel que a diretoria lê em 30 segundos: Power Query, Tabela Dinâmica, PROCX, SOMASES, SES, DIAS, formatação condicional por aging e uma macro de atualização. Cada comando escrito na íntegra, na ordem em que deve ser digitado, com os benefícios de cada etapa.

O problema real: a empresa vende, fatura e não sabe quem deve

Em quase toda pequena e média empresa existe um relatório de contas a receber. O que quase nunca existe é uma leitura confiável dele: quanto está vencido, há quantos dias, de quais clientes, e qual é o risco concentrado nos cinco maiores devedores.

O que costuma acontecer é o financeiro exportar um arquivo do ERP, colar em uma planilha nova todo mês, pintar de vermelho as linhas atrasadas na mão e mandar por e-mail. O número muda a cada exportação, ninguém consegue auditar e a cobrança acontece por memória, não por processo.

A solução descrita abaixo é a que implantamos em clientes reais. Ela usa apenas Excel (versão Microsoft 365 ou Excel 2021) e leva cerca de duas horas para ser montada na primeira vez. Depois disso, atualizar o painel inteiro custa um clique.

Etapa 1 — Padronizar a base bruta do ERP

Crie uma pasta fixa no computador ou no OneDrive, por exemplo C:\Financeiro\Base, e salve ali sempre com o mesmo nome o arquivo exportado do ERP: titulos.csv. O nome fixo é o que permite atualizar tudo depois com um clique.

A base precisa de sete colunas, exatamente com estes títulos na primeira linha:

  • NumeroTitulo — identificador do documento (nota, duplicata, boleto)
  • CodigoCliente — código do cliente no ERP
  • DataEmissao — data de emissão
  • DataVencimento — data de vencimento
  • ValorOriginal — valor do título
  • ValorRecebido — valor já baixado
  • Vendedor — responsável comercial

Uma segunda base, clientes.xlsx, traz CodigoCliente, RazaoSocial, Regiao e LimiteCredito. Ela é o cadastro, não muda todo dia.

Etapa 2 — Importar e limpar com Power Query (sem digitar nada duas vezes)

Aqui está o ponto que separa uma planilha amadora de uma solução profissional: a limpeza não é feita à mão, é gravada como um passo que se repete sozinho.

No Excel, siga exatamente esta sequência de comandos:

  1. Dados → Obter Dados → De Arquivo → De Texto/CSV → selecione titulos.csv → botão Transformar Dados (nunca "Carregar" direto).
  2. No Editor do Power Query, clique com o botão direito na coluna DataVencimento → Alterar Tipo → Usando Localidade → Data → Português (Brasil). Isso elimina o clássico erro de dia/mês invertido.
  3. Selecione ValorOriginal e ValorRecebido → Alterar Tipo → Número Decimal.
  4. Página Inicial → Remover Linhas → Remover Linhas em Branco e depois Remover Duplicatas com a coluna NumeroTitulo selecionada.
  5. Adicionar Coluna → Coluna Personalizada, nome Saldo, fórmula:
    = [ValorOriginal] - [ValorRecebido]
  6. Página Inicial → Manter Linhas → Filtros de Número → Maior que → 0 na coluna Saldo (títulos quitados saem da análise).
  7. Repita a importação para clientes.xlsx e depois use Página Inicial → Mesclar Consultas: títulos à esquerda, clientes à direita, chave CodigoCliente, tipo de junção Externa Esquerda. Expanda apenas RazaoSocial, Regiao e LimiteCredito.
  8. Página Inicial → Fechar e Carregar Em… → Somente Criar Conexão + marque Adicionar ao Modelo de Dados.

Benefício: a partir de agora, trocar o arquivo titulos.csv e clicar em Dados → Atualizar Tudo refaz limpeza, junção e cálculo em segundos, sempre da mesma forma. Zero PROCV manual, zero risco de arrastar fórmula errado.

Etapa 3 — As colunas de inteligência (as fórmulas que fazem o diagnóstico)

Carregue também uma cópia da consulta em uma planilha chamada Base, como Tabela (o Power Query já entrega em formato de Tabela). Renomeie a tabela em Design da Tabela → Nome da Tabela para tblTitulos. Trabalhar com nome de tabela, e não com A1:H5000, é o que impede a planilha de quebrar quando a base cresce.

Agora adicione as colunas calculadas. Digite a fórmula na primeira linha da coluna: em uma Tabela, o Excel replica automaticamente para todas as linhas.

Coluna "DiasAtraso"
=SE([@DataVencimento]>=HOJE(); 0; DIAS(HOJE(); [@DataVencimento]))

Coluna "Situacao"
=SE([@DiasAtraso]=0; "Em dia"; "Vencido")

Coluna "Faixa" (aging)
=SES([@DiasAtraso]=0;  "A vencer";
     [@DiasAtraso]<=30; "1 a 30 dias";
     [@DiasAtraso]<=60; "31 a 60 dias";
     [@DiasAtraso]<=90; "61 a 90 dias";
     VERDADEIRO;        "Acima de 90 dias")

Coluna "Cliente" (quando o cadastro está em outra tabela)
=PROCX([@CodigoCliente]; tblClientes[CodigoCliente]; tblClientes[RazaoSocial]; "Cadastro ausente"; 0)

Coluna "ProvisaoPerda" (PCLD simplificada por faixa)
=[@Saldo] * SES([@DiasAtraso]<=60; 0;
                 [@DiasAtraso]<=90; 0,25;
                 [@DiasAtraso]<=180; 0,5;
                 VERDADEIRO; 1)

Três detalhes profissionais: PROCX substitui o PROCV porque aceita valor padrão quando não encontra e não depende da posição da coluna; SES elimina o aninhamento ilegível de vários SE; e HOJE() faz o aging se recalcular sozinho todo dia que a planilha abre.

Etapa 4 — Os indicadores do topo do painel

Crie uma planilha chamada Painel. No topo dela ficam os números que a diretoria olha primeiro. Todos usam funções de agregação condicional sobre a tabela — nada é digitado à mão.

Carteira total em aberto
=SOMA(tblTitulos[Saldo])

Total vencido
=SOMASES(tblTitulos[Saldo]; tblTitulos[Situacao]; "Vencido")

Percentual de inadimplência
=SEERRO(SOMASES(tblTitulos[Saldo]; tblTitulos[Situacao]; "Vencido")
        / SOMA(tblTitulos[Saldo]); 0)

Quantidade de títulos vencidos
=CONT.SES(tblTitulos[Situacao]; "Vencido")

Vencido acima de 90 dias
=SOMASES(tblTitulos[Saldo]; tblTitulos[Faixa]; "Acima de 90 dias")

Prazo médio de atraso ponderado pelo valor
=SEERRO(SOMARPRODUTO(tblTitulos[DiasAtraso]; tblTitulos[Saldo])
        / SOMA(tblTitulos[Saldo]); 0)

Provisão total para perdas
=SOMA(tblTitulos[ProvisaoPerda])

Maior devedor da carteira
=ÍNDICE(tblTitulos[Cliente];
        CORRESP(MÁXIMO(SOMASES(tblTitulos[Saldo]; tblTitulos[Cliente]; tblTitulos[Cliente]));
                SOMASES(tblTitulos[Saldo]; tblTitulos[Cliente]; tblTitulos[Cliente]); 0))

Top 5 clientes por valor em aberto (Microsoft 365)
=CLASSIFICAR(ÚNICO(tblTitulos[Cliente]); 1; 1)   ' lista de clientes
=SOMASES(tblTitulos[Saldo]; tblTitulos[Cliente]; H10#)  ' valor de cada um

Formate o percentual em Página Inicial → Porcentagem com uma casa decimal, e os valores em Contábil sem casas decimais. Legibilidade também é parte do resultado.

Etapa 5 — Aging visual com formatação condicional

O olho precisa encontrar o problema antes da leitura. A regra abaixo pinta a linha inteira do título conforme o atraso, e não apenas a célula.

  1. Selecione todas as linhas de dados da tabela (clique no canto superior esquerdo da tabela, duas vezes).
  2. Página Inicial → Formatação Condicional → Nova Regra → Usar uma fórmula que determine as células a serem formatadas.
  3. Fórmula para atraso crítico:
    =$K2>90 (onde K é a coluna DiasAtraso) → Formatar → Preenchimento vermelho claro.
  4. Nova regra para atenção:
    =E($K2>0;$K2<=90) → preenchimento âmbar.
  5. Nova regra para limite de crédito estourado:
    =SOMASES(tblTitulos[Saldo];tblTitulos[Cliente];$D2)>$N2 → borda vermelha e negrito.
  6. Em Gerenciar Regras, marque Parar se Verdadeiro na regra crítica para evitar sobreposição.

Benefício: o analista deixa de perder tempo procurando o que está errado. Ele abre a planilha e o problema já está apontando para ele.

Etapa 6 — Tabela Dinâmica, segmentação e gráfico

A tabela dinâmica é o que transforma cinco mil linhas em uma resposta de uma linha.

  1. Inserir → Tabela Dinâmica → De Tabela/Intervalo → tblTitulos → destino: planilha Painel, célula A20.
  2. Arraste Regiao para Linhas, Faixa para Colunas e Saldo para Valores (resumo por Soma).
  3. Clique com o botão direito no campo de valores → Mostrar Valores Como → % do Total da Linha para ler a qualidade da carteira de cada região.
  4. Análise de Tabela Dinâmica → Inserir Segmentação de Dados → marque Vendedor e Regiao.
  5. Análise de Tabela Dinâmica → Inserir Linha do Tempo → DataVencimento, agrupada por mês.
  6. Inserir → Gráfico de Colunas Empilhadas a partir da dinâmica; nas Conexões de Relatório da segmentação, marque todas as dinâmicas para que um clique filtre o painel inteiro.

Etapa 7 — Régua de cobrança automática (texto pronto para enviar)

O painel só gera dinheiro quando vira ação. Esta fórmula monta a mensagem de cobrança já personalizada, pronta para ser copiada para o e-mail ou o WhatsApp do financeiro.

Coluna "AcaoCobranca"
=SES([@DiasAtraso]=0;  "Nenhuma";
     [@DiasAtraso]<=7;  "Lembrete cordial";
     [@DiasAtraso]<=30; "Contato telefônico";
     [@DiasAtraso]<=60; "Notificação formal";
     VERDADEIRO;        "Negativação / jurídico")

Coluna "Mensagem"
=CONCAT("Olá, "; [@Cliente]; ". Consta em aberto o título ";
        [@NumeroTitulo]; " no valor de ";
        TEXTO([@Saldo]; "R$ #.##0,00"); ", vencido em ";
        TEXTO([@DataVencimento]; "dd/mm/aaaa"); " (";
        [@DiasAtraso]; " dias). Podemos regularizar hoje?")

Use Dados → Validação de Dados → Lista na coluna de status de negociação (Aguardando, Prometido, Renegociado, Quitado) para padronizar o retorno do time — texto livre destrói qualquer relatório.

Etapa 8 — Macro de atualização em um clique

Salve o arquivo como Pasta de Trabalho Habilitada para Macro (.xlsm). Pressione ALT+F11, use Inserir → Módulo e cole o código abaixo. Depois volte ao painel, insira uma forma (Inserir → Formas), clique com o botão direito nela e escolha Atribuir Macro → AtualizarPainel.

Sub AtualizarPainel()
    Dim pt As PivotTable
    Dim ws As Worksheet

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    ' 1) Atualiza as consultas do Power Query
    ThisWorkbook.RefreshAll
    DoEvents

    ' 2) Recalcula tudo e atualiza as tabelas dinâmicas
    Application.CalculateFullRebuild
    For Each ws In ThisWorkbook.Worksheets
        For Each pt In ws.PivotTables
            pt.RefreshTable
        Next pt
    Next ws

    ' 3) Carimba data e hora da atualização
    ThisWorkbook.Sheets("Painel").Range("B2").Value = _
        "Atualizado em " & Format(Now, "dd/mm/yyyy hh:mm")

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

    MsgBox "Painel atualizado com sucesso.", vbInformation
End Sub

Proteja as planilhas de cálculo em Revisão → Proteger Planilha, deixando desbloqueadas apenas as células de entrada. Isso evita a causa número um de erro em planilhas corporativas: alguém digitar um número por cima de uma fórmula.

Os benefícios: o que muda na prática

Não se trata de deixar a planilha bonita. Trata-se de mudar como a empresa decide.

  • Tempo: a rotina mensal de montar o relatório (de 6 a 8 horas na média dos nossos clientes) cai para menos de 5 minutos, porque virou um botão.
  • Confiabilidade: a limpeza é sempre a mesma. O número da segunda-feira é o mesmo da sexta-feira, e é auditável passo a passo no Power Query.
  • Caixa: a régua de cobrança por faixa de atraso antecipa o contato. Em carteiras de PMEs, agir na faixa de 1 a 30 dias costuma recuperar a maior parte do que viraria perda em 90 dias.
  • Risco: a provisão por faixa mostra a perda provável antes dela acontecer, e o cruzamento com limite de crédito bloqueia venda nova para quem já deve.
  • Gestão comercial: a dinâmica por vendedor e região revela quem vende bem e recebe mal — informação que o relatório de faturamento nunca mostra.
  • Escalabilidade: quando a base passar de algumas centenas de milhares de linhas, a mesma lógica migra para SQL sem refazer nada: as regras já estão escritas e documentadas.

Quer montar essa solução do zero, com acompanhamento?

Todas as técnicas usadas aqui — Tabelas, PROCX, SOMASES, SES, formatação condicional, validação, Tabela Dinâmica, Power Query, Power Pivot, macros e a ponte com Power BI — são ensinadas passo a passo no Pacote Excel Corporativo da Koda Digital, com planilhas prontas, exercícios interativos e projeto final de MRP.

Se a sua base já cresceu além do Excel, o caminho natural é o SQL: nosso curso de SQL para analistas ensina a escrever as mesmas regras direto no banco de dados.

Referências e ferramentas citadas

Links oficiais das empresas e serviços mencionados neste artigo. Alguns são programas de afiliados/parceiros — usar nossos links ajuda a manter o blog gratuito, sem custo extra para você.

Quer aplicar isso na sua empresa?

Fale com a Koda Digital e receba um plano sob medida.

Falar no WhatsApp
Fale Conosco Pelo Whatsapp