Для меня огромная загадка, чего там собственно угадывать. Если в ячейке число - то это, сука, число. Если в ячейке что-то кроме числа - это текстовая строка. Если пользователю понадобится процент или дата или ещё хер пойми что - он это укажет в формате ячейки. В чем сложность было сделать именно так?
Так нужен не только числовой, плюс приходится работать с чужими файлами (ну, или я неправильно понимаю и они тоже будут по базовому шаблону открываться?)
ВНИМАНИЕ! СУПЕРОТКРЫТИЕ!
В экселе есть найтройки и в зависимосте от них точка будет считатлся либо разделителем дробного числа, либо даты. Хочешь, чтобы эксель однозначно "угадывал", что это дробь: либо разделяй запятой, либо подкрути настройки.
Вот даже загуглил за вас, кактусоедов.
Ну это замечательно, но какое отношение имеет к теме? У меня дома английский эксель, который использует точку. На работе - немецкий эксель, который использует запятую. У жены - русский Эксель,там вроде тоже запятая. Проблема идиотской замены чисел на даты существует на всех трёх компах. Или ты предлагаешь заменить запятую звёздочкой чтобы с датой не путало?)
Представляешь, если у тебя на трёх компах стоят разные региональные настройки, но при этом ты хочешь использовать только один знак, проблема будет не только в Экселе.
Ошибки будут возникать в любой программе, где вводится какой-то тип данных с плавающей запятой или датой: в программировании, в базах данных или даже тупо когда данные на отправку большого розового дилдо на сайте заводишь.
Нет-нет, меня не особо смущает использование разного знака, к этому адаптируешься после первой опечатки.
Меня смущает именно не к месту появляющаяся конвертация числа в дату
Ага, открываешь CSV, это создание тупое меняет тебе числа на даты, контрол-З не работает. Ок, ты выбираешь тип данных "строка" или "число" для колонки которую эта гнида поменяла, и эта мразота преобразует дату в число типа 44306 (количество дней от 1900-01-01 до даты). Заебок :)
Если вставляются 100500 чисел, то уж по любому не должно быть взападло один раз выделить ячейки и поставить текстовый формат, пзц. Уже не говоря о том, что это скорее всего какой-то бесконечный список и можно просто тыкнуть на столбец чтобы выделить в нём ВСЕ ячейки и сделать какими надо.
Я так полагаю на заре создания экселя кто-то подумал что раз он пишет дату как 12.4, то пусть так будет дефолтное поведение для точки и пусть все страдают. А спустя 20 лет из-за обратной совместимости решили оставить как есть. Правда кому нужна такая совместимость мне не ясно.
По хорошему, такие ячейки надо помечать как ошибочные и заставлять пользователя явно указать тип данных для ячейки или для группы ячеек, а не стрелять себе в ногу как делает эксель по дефолту.
да, это фишка экселя выбешивала всегда
причем с какого перепуга эксель считает что даты вводятся именно без года ? нет бы подождать ввода второй точки и числа и тогда переводить в дату....
хотя чего хотеть от мелкософта ?
Хотя бы сразу видите что не так и в чем проблема.
А теперь смотрите сюда. 50/5*2.5 = 23.5! Эта сука множила календарное число на число и даже не подавилась и даже выдала похожий результат.
Я сначала охуел с того, что произошло и как. А потом охуел, подумав где и с какими последствиями такое могло остаться незамеченым.
потому-что 2,5 это 2 мая. Как второе мая умножилось на 10 и получилось не то 23,5 не то 23 мая не известно ни кому, даже индусам, даже небу, даже аллаху, т.к. делали ёксекль как минимум 2 человека и виновного уже не найти. Может там вообще полста разделилось на 5 раз по второму мая.
Ексель, вообще ебанутый, в нем есть пара библиотек на квантовых вычислениях (одна с привязкой к пространству-времени, другая без).
Понятно, т.е. ты тоже не знаешь.
За много лет своей работы, во время которой очень плотно общаюсь с Excel, не находил ещё в нём необъяснимых косяков. Все эти шутки, как в посте - от незнания, что такое формат данных и как он используется. А все косяки, от неумения пользоваться Excelем. За кажущейся простотой это очень сильный инструмент, а в сильных инструментах очень просто накосячить.
В Экселе дата - это тоже число. Например, 2 мая 1900 - это 123, а 2 мая 2021 - 44318. Считается очень просто - количество дней, прошедших с 01.01.1900. И понятно, что Эксель легко может проводить с ними математические операции. Которые часто очень полезны.
А вот херня на скриншоте Holo - либо фейк, либо там, например, умножение не на 5, а на 4.7, после чего отображение ячейки привели к целому числу.
>очень очень сильный очень очень
Фанбой из стокгольма не палится.
Если инструмент воспринимает 5.5 как 5 мая, а 15.15 как 15.15, в т.ч. в формулах, и никак об этом не сигнализирует - он говно. Потому что то, что увеличивает вероятность ошибки - говно. По всему миру power юзеры экселя просто привыкли, как привыкают к прочим подводным камням ui/ux.
Да да, а ещё все языки с динамическими типами типа JavaScript тоже говно. Но почему-то альтернатив той же JavaScript почти нет.
Если всё так плохо, почему до сих пор никто не сделал "нормально"?
Excel не использует в формулах 5 мая или 15.15. Он использует значения ячеек, которые могут отличаться от того, что видят пользователи.
Да, и ещё, все эти "проблемы" возникают, когда вводишь данные вручную. А кому нафиг надо вводить вручную данные в Excel? Все нормальные люди либо тащат данные из БД, либо файлы генерятся автоматически различным софтом. А тебе максимум, что надо, это проставить какие-нибудь формулы или фильтры.
страшнее - может они они просто не замечают ошибки! Вот я бы я не заметил, и сидел бы думал, почему у меня производство пластика в факторио косячное, ведь все правильно посчитано.
А вдруг где-то, кто-то так дозировку лекарства рассчитывал.
Ну "сильный" ни есть "умный". Функционал у экселя действительно громаднейший. При желании он даже в трассировку лучей может (на хабре есть статья, как дядька шутер с трассировкой в нем делал), а вот почему там переодически вылезает какая-то дичь и надо лезть в форматирование - вопрос мучающий очень многих, легали кода там очень дофига, m$ туда с горяча лезть боится, а целенаправленно реверс и перепись - финансово нецелесообразно.
Тогда с моего примера выше - май кого года он подставил под 2/5, если при умножении на 10 он получил 3113?
с 1900 до 3113 - 443057 дней, а 443180 это 20.09.3113 (я понимаю, что он мог игнорировать високосные года, но это как-то слишком уже косячно)
C 01.01.1900 по 20.05.3113 - 443180 дней. Естественно он учитывает високосные года, так как считает количество календарных дней, а не тупо умножает на 365.
Ну так у меня 02,05, а не 01,01. 02,05 умножается на 10, а не к 01,01 прибавляется 443180, или эксель решил что "ты хочешь знаение даты умножить на 10? ну давай я к точке отсчета это значение прибавлю", чо.
Лолшто?
Ты мог бы настроить только ОДНУ строку в текстовый формат и затем ctrl+c ctrl+v эту строку дохуллион раз вставить. Можно даже методом Фибоначчи.
-С чего ты решил, кожанный ублюдок, что я должен угадывать какой тип данных ты загадал? Пусть будет дата...
В экселе есть найтройки и в зависимосте от них точка будет считатлся либо разделителем дробного числа, либо даты. Хочешь, чтобы эксель однозначно "угадывал", что это дробь: либо разделяй запятой, либо подкрути настройки.
Вот даже загуглил за вас, кактусоедов.
https://support.microsoft.com/ru-ru/office/%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%B0-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B5%D0%BC%D0%BE%D0%B3%D0%BE-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-%D1%82%D1%8B%D1%81%D1%8F%D1%87%D0%BD%D1%8B%D1%85-%D0%B8-%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D1%8B%D1%85-%D1%87%D0%B8%D1%81%D0%B5%D0%BB-c093b545-71cb-4903-b205-aebb9837bd1e
Ошибки будут возникать в любой программе, где вводится какой-то тип данных с плавающей запятой или датой: в программировании, в базах данных или даже тупо когда данные на отправку большого розового дилдо на сайте заводишь.
Меня смущает именно не к месту появляющаяся конвертация числа в дату
Если я захочу дату то я напишу 12.05.90
*Trollface*
Картинка для привлечения внимания
(MARCH1 — Membrane Associated Ring-CH-Type Finger 1)
По хорошему, такие ячейки надо помечать как ошибочные и заставлять пользователя явно указать тип данных для ячейки или для группы ячеек, а не стрелять себе в ногу как делает эксель по дефолту.
причем с какого перепуга эксель считает что даты вводятся именно без года ? нет бы подождать ввода второй точки и числа и тогда переводить в дату....
хотя чего хотеть от мелкософта ?
Лечится в региональных настройках выставлением точки как разделителя дробной части вместо запятой.
А теперь смотрите сюда. 50/5*2.5 = 23.5! Эта сука множила календарное число на число и даже не подавилась и даже выдала похожий результат.
Я сначала охуел с того, что произошло и как. А потом охуел, подумав где и с какими последствиями такое могло остаться незамеченым.
D3/E3 = 50/5 = 10 полюбому, так как там нет иных форматов.
Вопрос, как оно умножив 10 на A4 получило 23.5?
Ексель, вообще ебанутый, в нем есть пара библиотек на квантовых вычислениях (одна с привязкой к пространству-времени, другая без).
За много лет своей работы, во время которой очень плотно общаюсь с Excel, не находил ещё в нём необъяснимых косяков. Все эти шутки, как в посте - от незнания, что такое формат данных и как он используется. А все косяки, от неумения пользоваться Excelем. За кажущейся простотой это очень сильный инструмент, а в сильных инструментах очень просто накосячить.
В Экселе дата - это тоже число. Например, 2 мая 1900 - это 123, а 2 мая 2021 - 44318. Считается очень просто - количество дней, прошедших с 01.01.1900. И понятно, что Эксель легко может проводить с ними математические операции. Которые часто очень полезны.
А вот херня на скриншоте Holo - либо фейк, либо там, например, умножение не на 5, а на 4.7, после чего отображение ячейки привели к целому числу.
Фанбой из стокгольма не палится.
Если инструмент воспринимает 5.5 как 5 мая, а 15.15 как 15.15, в т.ч. в формулах, и никак об этом не сигнализирует - он говно. Потому что то, что увеличивает вероятность ошибки - говно. По всему миру power юзеры экселя просто привыкли, как привыкают к прочим подводным камням ui/ux.
Если всё так плохо, почему до сих пор никто не сделал "нормально"?
Excel не использует в формулах 5 мая или 15.15. Он использует значения ячеек, которые могут отличаться от того, что видят пользователи.
Осталось только ойвсёкнуть
А вдруг где-то, кто-то так дозировку лекарства рассчитывал.
Он бесплатный - сходи сам создай таблицу и впиши туда эти данные. Будет у тебя такой же фейк.
с 1900 до 3113 - 443057 дней, а 443180 это 20.09.3113 (я понимаю, что он мог игнорировать високосные года, но это как-то слишком уже косячно)
Ты мог бы настроить только ОДНУ строку в текстовый формат и затем ctrl+c ctrl+v эту строку дохуллион раз вставить. Можно даже методом Фибоначчи.
Он мог одним кликом выделить весь столбец и вторым кликом отформатировать в текстовый формат. Всё. И не нужно никаких ctrl+c.