Por que a Coluna Calculada Retorna a Data Errada
🔍 WiseChecker

Por que a Coluna Calculada Retorna a Data Errada

Você criou uma coluna calculada no SharePoint para exibir uma data futura, passada ou a diferença entre datas, mas o resultado está com um dia a mais, mostra um número de série ou retorna um erro. Isso acontece porque o SharePoint armazena datas como números de série no Tempo Universal Coordenado (UTC) e aplica o fuso horário da coleção de sites apenas ao renderizar o valor. Este artigo explica a causa raiz dos erros de cálculo de datas em colunas calculadas e mostra como corrigir a fórmula para obter a data correta.

Principais Conclusões: Corrigindo Cálculos de Data em Colunas Calculadas do SharePoint

  • Use a função DATE em vez de strings de texto: Escrever =[Data Início]+30 funciona, mas =[Data Início]+”30″ retorna um erro ou um número de série.
  • Adicione um componente de hora para diferenças precisas: Use =DATEDIF([Data Início],[Data Fim],”d”) para obter dias inteiros sem erros de arredondamento.
  • Verifique a configuração de fuso horário da coleção de sites: O SharePoint armazena datas em UTC; a coluna calculada pode exibir uma data com um dia de diferença se o fuso horário do site for diferente do UTC.

ADVERTISEMENT

Por que as Colunas Calculadas do SharePoint Mostram a Data Errada

O SharePoint armazena cada valor de data e hora como um número de série no Tempo Universal Coordenado (UTC). Quando você cria uma coluna calculada que referencia uma coluna de data, o cálculo é executado sobre o número de série em UTC, não sobre a data formatada que você vê na lista. A configuração de fuso horário da coleção de sites informa ao SharePoint como exibir a data, mas a fórmula da coluna calculada não aplica automaticamente esse deslocamento de fuso horário. Essa incompatibilidade faz com que a data exibida fique com um dia de diferença quando o fuso horário do site está atrás ou adiantado em relação ao UTC.

Outra causa comum é o uso de strings de texto em operações aritméticas com datas. O SharePoint espera valores numéricos para cálculos com datas. Escrever uma fórmula como =[Data Início]+"30" trata o número como texto e retorna um número de série ou um erro. O mesmo problema ocorre ao usar Today() ou Now() em uma coluna calculada. Essas funções retornam a data atual em UTC, que pode ser diferente da data no seu fuso horário local.

Uma terceira causa é a forma como o SharePoint calcula diferenças entre datas. A função DATEDIF funciona corretamente, mas a subtração simples =[Data Fim]-[Data Início] retorna um número decimal representando a fração de um dia. Sem arredondamento, o resultado aparece como um decimal em vez de um número inteiro de dias.

Passos para Corrigir uma Coluna Calculada que Retorna a Data Errada

  1. Verifique o fuso horário da coleção de sites
    Vá para Central de Administração do SharePoint > Sites ativos > selecione seu site > Configurações > Configurações regionais. Anote o fuso horário. Se o fuso horário do site não for UTC, a coluna calculada pode exibir datas com um dia de diferença. Para contornar isso, adicione ou subtraia o deslocamento do fuso horário na fórmula. Por exemplo, para o Horário Padrão do Leste (UTC-5), use =[Data Início] - 5/24 para ajustar o valor exibido.
  2. Use a função DATE para criar uma data a partir de partes
    Se você estiver construindo uma data a partir de colunas de ano, mês e dia, use a função DATE em vez de concatenar strings. Exemplo: =DATE([Ano],[Mês],[Dia]). Isso retorna um número de série de data adequado que o SharePoint pode calcular corretamente.
  3. Adicione um número, não texto, a uma data
    Para adicionar 30 dias a uma data de início, escreva =[Data Início]+30. Não coloque o número entre aspas. Se você escrever =[Data Início]+"30", o SharePoint trata o 30 como texto e retorna um erro ou um número de série.
  4. Use DATEDIF para diferenças entre datas
    Para calcular o número de dias entre duas datas, use =DATEDIF([Data Início],[Data Fim],"d"). O argumento “d” retorna dias inteiros. Para meses, use “m”. Para anos, use “y”. Isso evita o resultado decimal que a subtração simples produz.
  5. Arredonde o resultado da subtração de datas
    Se você precisar usar subtração, envolva o resultado com a função INT para remover a parte decimal. Exemplo: =INT([Data Fim]-[Data Início]). Isso retorna um número inteiro de dias.
  6. Evite Today() e Now() em colunas calculadas
    Essas funções retornam a data e hora em UTC, o que pode fazer a coluna calculada mostrar uma data diferente do esperado. O SharePoint também recalcula esses valores apenas quando o item é modificado, não a cada carregamento de página. Em vez disso, use um fluxo de trabalho ou Power Automate para obter a data atual no fuso horário correto.

ADVERTISEMENT

Erros Comuns em Cálculos de Data e Suas Correções

A coluna calculada mostra um número de cinco dígitos em vez de uma data

Isso acontece quando a fórmula retorna um número de série que o SharePoint não reconhece como data. A causa mais comum é usar uma string de texto na fórmula. Por exemplo, =[Data Início]+"7" retorna um número de série. Remova as aspas: =[Data Início]+7. Se a coluna ainda mostrar um número, altere o tipo da coluna de Linha de texto único para Data e Hora nas configurações da coluna.

A data está com um dia de diferença após adicionar dias

Provavelmente o fuso horário da coleção de sites é diferente do UTC. Por exemplo, se seu site usa o Horário Padrão do Pacífico (UTC-8), adicionar 30 dias a uma data pode mostrar o resultado como o dia anterior. Adicione ou subtraia o deslocamento do fuso horário na fórmula. Para PST, use =[Data Início]+30-8/24. Teste com algumas datas para confirmar se o ajuste está correto.

DATEDIF retorna um erro

A função DATEDIF exige que a data de início seja anterior à data de término. Se a data de início for posterior à data de término, a função retorna um erro. Use a função SE para inverter as datas quando necessário: =SE([Data Início]<[Data Fim];DATEDIF([Data Início],[Data Fim],"d");DATEDIF([Data Fim],[Data Início],"d")). Essa fórmula sempre retorna um número positivo de dias.

A coluna calculada não é atualizada quando a data de origem muda

As colunas calculadas são recalculadas apenas quando o item é salvo. Se você alterar uma coluna de data na lista e a coluna calculada não for atualizada, edite e salve o item novamente. Para atualizações automáticas, considere usar um fluxo do Power Automate que atualize uma coluna de texto com a data calculada.

Coluna Calculada vs Power Automate para Cálculos de Data

Item Coluna Calculada Power Automate
Tratamento de fuso horário Usa UTC; é necessário ajuste manual Pode usar fuso horário local com a ação convertTimeZone
Recálculo Apenas quando o item é salvo Executa no gatilho (item criado, modificado ou agendado)
Lógica de data complexa Limitada a funções de fórmula Suporta expressões, condições e loops
Exibição em tempo real Mostra na exibição de lista imediatamente Atualiza uma coluna após o fluxo ser executado (pode haver atraso)

Para adição ou subtração simples de datas com fuso horário consistente, uma coluna calculada com o deslocamento correto funciona bem. Para lógica complexa, como calcular dias úteis ou lidar com vários fusos horários, use o Power Automate.

Agora você pode corrigir cálculos de data no SharePoint usando valores numéricos em vez de strings de texto, ajustando os deslocamentos de fuso horário e escolhendo a função certa para diferenças entre datas. Comece verificando o fuso horário da coleção de sites e atualizando sua fórmula para incluir o deslocamento. Para diferenças entre datas, use DATEDIF com a função SE para evitar erros. Se a fórmula ficar muito complexa, mova o cálculo para um fluxo do Power Automate para ter mais controle sobre fusos horários e temporização de atualizações.

ADVERTISEMENT