excel - 我收到 #NAME 错误?在 excel 2016 中打开 CSV 文件时
问题描述
我在 Excel 中遇到问题。
当我在 Excel 2016 中打开 CSV 文件时,#NAME?
出现错误
我在转换 CSV 文件之前使用的公式是:
=concatenate("+",substitute("A2"," ","+"))
和我得到 XLSX 文件的输出为+ab+c
其中 A2 的值为 ab c
但是当我将同一个文件转换为 CSV 并重新打开文件时,输出会改变并给出#NAME?
解决方案
我在评论部分与 OP 的交流总结。
我基本上看到了三种解决方案(虽然第三种不符合OP的标准,但为了完整性我添加了):
- 不要“打开” CSV 文件,而是导入(在现有或新工作簿中):,
Data > Get External Data > From Text
然后完成导入步骤(选择分隔符,这将,
在您的情况下),然后您必须将所有列定义为TEXT
(这是最重要的一步,见下面的截图)。这是一个 100% 万无一失的解决方案。 - 除了使用 Excel,您还可以使用另一个 CSV 查看器(我从 OP 了解到,同事需要在继续发送之前检查文件)。这在不允许使用其他工具或同事不合作的大型组织中当然可能不可行。
- 可以修改公式,使输出变为
="+ab+c"
。当它以 CSV 格式保存并再次导入 Excel 时,它只会显示+ab+c
在屏幕上。但是对于 OP,CSV 文件中的文本必须是 just+ab+c
,因此不会起作用。
最后一句话,我无法(使用 Excel 2013 for Windows 10)复制 OP 观察到的行为。 当我打开文件时,+ab+c
在 CSV 文件中从来没有给我错误;#NAME?
但是,一旦我单击单元格,Excel 不会让我ENTER
这样做,除非我添加了一个'
以表明它是文本;但我仍然可以ESC
不理会牢房)。
我没有做任何详尽的测试,但我观察到以下内容:
- 如果文本以您开头,
=
则总是会出现错误(除非后跟双引号中的文本字符串"..."
); - 如果它以
+
or开头-
,则还必须有另一个运算符和数字。所以+ab+3
给出了错误,但+b1+a
没有。
因此,Excel 的行为可能因版本而异,或者任何其他设置都会影响这一点。
只是为了说明,特此附上文本导入向导的屏幕截图(您可以在下面找到Data > Get External Data > From Text
。在最后一步中(实际上,您还有另一个步骤,您必须定义 Excel 必须将文本放在哪里,或者在新的工作表中,或在现有工作表中)您必须选择所有列(使用 shift 或 ctrl)并Text
选择Column data format
.
推荐阅读
- python - 有人可以解释一下 np.less_equal.outer(range(1,18),range(1,13))
- c++ - 如何使用 libtins 捕获 HTTPS 数据包?
- spring - 使用带有 Spring Security 的 Spring Boot 启用 CSRF 相关问题时,如何修复它?
- python - 如何在 PyOpenGL 中旋转某个对象(四边形)?
- javascript - How to create a new class instance from within an instance?
- facebook-graph-api - Where to get product-catalog-id
- sql - 如何将特定行值转换为配置单元中的列标题
- javascript - Canvas, how to set line dash of line?
- node.js - 服务| -v | ubuntu 终端中的任何命令都不起作用,而在 intellij 的本地终端中它正在工作
- gitlab - GitLab API get commit count of a branch