Eu estava tentando usar funções para obter o dia de hoje como um número no Excel. Por exemplo, quando escrevi esta pergunta, deveria ter obtido US $ 18 $.
Eu tentei usar:
- a função
TODAY()
que retorna a data de hoje em um formato de data. Day(<date>)
que retorna o número do dia de<date>
. Ou seja,DAY(19/05/1984)
deve retornar 19.
Portanto, a fórmula
=DAY(TODAY())
deve dar o resultado que eu queria.
No entanto, esse retorno 18/01/1900 (ao usar a função hoje)
Se eu usar
=TODAY()
na célula A1 e depois
=DAY(A1)
em outra célula, eu obtenho o resultado certo.
Por que DAY (HOJE ()) não fornece o resultado esperado?
Do meu histórico de programador matemático e amador (em Maple, Java e alguns Python), minha composição de funções parece boa.
De maneira mais geral, como o Excel lida com a composição de fórmulas?
microsoft-excel
microsoft-excel-2010
Taladris
fonte
fonte
=DAY(TODAY())
... Retorna o dia atual do mês (1 a 31) .. #Respostas:
Sua fórmula está correta; é a maneira como o Excel formata células que é confuso. Por exemplo, se você definir manualmente um valor de célula para
18
e depois alterar o formato para uma data, ele será exibido comoJanuary 18, 1900
.Se você alterar o formato da célula com sua fórmula para "Geral", ele deverá exibir o resultado esperado.
fonte
TODAY()
. Realmente irritante quando você as usa apenas em funções de decomposição e precisa mudar a formatação novamente.Eu acho que você pode estar confuso ao pensar que o Excel manipula os valores de 'data': isso não acontece.
Como usar datas e horas no Excel
No Excel, os números são usados para representar datas (o número possivelmente fracionário de dias desde 0-Jan-1900), mas eles são armazenados e manipulados pelo Excel como números. TODAY () é uma função com valor numérico e DAY () é uma função de um argumento numérico para um resultado numérico.
No seu caso, DAY (TODAY ()) retornou corretamente 18 (um número) que imagino que você atribuiu a uma célula formatada para mostrar uma data em formato abreviado - para que 18 seja exibido como 18/01/1900. Porque para o Excel, quando 18 é interpretado como uma data, é isso que significa.
Se você formatar essa célula para um formato numérico, verá a resposta da maneira que esperava, ou seja, 18.
fonte
Nada está errado com a sua fórmula. O que eu gostaria de sugerir, se a fórmula não produz o resultado esperado, produz um erro ou um resultado errado. Desde que você não mencionou o que a fórmula tem cozinhar!
Enquanto isso, gostaria de mostrar quais são as possibilidades de obter o valor DAY em Number no Excel.
Confira a captura de tela abaixo.
NB:
A data está na célula E166 . A segunda coluna F tem resultados e a terceira coluna G mostra a fórmula para a qual eu usei.
Você também pode usar a função TEXTO para obter o valor do dia como dados de texto.
O valor é VERMELHO. A cor possui o formato DD da célula personalizada. Você pode aplicar na célula (S) para mostrar apenas os valores de dia da data (S).
Observe que sugeri todas as possibilidades, pois você mencionou que basicamente você não é um usuário do Excel.
Espero que isso ajude você, não se esqueça de postar o erro que sua fórmula deu.
fonte
Sua fórmula é composta corretamente. O resultado inesperado é devido à forma como os diferentes tipos de dados são armazenados pelo Excel.
Existem dois sistemas semelhantes que o Excel usa para armazenar datas, com base em uma configuração no nível da pasta de trabalho.
O sistema de data de 1900
O sistema de datas de 1904
Esses trechos foram extraídos de: https://support.microsoft.com/en-us/help/214330/differences-between-the-1900-and-the-1904-date-system-in-excel
O número de série é uma contagem simples do número de datas desde 1º de janeiro de 1900, incluindo a data fictícia de 29 de fevereiro de 1900. A função DAY, no entanto, também pode ser vista como uma função de conversão de tipo de dados. Ele pega um número de série da data como entrada e retorna um número inteiro como saída. No seu exemplo, se considerarmos 18 como representando uma série de datas e contar 18 dias a partir de 1º de janeiro de 1900, terminamos em 18 de janeiro de 1900.
A correção simples no front-end é alterar o formato da célula para algo como Number ou General . Isso instruirá o Excel a exibi-lo como um número inteiro, em vez de tentar interpretá-lo como uma série de datas. No back-end, está tudo bem para ir. O resultado inteiro pode ser usado em qualquer outra fórmula e se comportará corretamente.
Como exemplo, digamos que desejássemos criar uma fórmula condicional que nos dissesse se o dia 15 passou ou não no mês atual. Podemos fazer isso usando:
Seria muito mais difícil obter o mesmo resultado usando uma série de datas; portanto, a função DAY retornando um número inteiro acaba sendo mais útil no contexto dos casos de uso comuns do Excel.
fonte