2

(Примечание: этот ТАК вопрос похож, но меня интересуют решения, которые более масштабируемы. Отсюда и «пакетное преобразование» в заголовке. Кроме того, я первоначально разместил этот вопрос в StackOverflow, но потом понял, что меня особенно интересуют решения, не требующие программирования на VBA, поэтому я перенес вопрос в SuperUser, согласно предложению, приведенному здесь.)

Каков "наименее инвазивный" способ преобразования всех "ячеек даты и времени" электронной таблицы Excel в соответствующее строковое значение?

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

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

Идеальным методом был бы тот, который требовал бы только выбора ячеек даты и времени, которые должны быть превращены в строки, и применения требуемого преобразования "на месте". Я искал что-то подобное без успеха.

Я представлю лучшее решение, которое я нашел для этой проблемы (см. Ответы ниже), но я нахожу это решение чрезвычайно громоздким и подверженным ошибкам и хотел бы узнать о более безопасном и экономичном способе достижения тот же результат.

1 ответ1

3

(NB: я полный дурак с Excel. Я уверен, что есть менее громоздкие способы сделать то, что я опишу ниже. Я публикую это решение в надежде, что кто-то, кто действительно знает Excel, опубликует лучшее.)

Лучшее решение, которое я нашел до сих пор (основываясь на этом ответе SO), заключается в следующем. Предположим, что преобразуемые ячейки находятся в диапазоне A1:100 , и предположим, что столбец X не используется. Поместите следующую формулу в ячейку X1:

=TEXT(A1, "DD/MM/YYYY hh:mm:ss")

(Конечно, измените формат даты и времени в соответствии с вашими потребностями.)

Затем перетащите эту формулу во все ячейки в диапазоне X2:100 . Затем скопируйте диапазон X1:100 и вставьте его в диапазон A1:100 используя команду « Paste Special... с параметром « Values .

Наконец, Clear > All диапазон X1:100 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .