Отформатировать все ячейки в столбце с даты на текст

У меня есть документ excel с примерно 500 строками. Мне нужно отформатировать все ячейки, скажем, в столбце B от даты до текста.

Вот как это выглядит сейчас:

2012-06-15
2012-06-01
2012-06-14

Как это выглядит при форматировании в текст:

41075
41061
41074

Я понял, что это отметка времени, представляющая дни с 1 января 1900 года, верно? Во всяком случае, это не то, чего я хочу. Я хочу, чтобы значение поля было именно таким, какое оно есть, но с типом текста столбца. Я нашел различные решения для этого, используя такие функции: =TEXT(B1, "yyyy-mm-dd"), но это не переформатирование ячейки, а извлечение значения из одной ячейки, переформатирование его и представление в виде текста в другой.

Правило, за которым я следую: I want all cells in B column to have the type text without changing the value

Спасибо!


person Tim Brunsmo    schedule 14.02.2013    source источник
comment
Зачем вам нужно иметь его в виде текста - в чем проблема с отформатированным значением?   -  person Peter Albert    schedule 14.02.2013
comment
Можем ли мы предположить, что текстовое представление, которое вам нужно, используется где-то еще в Excel?   -  person glh    schedule 14.02.2013
comment
Также это значение введено или заполнено из другого источника/программы?   -  person glh    schedule 14.02.2013


Ответы (3)


Если у вас есть ситуация, когда столбцы с A по D являются датами из 500 строк, вы тогда:

  1. Используйте функцию =TEXT(A1, "yyyy-mm-dd"), которую вы описали в ячейке E1.

  2. Скопируйте эту формулу на 4 столбца в ширину и на 500 строк вниз.

  3. Затем скопируйте и вставьте значения в предыдущие ячейки.

Пример копирования:

Копировать

Вывод:

Вывод

person glh    schedule 14.02.2013

Вы правы, Excel хранит даты внутри как количество дней с 1 января 1900 года (за исключением незначительной ошибки високосного года).

Таким образом, я боюсь, вы не можете иметь оба:

  • Либо вы сохраняете значение, например. (41075) и просто отформатируйте как дату, чтобы она отображалась как 2012-06-15 -
  • Or you convert it to text format - but then you either
    • Lose the underlying value - if you convert it to the format you wish with a text function as you mentioned
    • Сохраните значение (41075), но не увидите дату
person Peter Albert    schedule 14.02.2013
comment
Спасибо за ваш ответ. - person Tim Brunsmo; 14.02.2013
comment
Спасибо за ваш быстрый ответ. Причина всего этого в том, что я собираюсь импортировать этот документ Excel в стороннюю службу, которая имеет странный способ обработки дат. Я наткнулся на другое решение: скопируйте все строки и вставьте их в текстовый редактор, например блокнот, затем скопируйте их из блокнота и обратно в Excel, таким образом перезаписав все ячейки. Не кажется ли странным, что в Excel нет более простого способа сделать это? - person Tim Brunsmo; 14.02.2013
comment
Работает ли импорт, если вы используете TEXT(...`для создания строки? - person Peter Albert; 14.02.2013
comment
Да, это так. Пока ячейка имеет тип строки (текст?), она работает. Они не исследуют ценность самого себя. Они просто проверяют тип ячейки и используют его. - person Tim Brunsmo; 14.02.2013

Если вы вводите значения, вы можете добавить ' перед значениями, чтобы сохранить их в виде текста.

e.g.

Пример вывода

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

Также попробуйте поиграть с разными типами текста для вашего стороннего сервиса, например. "2012-06-15" так как некоторые видят кавычки и удаляют их.

person glh    schedule 14.02.2013
comment
Проблема изначально не в том, чтобы представить их как текст, что я могу сделать (просто установите тип ячейки в текст и введите значение). Проблема в том, что у меня есть документ из 500 строк с 4 ячейками, содержащими даты в каждой строке. Теперь мне нужно, чтобы они были преобразованы без необходимости вручную изменять их все. - person Tim Brunsmo; 14.02.2013
comment
Я бы посоветовал вам использовать описанную вами функцию text и скопировать эту формулу на 4 столбца в ширину и на 500 строк вниз, а затем скопировать и вставить значения в предыдущие ячейки. - person glh; 14.02.2013