Você cria uma coluna calculada em uma lista do SharePoint que deve mostrar uma data futura, passada ou uma diferença entre datas. Em vez disso, a coluna exibe uma data com diferença de exatamente um dia ou mostra um ano inesperado. Esse problema quase sempre ocorre porque o SharePoint interpreta a fórmula de data de forma diferente do esperado, geralmente devido ao deslocamento de fuso horário ou à forma como o SharePoint armazena datas. Este artigo explica a causa raiz de cálculos de data errados em colunas calculadas do SharePoint e fornece a correção exata da fórmula.
Principais Conclusões: Corrigindo Datas Erradas em Colunas Calculadas
- Função DateValue e datas em texto: Sempre envolva uma string de data como “1/1/2025” em DateValue para evitar interpretação incorreta do ano.
- Função DATEDIF para diferenças de data: Use DATEDIF para calcular corretamente o número de dias, meses ou anos entre duas datas.
- Tratamento de deslocamento de fuso horário: Adicione ou subtraia 0,5 (12 horas) para corrigir o deslocamento interno de armazenamento de data do SharePoint.
Por que as Colunas Calculadas do SharePoint Retornam a Data Errada
O SharePoint armazena datas internamente em Tempo Universal Coordenado (UTC). Quando você digita uma data diretamente em uma fórmula, o SharePoint pode interpretar a data como uma string de texto e convertê-la usando as configurações regionais do servidor. Isso pode fazer com que a data se desloque um dia para frente ou para trás. Além disso, ao usar aritmética básica como [Data Final] + 1, o SharePoint trata a data como um número serial, mas o resultado pode ser afetado pelo deslocamento de fuso horário.
Outra causa comum é usar um literal de data sem a função DateValue. Por exemplo, escrever "1/1/2025" diretamente em uma fórmula não garante que o SharePoint a trate como data. Em vez disso, o SharePoint pode interpretá-la como texto, gerando um erro #VALOR! ou uma data errada.
O Problema do Deslocamento de Fuso Horário
A coluna de data do SharePoint armazena a data e hora em UTC. Quando você calcula uma diferença de data ou adiciona dias, a parte da hora da data pode fazer com que o resultado seja deslocado em um dia. Por exemplo, se a data armazenada for meia-noite UTC (00:00), mas seu fuso horário local for UTC+1, o SharePoint pode exibir a data como o dia anterior. A correção é remover a parte da hora da data usando a função INT ou ajustar com um deslocamento de 0,5.
Interpretação Incorreta do Ano com Anos de Dois Dígitos
Se você inserir uma data com ano de dois dígitos, como "1/1/25", o SharePoint pode interpretar o ano como 1925 em vez de 2025. Isso acontece porque o SharePoint usa um ano de corte configurável (padrão é 2029). Datas com anos de dois dígitos abaixo de 30 são assumidas como sendo dos anos 2000, mas datas com anos de dois dígitos 30 ou acima são assumidas como sendo dos anos 1900. Isso pode fazer com que colunas calculadas retornem uma data no século errado.
Passos para Corrigir Cálculos de Data Errados no SharePoint
Siga estes passos para corrigir a fórmula da coluna calculada e garantir que as datas estejam precisas.
- Abra a lista e edite a coluna calculada
Vá para a lista do SharePoint que contém a coluna calculada. Clique no ícone de engrenagem e selecione Configurações da lista. Em Colunas, clique no nome da coluna calculada que retorna a data errada. - Verifique a fórmula quanto a literais de data
Se sua fórmula contiver uma data fixa como “1/1/2025”, substitua-a por DateValue(“1/1/2025”). Isso garante que o SharePoint trate o texto como data. Por exemplo, altere= [Data Início] + "1/1/2025"para= [Data Início] + DateValue("1/1/2025"). - Use a função DATE para datas fixas
Se precisar de uma data específica, use a função DATE com três argumentos: ano, mês, dia. Por exemplo,= DATE(2025, 1, 1)retorna 1 de janeiro de 2025. Isso evita completamente problemas de interpretação de texto. - Corrija o deslocamento de fuso horário removendo a hora
Se a data estiver com diferença de um dia, remova a parte da hora envolvendo a referência de data com INT. Por exemplo, altere= [Data Vencimento] + 7para= INT([Data Vencimento]) + 7. Isso remove o componente de hora e adiciona exatamente 7 dias. - Corrija o ano de dois dígitos na fórmula
Se precisar usar um ano de dois dígitos, sempre use a função DATE com ano de quatro dígitos. Por exemplo,= DATE(2025, 1, 1)em vez de= DateValue("1/1/25"). Isso evita o problema de corte de século. - Use DATEDIF para diferenças de data
Para calcular o número de dias entre duas datas, use DATEDIF. Por exemplo,= DATEDIF([Data Início], [Data Final], "d")retorna o número de dias. Essa função lida corretamente com os números seriais de data e evita problemas de deslocamento de fuso horário. - Teste a fórmula com uma linha de exemplo
Após atualizar a fórmula, clique em OK para salvar a coluna. Adicione um novo item à lista ou edite um existente para verificar se a coluna calculada exibe a data correta. Verifique casos extremos como datas próximas à meia-noite ou limites de mês.
Se a Coluna Calculada Ainda Mostrar a Data Errada
A fórmula retorna um erro #VALOR!
Esse erro geralmente significa que o SharePoint não consegue interpretar a string de data. Substitua qualquer texto de data fixa pela função DATE ou DateValue. Além disso, certifique-se de que o formato de data usado na fórmula corresponda às configurações regionais do servidor. Por exemplo, se o servidor usar dd/mm/aaaa, então DateValue(“1/2/2025”) retorna 1 de fevereiro, não 2 de janeiro.
A data está com diferença de exatamente um dia em um cálculo de diferença de data
Isso acontece quando a parte da hora de uma data é posterior à parte da hora da outra data. Por exemplo, se [Data Início] for 1/1/2025 08:00 e [Data Final] for 2/1/2025 07:00, a diferença em dias é menor que 24 horas. Use a função DATEDIF com “d” para obter a diferença de dias do calendário, que ignora a parte da hora. Alternativamente, use = INT([Data Final]) - INT([Data Início]) para remover a hora de ambas as datas.
A coluna calculada mostra uma data no ano 1899 ou 1900
Isso ocorre quando a fórmula retorna um número que não é um número serial de data válido. O SharePoint trata o número 1 como 1 de janeiro de 1900. Se sua fórmula resultar em um número pequeno, você pode ver uma data em 1900. Verifique se você está adicionando dias a uma coluna de data, não a um número. Por exemplo, = [Data Início] + 7 está correto, mas = 7 + [Data Início] também está. No entanto, = [Data Início] + "7" trata “7” como texto e pode causar erro.
Função DATE vs DateValue: Principais Diferenças
| Item | Função DATE | Função DateValue |
|---|---|---|
| Formato de entrada | Três números separados: ano, mês, dia | Uma string de texto: “mês/dia/ano” |
| Tratamento do ano | Sempre usa o ano conforme fornecido; use anos de quatro dígitos | Interpreta anos de dois dígitos com base no corte do servidor; use anos de quatro dígitos |
| Configurações regionais | Não afetado pelo formato de data regional | Afetado pelo formato de data regional (ex.: dd/mm vs mm/dd) |
| Melhor caso de uso | Datas fixas em fórmulas, especialmente com anos de quatro dígitos | Converter uma string de data de outra coluna ou entrada do usuário |
Use a função DATE quando precisar de uma data fixa que não deve mudar com base nas configurações regionais. Use DateValue quando precisar converter uma string de data de uma coluna de texto ou quando a data vier de uma fonte externa.
Agora você pode corrigir qualquer coluna calculada que retorne uma data errada. Comece verificando sua fórmula em busca de texto de data fixa e substitua-o pela função DATE. Além disso, aplique a função INT para remover deslocamentos de hora. Para diferenças de data, sempre use DATEDIF. Se ainda houver problemas, verifique se as configurações regionais do seu site do SharePoint correspondem ao formato de data usado na fórmula.