Остановите Excel от преобразования вставленных копий числовых / текстовых значений в дату


38

Я копирую и вставляю некоторые данные из таблицы HTML в Excel. Но Excel автоматически конвертирует некоторые текстовые или числовые значения в дату! Когда я меняю формат, число искажается, число примерно такое же, как 4112523 (Excel, вероятно, интерпретирует ячейку как дату, а затем преобразует ее в число или что-то в этом роде ...)

Существует хитрость для импорта файлов CSV , но есть ли решение, когда вы вставляете свои данные непосредственно из веб-браузера?


Вы пробовали пользовательскую формулу?
Джереми Джон

Вот похожий вопрос stackoverflow.com/q/13082641/1370465
Jook

@JeremyJohn - пользовательская формула? Что вы имеете в виду?
Томас

8
Тот факт, что любое программное обеспечение считает наиболее подходящим способ поведения, предполагает, что вы хотите, чтобы оно переформатировало любую информацию, которую вы ему предоставили, потому что, конечно, вы не хотели, чтобы оно было ТАКИМ ... без простого и очевидного способа его отключения. ... это единственное глупое дизайнерское решение и досадная вещь в Excel. Я не должен был щелкать по мастеру импорта, если все, что я пытаюсь сделать, это скопировать / вставить из одного CSV в другой. Чертова вещь - это число в одном CSV. Почему на Божьей зеленой земле я хочу, чтобы она вставила дату? Какой идиот это придумал?
Мэтт Уэлч

2
Перед вставкой отформатируйте весь лист как текст. Теперь данные, которые вы вставляете, не будут переформатированы или даже проанализированы для вас каким-либо образом!
ДанО

Ответы:


4

Попробуйте это, у меня получилось:

Данные - Импорт внешних данных - Новый веб-запрос и следуйте указаниям мастера

Это так просто.

С уважением!


спасибо, хороший совет! Но это все же преобразует поля ...
Томас

2
Я нашел опцию импорта «Отключить распознавание даты», которая сделала свое дело !! Так что (импорт) это единственный способ, который работает для меня!
Томас

К сожалению, это работает только при копировании с веб-источника. Если это, например, копирование из MS Access, это невозможно.
Томас

1
Импорт внешних данных у меня тоже работал с MS Access, вы просто ищете исходный файл .mdb. Вы работаете с офисом 2007+?

8
Почему это принятый ответ? Это не касается копирования / вставки вообще.
ДанО

26

Это определенно клуге, и это единственное, что я решил сделать. Я пришел сюда в поисках более элегантного решения.

У меня есть небольшое улучшение для этого.

  1. Вставьте данные в электронную таблицу как есть.
  2. Выделить все и отформатировать как текст
  3. Вставьте снова то, что вы сделали в первый раз, но на этот раз в качестве значений.

Это избавляет вас от необходимости считать столбцы и строки и т. Д.

Если у вас есть данные, которыми вы на самом деле хотите быть числами, датами и т. Д., Гораздо проще правильно их переформатировать с этой стороны, чем с другой. Поскольку числа не будут автоматически конвертироваться, я использовал текст в столбцах столбца, выбрав «с разделителями», но сняв отметки со всех разделителей. Это имеет тот же эффект, что вход в каждую ячейку и нажатие клавиши ввода, чтобы Excel снова ее распознал. Уродливо, но это работает.


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

Внимание: набранные номера, такие как «00001», теряют свои отступы. Они преобразуются в 1, а затем в «1». Оригинальный номер не подлежит восстановлению. Решение Тибо работает хорошо.
Олег Мельников

MS советует то же самое: support.office.com/en-us/article/…
Александр

Примечание: не работает из Word. Работает ли из Блокнота.
Алан Бальё

17

Самый простой способ.

1. Copy the original Data
2. Paste to Notepad (Prefer Notepad++)
3. Change the Cell Properties to TEXT
4. Copy All from Notepad
5. Paste back to Excel.

Хорошо, так для миллионов клеток вы делаете это миллион раз?
Томас

Вы можете выбрать весь столбец сверху. Он выберет все, и скопировать и вставить в блокнот.
Широ

1
Это работает! Вы даже можете начать с шага 3! Выберите весь лист, отформатируйте как текст, вставьте! сделанный.
ДанО

Это то, чем я в конечном итоге занимаюсь, потому что простое изменение данных на текст в Excel не всегда работает, например, если у вас есть какой-то «текст», который оказывается длинным числом (коды продуктов и т. Д.), Excel отображает его в научной записи ,
user535673

Excel тупой. ПОЧЕМУ ОНИ ДЕЛАЮТ ЭТО НАМ ??? Тем не менее, ваше решение является единственным, который последовательно работает.
лесовод

10

Перед вставкой выберите столбец, в котором будет храниться значение без даты. Щелкните правой кнопкой мыши. Выберите «форматировать ячейки». Затем выберите «текст» в качестве формата и нажмите «ОК».

Теперь вставьте, но вставьте, используя опцию «соответствовать формату назначения».


Это не работает для меня.
лесовод

Для форматирования «Текст» работает, а «Общий» не работает. Деталь, которую я пропустил. Спасибо, Пол.
Гонконг

2
  1. Откройте пустую книгу
  2. Нажмите на данные
  3. Нажмите из текста
  4. Найдите свой CSV / TXT-файл
  5. Нажмите кнопку "Далее
  6. Выберите разделитель
  7. Нажмите кнопку "Далее
  8. Используйте полосу прокрутки, чтобы найти столбец, который вы хотите защитить, и нажмите на него
  9. Выберите текст в формате данных столбца
  10. Нажмите Готово
  11. Нажмите ОК

Данные теперь будут импортированы без преобразования даты.


1

Параметры / Переход

оценка формулы перехода - включить

PS

и забудьте о уже вставленных и сохраненных данных. знак равно


спасибо, но эта опция не проверена!
Томас

1
Большой! Это работает! К сожалению, он искажает другие данные ... в другом столбце в форме "01/05/1998" есть дата и из нее вычисляется 0,0001001 :-) :-(
Томас

1
И это должно быть "запись формулы перехода" вместо этого ... и обратите внимание, что этот параметр для каждого листа ..
Томас

0

Попробуйте следующие варианты:

1) Выберите ячейки и перейдите в «Формат» -> «Ячейки» -> «Номер» и выберите «Текст» для выбора.

ИЛИ

2) При вставке из MS Word вставьте его с помощью опции «Специальная вставка» и выберите «Только значения» в диалоговом окне.


1
1) не работает - номер уже извращен, когда я меняю формат на текст. 2) не работает - Специальная вставка не содержит стандартного предложения, а только: HTML, текст в Unicode, текст. Потому что я вставляю html контент.
Томас

0

Это немного круто, но если данные могут быть вставлены нормально (без использования Специальной вставки), это обычно работает:

  1. Отформатируйте все пустые ячейки, где даты будут отображаться как текст.
  2. Щелкните правой кнопкой мыши при вставке и выберите «Соответствие формату назначения».

Однако будьте осторожны, если вы вставите числа в предварительно отформатированные ячейки, они также будут преобразованы в текст, и вам придется использовать значение () или другое, чтобы вернуть их (в Excel В 2013 году вы получите предварительный просмотр того, куда будут перемещаться данные, просто наведя курсор на кнопку «Вставить», поэтому я обычно делаю это, а затем преобразую столбцы, в которые сначала попадают строки типа даты).


Это не работает для меня.
лесовод

0
  1. В вашем интернет-браузере: Файл / Сохранить страницу как / Сохранить как веб-страницу, Заполните / "назовите"
  2. Откройте Excel (2007), Файл / Открыть / «Назовите его» Файл, который вы сохранили в # 1

0

Расширение ответа Алекса Робилотто для объекта буфера обмена, не отформатированного как «текст».

  • Например, это работает для веб-объектов буфера обмена

Шаги:

1. Paste the data into the spreadsheet as is.
2. Select all and format the cells as text
3. Paste original clipboard object again over what you did the first time
   - But this time select "Paste Special..." and select "Text".

Примечание: вставка в качестве значения не является опцией для нетекстового веб-объекта буфера обмена.


0

Выделите все ячейки и измените их формат на «Текст».

Затем выберите Paste -> Match Destination Formatting.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.