Юлианский Дата в мм / дд / гг в Excel - PullRequest
1 голос
/ 13 ноября 2009

Я пытаюсь преобразовать юлианскую дату (гг / ддд) в обычные данные мм / дд / гг в excel vba. У меня есть идея использовать оператор выбора case, который вызывает функцию для каждого месяца. Но это много кода, и я ленивый. Мне интересно, есть ли лучший способ?

1 Ответ

1 голос
/ 13 ноября 2009

По данным этого сайта :

=DATE(IF(0+(LEFT(A1,2))<30,2000,1900)+LEFT(A1,2),1,RIGHT(A1,3))

Это работает, пока у вас есть пятизначное число в A1. Например, он превращает 95032 в 1 февраля 1995 года. Вам нужно изменить формулу, если ваши данные содержат косую черту (95/032).

На этом же сайте есть также раздел vba. Он говорит, что будет работать следующее:

Function JDateToDate(JDate As String) As Long
Dim TheYear As Integer
Dim TheDay As Integer
Dim TheDate As Long

TheYear = CInt(Left(JDate, 2))
If TheYear < 30 Then
    TheYear = TheYear + 2000
Else
    TheYear = TheYear + 1900
End If

TheDay = CInt(Right(JDate, 3))
TheDate = DateSerial(TheYear, 1, TheDay)
JDateToDate = TheDate

End Function

Я не тестировал код vba, но, поскольку он по сути является версией кода приведенной выше формулы, он должен выполнить эту работу.

Редактировать: Как указывает tbischel, на самом деле это не юлианская дата. Это Порядковая дата .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...