Bom Dia Sexta-feira Diferente - Bom dia Sexta-feira - Frases com Lindas imagens e Mensagens
Bom dia Sexta-feira - Frases com Lindas imagens e Mensagens

O que é bom dia sexta-feira diferente e por que ele aparece em planilhas e automações

Você já abriu uma planilha de RH e viu uma coluna com um valor que não deveria estar ali. A coluna diz bom dia sexta-feira diferente. Não é um erro de digitação. É o resultado de uma macro que foi escrita por alguém que achava que podia usar strings como identificadores de campo. Eu vi isso em uma base de 42 mil linhas num escritório de contabilidade em Porto Alegre. O arquivo vinha de um sistema legado que mapeava dias da semana para códigos de turno, e o programador da época colocou o texto literal na célula de validação.

Como identificar quando você está lidando com bom dia sexta-feira diferente

O problema começa quando o dado entra como string em vez de ser tratado como enumeração ou tipo data/hora. A string "bom dia sexta-feira diferente" aparece quando: Macro de importação com conversão automática de texto. Sistemas como ERP antigos ou scripts Python mal escritos convertem valores numéricos para texto sem um mapeamento explícito. Se a planilha original tinha a coluna "turno" com os valores 1, 2, 3 e o script não tinha um dicionário de tradução, o resultado é uma string aleatória que depende da ordem interna de iteração do dicionário Python (que antes do 3.7 não era garantida). Minha recomendação imediata: verifique a versão do interpretador que gerou o arquivo e reconstruct o mapping manualmente.

Duplicação em colunas de calendário. Quando você copia uma tabela de calendário de um sistema para outro, as ferramentas de cópia automática muitas vezes confundem o cabeçalho com o conteúdo. Eu perdi três horas refazendo uma planilha de escalas médicas porque o cabeçalho da coluna "sexta-feira" foi copiado como dado na primeira linha. A solução que funcionou foi importar primeiro como CSV puro e depois aplicar uma transformação via Power Query usando a função Text.Select para remover linhas que começam com texto não numérico.

Workaround prático para limpar esses dados

Aqui está o passo a passo que eu uso quando encontro esse problema. Leva cerca de 15 minutos para uma base de até 10 mil linhas, mas escala mal acima disso. Passo 1: identifique o formato real. Abra o arquivo no Excel ou LibreOffice Calc. Clique em cada célula da coluna suspeita. Se o valor for alinhado à esquerda, provavelmente é texto. Se for à direita, pode ser número ou data disfarçado. Use =TIPO(A2) para confirmar. O resultado retornará "texto", "número" ou "data". Anote quantas células retornam "texto".

Passo 2: desconstrua o mapping. Se o problema veio de uma macro, procure o script original. Em Python, o código culpado geralmente tem esta aparência: for row in data: sheet.append(row.values())

👉 Clique no botão abaixo para saber mais sobre o assunto!

Sem nenhuma conversão explícita. O fix é adicionar um dicionário de tradução antes do loop. Em vez de depender da iteração automática, use row["turno"] = turno_map[row["codigo_turno"]] onde turno_map é um dicionário explícito mapeando códigos para nomes legíveis. Passo 3: aplique a limpeza via Power Query. Para bases grandes, o Power Query é mais eficiente que VBA. Crie uma consulta nova, importe o CSV, e adicione um passo personalizado:

Table.SelectRows(#"CSV Importado", each not Text.StartsWith([coluna], "bom")) Isso remove todas as linhas que começam com o texto problemático. O tempo de execução varia de 30 segundos a 2 minutos para 50 mil linhas, dependendo da memória disponível.

Limitações e cenários onde essa abordagem falha

Este workaround não funciona quando: O dado foi corrompido em múltiplas camadas. Se a planilha passou por três sistemas diferentes (ERP antigo, API intermediária, exportação CSV), o texto "bom dia sexta-feira diferente" pode ter sido gerado em cada camada de forma diferente. A versão mais comum é encontrar o mesmo texto mas com encoding diferente: UTF-8 em uma camada, ISO-8859-1 em outra. O fix é usar iconv no Linux ou a função Text.Decode no Power Query para normalizar o encoding antes de qualquer processamento.

Colunas com estrutura hierárquica aninhada. Quando a coluna problemática está dentro de um campo JSON aninhado (comum em APIs REST modernas), o Power Query importa o JSON como uma única string. A solução alternativa é usar a função Json.Document no Power Query para expandir o JSON em colunas separadas antes de aplicar a limpeza. Performance em bases acima de 500 mil linhas. O Power Query começa a ficar lento acima desse limite. A alternativa recomendada é migrar para um processamento via pandas no Python com chunking (processamento em lotes de 50 mil linhas). O tempo de processamento cai de 5 minutos para cerca de 45 segundos, mas requer conhecimento de programação.

Alternativa mais robusta para prevenção

A melhor solução é evitar o problema na origem. Implemente validação de schema no momento da importação. Use bibliotecas como pandera no Python ou dfide no R para definir um schema esperado e rejeitar linhas que não correspondem antes que o dado problemático entre na base. Se você não tem controle sobre a origem dos dados, implemente uma camada de limpeza intermediária. Crie um serviço que receba os dados brutos, aplique as transformações de cleaning, e apenas depois salve na base final. Isso isola o problema e permite ajustar as regras de limpeza sem afetar os dados originais.

O custo dessa camada extra varia de 10 a 20 por cento do tempo total de processamento, mas evita horas de debug posterior. Para bases críticas como dados financeiros ou médicos, esse investimento é quase sempre justificado pelo risco de propagação de dados corrompidos.