Страницы: 1
RSS
Как отучить Excel преобразовывать текст в дату или горе от ума
 
Всем желаю доброго дня и спокойствия духа
Есть текущая версия Excel для Windows
И есть проблема с сильно умным Excel-ем (либо с несильно умным мной)

Возможно слышали - есть такая штука, называется CAS-номер  (идентифицирует химические соединения и имеет вид, если через regex, ^\d{2,7}-\d{2}-\d$, а если на пальцах, то сперва от 2-х до 7-ми цифр, затем минус (тире), затем две цифры, затем минус (тире), затем еще одна и имеет вид 1234-56-7 или 1234567-89-0 или 12-34-5).

Собственно, у меня и Excel проблема с теми CAS-номерами, что имеют первые 4 цифры (1234-56-7). Не важно, что формат ячейки выставлен в "Текст", он при любой возможности стремится из CAS-номера "1234-56-7" сделать дату "07(день).56(месяц).1234(год)". Специально взял такие числа чтобы была понятна логика Excel-я.
Да, самый простой способ это держать CAS-номера в кавычках. Но это сильно усложнит процесс и не всегда получается, потому как в Excel данные попадают из разных источников - где с кавычками, где без. Когда без кавычек, приходится дополнительно лезть и проверять, где эксель напакостил.
Хотелось бы как-то без проверок - как со всеми остальными данными.

Как это воспроизвести?
Просто:
1. назначаем ячейке свойство "Текст"
2. пишем в ячейку "7719-09-7" (вот так прямо с кавычками пишем) (это реальный CAS-номер тионил хлорида если кому интересно)
3. делаем "найти и заменить" для этой ячейки - заменить двойные кавычки на ничего
4. получаем дату "9/7/19" (ну или в другом виде, как у вас дата настроена)
5. а в свойствах ячейки волшебным образом появляется "Дата"

а я хочу:
4. получаем 7719-09-7
5. в свойствах по-прежнему "Текст"


это работает как на виндовом экселе, так и на маковском
в "настройках" "данные" "Автоматическое преобразование данных" выключал/включал - никакой реакции.

я подозреваю что это часть "ИИ от Excel". но этот тот случай, когда горе от ума.

Как вылечить? Может кто решал подобную задачу?
 
Добрый день.
Пишите первым символом апостроф.
И не важно что в свойствах ячейки.
Изменено: Hugo - 12.09.2024 16:36:10
 
Цитата
написал:
Пишите первым символом апостроф.
технически это то же самое, что кавычки. То есть, нужно лезть в данные до того, как они попадут в эксель и что-то с ними делать. Хотелось бы без этого.
 
а если использовать Power Query?
 
Цитата
написал:
а если использовать Power Query?
в данном случае я использую эксель просто как умную таблицу, где можно что-то найти, выделить, связать с другими данными через VCONNECT и тд. тут нет такой специфической задачи, под которую имело бы смысл написать power query request(ы).

З.Ы. заметил такую штуку - если в экселе открывать текстовый файл, где одна из колонок CAS-номера без кавычек и апострофов, и приделать этой колонке тип "Текст" при импорте, эксель ее не трогает, то есть, 7719-09-7 остается им же и в дату не превращается. Получается, при импорте вот это "умное преобразование" отключается. Значит как-то можно его выключать! как?

З.З.Ы. правда если с этой колонкой дальше начать что-то делать, эксель снова начинает умничать и превращает текст в дату
Изменено: AlexDen - 12.09.2024 16:34:18
 
Цитата
AlexDen написал:
делаем "найти и заменить" для этой ячейки
вот этот пункт сводит на нет все усилия по выставлению числового формата ячейки, т.к. при действии Найти и Заменить Excel всегда стремиться к определению и преобразованию типов, несмотря на форматы ячеек.

Если данные попадают из разных источников, то для того, чтобы хоть какие-то рекомендации дать на этот счет, надо знать как они оттуда попадают(импорт, копирование и вставка, выгрузка из сторонней программы и т.п.). Потому как для разных вариантов могут быть разные решения. Единого на все случае нет.
Цитата
AlexDen написал:
Значит как-то можно его выключать!
Нет, нельзя. При импорте Вы четко даете понять, что именно для этого столбца не надо пытаться определить тип. И это именно при импорте. В остальных случаях прекрасно работает выставление формата Текстовый(за исключением ситуации с Найти и Заменить).
Изменено: Дмитрий(The_Prist) Щербаков - 12.09.2024 16:35:00
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
вот этот пункт сводит на нет все усилия по выставлению числового формата ячейки, т.к. при действии Найти и Заменить Excel всегда стремиться к определению и преобразованию типов, несмотря на форматы ячеек.
если это стремление экселя к преобразованию типов отключить нельзя, тогда, да, остается только апострофы или кавычки дорисовывать
 
Я нашёл такое:
"Microsoft Excel предварительно запрограммирован, чтобы упростить ввод дат. Например, 12/2 изменяется на 2 декабря. Это очень разочаровывает, когда вы вводите то, что вы не хотите изменить до даты. К сожалению, нет способа отключить это. Но есть способы обойти его."


https://support.microsoft.com/ru-ru/office/%D0%BE%D1%82%D0%BC%D0%B5%D0%BD%D0%B0-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5­%D1%81%D0%BA%D0%BE%D0%B9-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D1%8B-%D1%87%D0%B8%D1%81%D0%B5%D0%BB-%D0%B4%D0%B0%D1%82%D0%B0%D0%BC%D0%B8-452bd2db-cc96-47d1-81e4-72cec11c4ed8
 
Цитата
написал:
Я нашёл такое:"Microsoft Excel предварительно запрограммирован, чтобы упростить ввод дат. Например, 12/2 изменяется на 2 декабря. Это очень разочаровывает, когда вы вводите то, что вы не хотите изменить до даты. К сожалению, нет способа отключить это. Но есть способы обойти его."

а вот Libreoffice не умничает и просто убирает кавычки. Конечно не вариант переходить на него, но тут он уделывает экселя.
 
Цитата
AlexDen написал:
а вот Libreoffice не умничает и просто убирает кавычки
Для справки:
LibreOffice, диалог "Найти и заменить", замена текста.

Для ячеек, не имеющих текстовый формат.
Если после замены текста содержание ячейки может быть интерпретировано как дата, то текст будет преобразован в число, соответствующее дате.

Для ячеек, имеющих текстовый формат.
При любой замене содержимое ячейки останется текстом.

То, что в Excel замена текста в ячейке текстового формата в некоторых случаях приводит к смене типа значения ячейки, является (известным) багом (см. ответ Дмитрия выше или, например, здесь).
Владимир
 
Цитата
я написал:
а вот Libreoffice не умничает и просто убирает кавычки. Конечно не вариант переходить на него, но тут он уделывает экселя.
я ж перед тем как это написать проверил. не планирую переходить с экселя на что-то иное, просто решил посмотреть. может и Numbers от Apple тоже "просто убирает кавычки" - не проверял. пока это не повод менять эксель на что-то другое


sokol92 написал:
> ... является (известным) багом ...


что ж, теперь он известен и мне. а то удивлялся, отчего некоторые CAS-номера в абсолютно разных документах от разных источников бывают в виде даты. теперь ясно - эти данные готовятся в Excel


P.S. Нет, раз такое дело, значит в надо при обработке списков вставлять доп условие что-то вроде:
если CAS-номер не содержит "-", то преобразовать его в нормальный вид, а уже потом что-то с ним делать
Изменено: AlexDen - 13.09.2024 08:16:34
Страницы: 1
Наверх