Почему ячейки с одинаковой датой имеют разные порядковые номера даты? - PullRequest
1 голос
/ 10 июля 2020

Я работаю с книгой, в которой есть даты со временем, включенные в 2 рабочих листа. Когда для переменной задана дата на листе A, она будет искать ее на листе B и извлекать номер строки, используя вторую переменную. 2 (т.е. дата существует на листе B), он не распознает их как равные. Я прошел через процедуру, чтобы узнать, могу ли я выяснить, почему они не совпадают, и оказалось, что это потому, что серийные даты немного отличаются. 44027.3333333325 и 44027.3333333333 для переменных 1 и 2 соответственно.

Что означают последние 2 числа и как я могу это решить?

Я подтвердил, что ячейки имеют одинаковое настраиваемое форматирование, и у меня есть они "затемнены" как однотипные (пробовали и с двойным, и с датой). Мне нужно пока оставить десятичные дроби.

Спасибо

Ответы [ 2 ]

3 голосов
/ 10 июля 2020

Десятичная часть значения даты и времени Excel представляет время. Разница в 0,0000000008 между вашими двумя значениями составляет около 10 микросекунд, что является большей точностью, чем Excel может отображать в стандартном формате даты / времени. Если вас интересует только точность до второго уровня, вы можете безопасно округлить значения до шести десятичных знаков, что по-прежнему даст вам время с точностью лучше 1 секунды.

3 голосов
/ 10 июля 2020

Как указывает Скотт Крейнер в комментариях, десятичные дроби представляют время с точностью до малой доли секунды. Чтобы сравнить даты, игнорируя точное время, используйте функцию DateValue; Таким образом, нет необходимости применять округление к вашим данным.

Sub CompareTwoDates()

    Dim Date_1 As Date, Date_2 As Date

    Date_1 = 44027.3333333325
    Date_2 = 44027.3333333333
    
    If DateValue(Date_1) = DateValue(Date_2) Then
        MsgBox "The dates are identical.", vbInformation + vbOKOnly, "Date Comparison"
    End If

End Sub

Подробнее о функции DateValue здесь: Функция DateValue

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