| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Работа с MS Office > Ошибка Excel |
| Автор: zlato 9.3.2016, 19:19 |
| Известно, что в Excel значения даты могут быть от 1.1.1900 до 31.12.9999. Действительно, если ввести недопустимую дату 00.01.1900, то она будут воспринята как текст и будет выровнена в ячейке по левому краю. Но я обнаружил, что если, например, в А1 ввести дату 13.01.1900, а в А2 формулу =А1-13, то будет получен результат 00.01.1900, причем это будет значением даты! К полученному значению можно прибавлять числа и получать новые даты. Можно применять все функции для работы с датами. Например, функция ДЕНЬ вернет значение 0 (номер дня месяца!), функция ДЕНЬНЕД -- номер дня недели (соответствует субботе) и т.д. Чудеса! |
| Автор: Akina 10.3.2016, 09:16 |
| А ошибка-то в чём? "Значения даты" - это термин форматирования значения при выводе, а вовсе даже не формата хранения. Формат хранения как был Single, так и остался. |
| Автор: zlato 10.3.2016, 20:53 |
| Akina, спасибо. А как назвать ситуацию, когда выводится недопустимое значение даты, которое можно использовать именно как дату? В то время, как другие недопустимые значения даты 31/12/1899 или 35/03/2016 или 29/02/2100 (тоже single) не распознаются как значения даты. Почему, если для даты 31/12/1899 в случае числового формата выводится -1, но при этом 31/12/1899 датой не считается, значение 00/01/1900, имеющего в числовом формате значение 0, датой может быть? И наоборот, если ввести -1, а потом сделать в этой ячейке числовой формат, то будет ошибка, а если тоже сделать с нулем, то будет выведена дата 00/01/1900? Мне кажется, что и для 0, и для -1 должно быть одно и то же, то есть "не дата". Хотя, может быть, можно назвать обнаруженную мной ситуацию "некорректным значением даты". |