You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何让Excel不将数字识别为日期?解决导入数据误判问题

解决Excel将导入的"3.2"识别为日期的问题

我太懂这种糟心的情况了——你的系统用逗号做小数分隔符,Excel硬生生把XML里拿到的"3.2"当成了日期格式(把点号认成了日期分隔符),直接转成了03.02.2020,连替换操作都不管用。别着急,这里有几个直接有效的解决办法:


方法一:修改公式直接转换为正确数字

这是最一劳永逸的方式,我们可以在现有公式基础上,把返回的文本里的点号替换成逗号,再强制转换成数字:

用双减号(--)快速转数字:

=--SUBSTITUTE(FILTERXML(WEBSERVICE("http://iss.moex.com/iss/securities/SBER/dividends.xml?iss.meta=off"),"//document//data//rows//row[1]/@value"), ".", ",")

或者用VALUE函数明确转换:

=VALUE(SUBSTITUTE(FILTERXML(WEBSERVICE("http://iss.moex.com/iss/securities/SBER/dividends.xml?iss.meta=off"),"//document//data//rows//row[1]/@value"), ".", ","))

原理:SUBSTITUTE把XML返回的"3.2"里的.换成你系统用的小数分隔符,,再通过--或者VALUE把文本格式的数字转换成真正的数值,Excel就不会再把它识别成日期了。


方法二:先以文本格式导入再转换

如果你不想改公式,可以先让Excel以文本形式接收数据,再转换成正确的数值:

  • 先把目标单元格的格式设置为文本(右键单元格→设置单元格格式→数字→文本)
  • 重新运行你的原公式,此时会显示原始的"3.2"文本
  • 选中这个单元格,点击「数据」选项卡→「分列」
  • 在分列向导里:
    1. 步骤1选「分隔符号」,点击下一步
    2. 步骤2取消所有分隔符选项,点击下一步
    3. 步骤3在「列数据格式」里选「常规」,然后点击「高级」,在弹出的窗口里把「小数分隔符」设为.,「千位分隔符」设为你系统用的符号,确定后完成分列

这样Excel就会把"3.2"正确转换成你系统格式的小数(比如3,2)。


为什么之前的替换操作没用?因为Excel已经把"3.2"自动转换成了日期的序列号(本质是数字),此时单元格里存的根本不是"3.2"这个文本,自然搜不到.来替换。必须先确保数据以文本形式保留,再做转换才有效。

内容的提问来源于stack exchange,提问作者empenoso

火山引擎 最新活动