阻止excel将复制粘贴的数字/文本值转换为日期


38

我正在将html表中的某些数据复制粘贴到excel中。但是excel会自动将一些文本或数字值转换为日期!当我更改格式时,数字是错误的,数字类似于4112523(excel可能将单元格解释为日期,然后转换为数字或类似的数字...)

有一个导入CSV文件的技巧,但是当您直接从Web浏览器粘贴数据时,有什么解决方案吗?


您尝试过自定义公式吗?
杰里米·约翰

这是一个类似的问题stackoverflow.com/q/13082641/1370465
Jook 2012年

@JeremyJohn-自定义公式?你什么意思?
Tomas 2012年

8
任何软件都认为最合适的行为方式是,假设您希望它重新格式化提供给您的任何信息,因为您肯定不是故意以这种方式...没有简单而明显的方式来禁用它...是关于Excel的唯一愚蠢的设计决策和令人讨厌的事情。如果我要做的只是将一个CSV复制/粘贴到另一个CSV,则我不需要单击导入向导。friggin是一个CSV中的数字。为什么我要在上帝的绿色土地上贴上日期?是什么白痴设计的?
Matt Welch 2014年

2
粘贴之前,将整个工作表格式化为文本。现在,您粘贴的数据将不会以任何方式重新格式化,甚至不会为您分析!
DanO 2014年

Answers:


3

试试这个,对我来说很有效:

数据-导入外部数据-新的Web查询并遵循向导

很简单

问候!


谢谢,很好的提示!但是它仍然可以转换字段...
Tomas 2012年

2
我发现一个有效的导入选项“ Disable Date Recognition”!因此,(导入)这是对我有效的唯一方法!
Tomas 2012年

不幸的是,这仅在从Web源复制粘贴时有效。例如,如果它是从MS Access复制粘贴,则无法使用。
Tomas 2012年

1
导入外部数据对我来说也适用于MS Access,您只需查找.mdb源文件。您是否正在使用Office 2007+?

8
为什么这是公认的答案?它根本不解决复制/粘贴问题。
DanO 2014年

26

这绝对是一团糟,这是我唯一想做的。我是来这里寻找更优雅的解决方案的。

我对此有一点改进。

  1. 将数据原样粘贴到电子表格中。
  2. 全选并格式化为文本
  3. 再次粘贴您第一次执行的操作,但这一次作为值。

这使您不必计数列和行等。

如果您确实有数据,希望实际上是数字,日期等,那么从这一点正确地重新设置格式要比从另一端正确地设置格式容易得多。由于数字不会自动转换,因此我将文本用于列上的列,选择“定界”,但取消选中所有定界符。与进入每个单元格并按Enter键使Excel再次识别它具有相同的效果。丑陋,但是行得通。


7
真正的诀窍是必须事先将单元格格式化为文本。第一个粘贴有助于确定之后要覆盖哪些单元格。好建议!

注意:带填充的数字(例如“ 00001”)会丢失其填充。这些将转换为1,然后转换为“ 1”。原始号码不可恢复。Tibo的解决方案效果很好。
Oleg Melnikov


注意:在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.

好吧,那么对于百万个细胞,您可以完成百万次?
Tomas 2014年

U可以从顶部选择整个列。它将全选,然后复制并粘贴到记事本中。
Shiro 2014年

1
这可行!您甚至可以从第3步开始!选择整个表,格式为文本,粘贴!完成。
2014年

这就是我最终要执行的操作,因为仅在Excel中将数据更改为文本并不总是有效,例如,如果您有一些“文本”恰好是长数字(产品代码等),则Excel以科学计数法显示它。
user535673

Excel是愚蠢的。为什么要对我们这样做???但是,您的解决方案是唯一始终有效的解决方案。
theforestecologist

10

粘贴之前,选择将保留非日期值的列。右键点击。选择“格式化单元格”。然后选择“文本”作为格式,然后单击“确定”。

现在,继续粘贴,但是使用“匹配目标格式”选项进行粘贴。


这对我不起作用。
theforestecologist

对于格式设置,“文本”有效,而“常规”无效。我错过的细节。谢谢保罗。
HongPong

2
  1. 打开空白工作簿
  2. 点击数据
  3. 点击文字
  4. 找到您的CSV / txt文件
  5. 点击下一步
  6. 选择您的分隔符
  7. 点击下一步
  8. 使用滚动条找到您要保护的列,然后单击它
  9. 从列数据格式中选择文本
  10. 点击完成
  11. 点击确定

数据现在将被导入而无需日期转换。


1

选项/转换

转换公式评估-启用它

聚苯乙烯

而不用担心已经粘贴和保存的数据。=(


谢谢,但是未选中此选项!
Tomas 2012年

1
大!这可行!不幸的是,它会颠倒其他数据...另一列中有一个日期,格式为“ 01/05/1998”,它会从中计算出0,0001001 :-) :-(
Tomas,

1
它应该是“过渡公式项”,而不是..和注意,这个选项是每片..
托马斯

0

尝试以下选项:

1)选择单元格,然后转到格式->单元格->数字,然后选择文本作为选择

要么

2)从MS word粘贴时,使用选择性粘贴选项粘贴它,然后在对话框中选择“仅值”选项


1
1)不起作用-当我将格式更改为文本时,数字已经被弄乱了。2)不起作用-“选择性粘贴”不包含标准报价,仅包含:HTML,Unicode文本,文本。因为我要粘贴html内容。
Tomas 2012年

0

这有点混乱,但是如果可以正常粘贴数据(不使用选择性粘贴),通常可以正常工作:

  1. 格式化日期将落入文本的所有空单元格。
  2. 粘贴时单击鼠标右键,然后选择“匹配目标格式”。

但是,请小心b / c,如果将数字粘贴到预先格式化的单元格中,它们也将转换为文本,并且您必须使用value()或类似的方法将其取回(使用Excel 2013年,您可以预览数据将仅停留在“粘贴”按钮上的位置,因此我通常会这样做,然后将类似日期的字符串首先放在其中的列进行转换。


这对我不起作用。
theforestecologist

0
  1. 在您的Internet浏览器中,“文件” /“另存为” /“另存为网页”,完成/“命名”
  2. 打开Excel(2007),文件/打开/“命名”保存在#1中的文件

0

Alex Robilotto 对于剪贴板对象的答案的扩展名,格式化为“文本”。

  • 例如,这适用于基于Web的剪贴板对象

步骤:

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".

注意:“粘贴为值”不是基于Web的非文本剪贴板对象的选项。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.