我在Excel中遇到问题。
当我在Excel 2016中打开CSV文件时,出现#NAME?
错误
在转换CSV文件之前,我使用的公式是:
=concatenate("+",substitute("A2"," ","+"))
和输出我正在以+ab+c
的形式获取XLSX文件
其中A2的值为ab c
但是当我将同一文件转换为CSV并重新打开文件时,输出将更改并显示为#NAME?
请帮助我解决这个问题。
答案 0 :(得分:0)
我在评论部分与OP交流的摘要。
我基本上看到了三种解决方案(尽管第三个解决方案不符合OP的标准,但是为了完整起见,我添加了这些解决方案):
Data > Get External Data > From Text
,然后执行导入步骤(选择定界符,该定界符将为,
您的案例),然后必须将所有列定义为TEXT
(这是最重要的步骤,请参见下面的屏幕截图)。这是100%可靠的解决方案。="+ab+c"
。将其保存为CSV并再次导入Excel时,它将仅在屏幕上显示+ab+c
。但是对于OP,CSV文件中的文本必须仅为+ab+c
,因此将不起作用。 最后一点,我无法(使用Excel 2013 for Windows 10)复制OP观察到的行为。打开文件时,CSV文件中的+ab+c
从来没有给我带来#NAME?
错误;但是,一旦我在该单元格中单击 ,Excel便不会让我ENTER
,除非我添加了一个'
来表明它是文本。但我仍然可以ESC
,不理会该单元格)。
我没有做任何详尽的测试,但是我观察到以下内容:
=
开头,则总是会出现错误(除非后面是双引号"..."
的文本字符串); +
或-
开头,则还必须有另一个运算符和数字。因此+ab+3
给出了错误,但+b1+a
没有给出。因此,Excel的行为在各个版本之间可能有所不同,或者任何其他设置都会对此产生影响。
这里仅作说明,此处是“文本导入向导”(您可以在{{1}下找到)的屏幕快照。在最后一步中(实际上,您仍然需要在下一步中定义必须将Excel放置在何处)。文本,无论是在新工作表中,还是在现有工作表中),您都必须选择所有列(带有shift或ctrl),然后选择Data > Get External Data > From Text
作为Text
。