Associe as quantezas iguais: um guia prático para cruzamento de dados por valor
O primeiro passo é entender o que você está realmente tentando fazer. Associe as quantidades iguais não é uma técnica mágica — é basicamente uma estratégia de matching onde dois conjuntos de registros são unidos quando compartilham o mesmo valor numérico, geralmente em transações financeiras, inventários ou movimentações contábeis. A lógica por trás disso é simples: se dois sistemas registraram a mesma movimentação com o mesmo valor, há uma chance razoável de que sejam a mesma coisa. Na prática, você pega duas tabelas, seleciona a coluna de valores (seja valor monetário, quantidade de peças, toneladas, o que for) e cruza. O problema é que ninguém nunca tem dados limpos. Eu passei semanas tentando resolver um cruzamento de conciliação bancária onde os valores batiam mas os registros não correspondiam porque uma parte tinha sido lançada com valor bruto e a outra com valor líquido de impostos. A solução foi normalizar ambos os lados antes de qualquer associação, subtraindo ou adicionando os impostos de forma consistente.
Como associe as quantidades iguais de verdade
Vamos direto ao método. O procedimento básico envolve cinco etapas, mas o segredo está nos detalhes que a maioria das pessoas ignora. 1. Padronize os formatos numéricos. Dois sistemas podem ter o mesmo valor mas representá-lo de formas diferentes. Um usa vírgula decimal, outro ponto. Um armazena em centavos (1000 = R$ 10,00), outro em reais (10,00). Antes de qualquer coisa, normalize tudo para a mesma unidade e formatação. Isso evita que valores idênticos sejam classificados como diferentes simplesmente por causa de uma diferença de representação.
2. Crie uma coluna chave de hash. Em vez de comparar diretamente os valores brutos, gere uma chave de associação que combine o valor normalizado com pelo menos mais um campo relevante (data, ID do fornecedor, descrição). Isso reduz drasticamente falsos positivos. Um valor de R$ 5.000,00 aparece 200 vezes no seu banco e 200 vezes no sistema interno — cru Zar apenas por valor gera 40.000 combinações potenciais. Com uma chave composta, você cai para algo na casa das dezenas. 3. Lidere com os valores únicos. Comece associando os registros cujos valores aparecem apenas uma vez em cada conjunto. Se R$ 1.247,83 só existe uma vez em cada base, as chances de ser um acerto verdadeiro são enormes. Depois avance para valores que aparecem duas vezes, três vezes, e assim por diante. Esse abordgem de fora para dentro economiza tempo de processamento porque elimina rapidamente os casos mais confiáveis antes de gastar recursos nos ambíguos.
4. Defina uma tolerância quando apropriado. Às vezes o matching exato não funciona porque há diferenças de poucos centavos causadas por arredondamento. Nesses casos, uma tolerância de ±0,01 ou ±0,02 é suficiente na maioria das situações financeiras. Mas tome cuidado: aumentar essa tolerância de forma indiscriminada gera associações erradas que podem passar despercebidas até a revisão final. Eu já vi conciliações onde uma tolerância de R$ 1,00 acabou vinculando pagamentos de fornecedores completamente diferentes que happenavam a ter valores próximos. 5. Valide manualmente uma amostra. Nunca confie cegamente no resultado. Tire uma amostra aleatória de pelo menos 5% dos pares associados e verifique linha por linha. Se a taxa de erro estiver acima de 2%, você precisa revisar seus critérios de matching.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Pegadinhas que ninguém conta
O maior erro que vejo pessoas cometendo é ignorar a bidirecionalidade da associação. Quando você associa a tabela A com a tabela B, o inverso nem sempre é verdadeiro no mesmo grau. Um valor pode estar presente em A sem correspondência em B, mas isso não significa automaticamente que é uma transação não conciliada — pode ser um erro de registro em A. Sempre verifique ambos os lados. Outro ponto que passa despercebido: valores duplicados intencionais. Em alguns contextos, é perfeitamente normal ter duas transações com o mesmo valor. Um pagamento parcelado, duas notas fiscais de igual montante no mesmo dia, reembolsos idênticos. Tratar todos como candidatos a matching é um erro. A menos que você tenha um campo identificador adicional (número da nota, número do documento, sequência do pedido), valores idênticos sozinhos não provam correspondência.
Uma situação real que enfrentei: estava conciliando extratos de uma operadora de cartão de crédito onde o cliente consolidava múltiplas compras em um único débito automático. O valor no extrato bancário era a soma de 47 transações menores. Tentar associe as quantidades iguais entre as linhas do cartão e a linha do débito resultava em zero matches. A solução foi criar uma etapa intermediária de agregação, agrupando as transações do cartão por data e lojista antes do cruzamento.
Quando essa abordagem simplesmente não funciona
Não adianta forçar. Se seus dados têm mais de 15% de duplicação de valores na base, o matching por quantidade sozinha vai gerar muitos falsos positivos. Nesse caso, você precisa de campos complementares — número do documento, CPF/CNPJ, data aproximada, descrição. E se ambos os conjuntos têm muitos valores repetidos e poucos campos discriminadores, o método falha. Nesses cenários, o melhor é abandonar o matching automático e usar abordagem manual ou contratar uma ferramenta de reconciliation com algoritmos de fuzzy matching. Uma alternativa viável quando o matching exato por quantidade não entrega resultados satisfatórios é o uso de algoritmos probabilísticos que calculam a similaridade entre registros considerando múltiplos campos simultaneamente. Ferramentas como o Python com bibliotecas como recordlinkage ou fasttext permitem esse tipo de abordagem com configuração razoavelmente simples.
O ponto principal é: associe as quantidades iguais como primeiro filtro, não como solução completa. Use-o para reduzir o volume de trabalho e depois aplique critérios mais refinados nos restos. Assim você economiza horas de análise manual e ainda mantém a precisão em níveis aceitáveis para auditoria.