我在Excel中有大量数据。这些数据都应该被视为文本,但在某些单元格中,Excel“神奇地”将数据更改为数字。这会在电子表格的另一部分搞砸我的vlookpup()函数,我需要覆盖Excel的自动数据类型检测。
如果我手动浏览单元格,并将'附加'到每个数字单元格,它就可以工作。我只是不想手工做几千个细胞。
例如,这有效:
手动输入'209
这不起作用:
手动键入209
,右键单击并格式化为文本。
答案 0 :(得分:14)
如果不能选择更改列的格式,有时可以创建另一个“vlookup friendly”列,并保留主列。
这是我曾经使用过几次的技巧:
说'混合'列是A列。
在B栏中,输入公式:
=CONCATENATE(A1)
或正如Jean-François在评论中指出的那样,更短的版本:
=A1 & ""
然后向下拖动到底行。
B列将是所有字符串。然后VLookup可以使用B列。
答案 1 :(得分:5)
如Jean所说,将单元格设置为“文本”格式应该可行。在任何版本的Excel中,最简单的方法是:
右键单击单元格,“格式化单元格”,“数字”选项卡,选择“文本”格式。
答案 2 :(得分:5)
在“数据”选项卡下,打开“文本到列”向导,并将“列数据”格式设置为“文本”。目标单元格可以设置为原始数据单元格,但它将使用文本格式替换原始格式。例如格式化的其他方面使用此方法不会更改粗体,颜色,字体等。
答案 3 :(得分:3)
您是否尝试将单元格的数字格式设置为“文字”?
在Excel 2003中:格式>细胞......>数字>类别:文字。
我没有更新的Excel版本,但它必须是类似的东西。
答案 4 :(得分:1)
我尝试了以上所有但没有奏效。然后在数字前添加了一个撇号。只有这样才能从指数表示法改为文本。
答案 5 :(得分:0)
如果您已经拥有数据并且在每个单元格中的数据前面手动添加引号都不是一个选项,您可以使用帮助列并写入
="'"&A1
B1中的,其中A1是对单元格的引用,并将B1中的公式向下拖动到底部。此时您将看到引号,您需要将B列中的数据粘贴为值(CTRL + C& ALT + E + S和选择值,或者从顶部菜单中粘贴特殊值)。然后用'(引用)找到+替换'(引用),你将有一个列强制显示值,并在数字的每个数字表示前面引用一个引号。
答案 6 :(得分:0)
已针对Office 365 / Excel 365更新:
CONCATENATE已被弃用,并由CONCAT代替。
此方法仍然有效,即我需要7E10
才能显示为7E10,而不是7.00E+10
Microsoft文档来源here.