Почему будням в Excel неправильно за 1900?
Этот вопрос основан на наблюдениях AdamV в ответ на https://superuser.com/questions/41883/how-do-i-get-the-day-name-into-a-cell-in-excel
Если А1 имеет значение 2009-08-01, то:
=День(А1)
получим7
=Текст(7, "по-дддд-то")
получимсуббота
=Текст(7,"от дддд, гггг-ММ-ДД", у)
получимсуббота, 1900-01-07
=Текст(1,"по-дддд, гггг-ММ-ДД", у)
получимвоскресенье, 1900-01-01
=Текст (на"1900-01-01-то","от дддд, гггг-ММ-ДД", У)
и получимвоскресенье, 1900-01-01
Последние два не правы: 1 января 1900-это на самом деле понедельник. Различные источники подтверждают, что:
- Январь 1900 - Википедия, свободная энциклопедия.
- Год Календарь 1900 – Нидерланды.
- Год Календарь 1900 – Соединенные Штаты.
Что я упускаю? Почему в Excel делаю это неправильно?
27
3
Как описано в Microsoft КБ 214058:
В "другие программы электронных таблиц", которая приведена в в Lotus 1-2-3, который был очень популярен тогда, и ошибочно предположил, что 1900 год был високосным. Это объясняется еще более подробно в КБ 214326:
Вот причину объяснил сам Джоэл: мой первый BillG комментарий
Одним из решений этой проблемы является добавление 400 лет до года, для работы в будний день, как в следующей формуле =День(дата(А4+400,В4,С4),1) так что если А4 =1834 В4 = 12 С4 = 14 это будет возвращать 1 (воскресенье) который так же как и на 14 декабря 2234 Это перестает работать для дат до 1753 года после перехода на Григорианский календарь