Excel: verifique se a data tem um dia

0

Eu tenho células com datas no Excel. Algumas datas têm dd-mm-aa (por exemplo, 20-01-15), outras apenas têm mm-aa (por exemplo, 01-15). Quero determinar quais células têm um dia especificado pelo usuário.

Até onde eu sei, isso não é possível - quando o usuário não digita um dia do mês, o objeto de data subjacente do excel armazena o primeiro dia do mês. No entanto, o dia não é mostrado na célula, portanto, deve haver um sinalizador ou configuração em algum lugar para isso.

Se eu pudesse extrair o texto da célula exibido, poderia analisá-lo para responder à minha pergunta, mas não consigo encontrar uma função de planilha para extrair o texto da célula exibido sem usar o VBA.

aaronsnoswell
fonte
Você tem que ter muito cuidado aqui. No esquema de formatação dos EUA, se um usuário digitar uma data no mm/yyformato e o valor da data de dois anos yycair entre 1e 31, o Excel realmente o interpretará como um mm/ddvalor no ano civil atual. (por exemplo, 12-14é interpretado como 14 de dezembro de 2015 e não como 1 de dezembro de 2014.) Se yyfor zero ou maior que 31, será interpretado mm/yycomo pretendido.
Hby2Py 30/07/2015
Cuidado também com o dd-mm-yyformato, pois ele pode se comportar inesperadamente em você também.
Hby2Py 30/07/2015
Você pode esclarecer seu objetivo? É o que você pergunta no seu primeiro parágrafo: determinar quais células têm um dia especificado pelo usuário? Ou você já determinou que isso não é possível (segundo parágrafo) e está procurando uma maneira de exibir a entrada real do usuário (ou outra coisa)? O mecanismo que você descreve no segundo parágrafo não é como as datas são armazenadas (o valor armazenado é o número de dias desde a data de referência; a exibição está apenas formatando).
fixer1234

Respostas:

2

Se o usuário digitar uma data, ele poderá ocultar o dia, o mês ou o ano, formatando. Mas é apenas assim que a célula é exibida . Se, no entanto, você procurar na barra de fórmulas ; o dia será visível.

insira a descrição da imagem aqui

Se seu único interesse é determinar qual dos dois formatos o usuário selecionou (e não o dia do mês atual) , use a função da planilha = Cell () .

Aluno de Gary
fonte
Levei uma eternidade para descobrir como rastrear informações de referência no site da Microsoft. Eu acho que salvaria as pessoas do problema.
Hby2Py 30/07/2015
0

Você pode impedir que o Excel insira automaticamente o primeiro dia do mês formatando a célula como texto. Isso precisa ser feito antes que os dados sejam inseridos.

Kyle
fonte
0

Sua pergunta é um pouco ambígua. Vou abordar o que acho que você está perguntando.

O que é armazenado

Se você digitar algo que o Excel interpreta como uma data, ele será armazenado como uma data, em vez da cadeia de caracteres real que foi inserida. Uma data é armazenada como um número que representa o número de dias desde a data de referência. Portanto, o valor armazenado é, na verdade, uma contagem de dias, não contém ou não um dia, dependendo se um foi inserido.

Tudo o resto (ano, mês, dia do mês etc.) é derivado disso e a especificação do formato determina quais detalhes são exibidos. Se uma data do mês / ano for inserida, a única maneira de armazená-la como uma data para que seja uma data específica, o Excel assumirá o primeiro do mês.

Consulta de célula não é útil

Se o Excel interpreta uma entrada como uma data, a entrada real não está mais lá para ser analisada para determinar o que o usuário digitou (portanto, uma função para exibir o texto da célula não ajudará).

No entanto, você pode assumir o que foi inserido em determinadas circunstâncias. Fiz um teste rápido no Excel 2007 (presumo que esse comportamento não foi alterado nas versões subseqüentes).

  • Se o Excel atribuir um dia do mês (porque nenhum foi inserido), será o primeiro do mês. Se todas as datas para um usuário forem o primeiro do mês e se não houver motivo para que esse sempre seja o caso (ou seja, as datas não sejam definidas como sempre sendo a 1ª), isso seria uma indicação de que apenas mês e ano foram inseridos.

    Por outro lado, se alguma data exibida como mês / ano contiver um dia que não seja o 1º (verifique fazendo referência à célula de outra célula e exiba mm / dd / aa), isso indicaria que o usuário digitou o dia e está sendo processado. suprimida pela formatação. É improvável que um usuário insira o dia apenas em datas diferentes do dia 1º do mês.

  • Se a célula estiver pré-formatada com um formato de data, as entradas de data serão exibidas nesse formato. Se a célula tiver um formato geral, uma entrada de data será exibida em um formato de data padrão que mostra o mesmo nível de informação. Então, por exemplo, quando eu digitei 07/15como entrada para uma célula com um formato geral, ela foi exibida em 15 de julho; não é idêntico ao que eu digitei, mas o mesmo nível de informação.

    Se a entrada da data tiver formatos mistos, isso indicaria que as células não foram pré-formatadas. Portanto, é provável que as datas que mostram apenas mês e ano tenham sido inseridas apenas como mês e ano.

fixer1234
fonte