我遇到了一个问题,其中有一个 CSV 文件,其中的电话号码以国际化格式存储(+1-800-555-1234)。在 Excel 2007 中打开此 CSV 时,它会将这些数据转换为公式并显示结果(=1-800-555-1234;结果为 -2588)。
我如何告诉 Excel 将此字段作为字符串处理?
以下是一个示例 - 将其保存到 .csv 文件中,然后在 Excel 中打开以重现该问题:
Number,Name
+1-800-555-1234,Bob
+1-800-555-1200,Jim
答案1
打开一个空白工作表,然后选择“数据 > 获取外部数据 > 从文本”(Excel 2007 菜单布局)。然后,当您打开 CSV 文件时,您将获得“文本导入向导”,它将允许您将特定列指定为文本,而不是默认的“常规”。
您可能需要在向导的第一页上指定适当的文件来源编码(例如 Unicode (UTF-8)),以保留前导“+”字符。
另外,正如 Diago 所说,如果您将文件从 .csv 重命名为 .txt,然后在 Excel 中打开,您将获得文本导入向导,而无需经过“数据 > 获取外部数据...”。
答案2
保存文件时使用 TXT 扩展名而不是 CSV。这将强制启动文本导入向导,您可以使用它将列强制为文本。
我能找到的唯一其他方法是在 + 前面放一个撇号,即“+1-8000”。但是,导入时,您只能将其作为字符串的一部分。
从这CSV 的解释我只能推断这是使用 CSV 格式的局限性之一。
如果可能的话,我建议以 Xml 而不是 CSV 格式导入和导出。
答案3
右键单击单元格 --> 选择“设置单元格格式” --> 在“类别:”下选择文本。
或者在 CSV 文件中想要以文本形式查看的数据周围加上“ ”。
—JFV
答案4
使用该TEXT()
功能。
=TEXT(B1,"+1-800-555-1234")