Excel INDIRECT函数返回异常数值问题求助
Excel中INDIRECT引用日期返回序列号的问题解决
首先明确:Excel里的日期本质就是序列号——1900年1月1日对应数字1,11/24/2023对应的就是45254,这是Excel存储日期的底层逻辑。
你遇到的问题原因很简单:
- 直接用
=TSN!A2时,Excel会自动读取原单元格(TSN!A2)的格式设置,把序列号转换成日期显示出来。 - 但用
INDIRECT函数时,它只返回单元格的原始数值,不会继承原单元格的格式规则,所以直接显示了序列号45254。 - 而TSN!B2的数值47.529本身就是数字,不管有没有格式,显示的都是数字,所以用INDIRECT引用没问题。
解决方法有两种,按需选择:
- 方法1:设置目标单元格格式(推荐,保留日期的数值属性,方便后续计算)
选中Spread!A2,右键→设置单元格格式→选择「日期」分类下的对应格式(比如短日期),就能把45254转换成11/24/2023显示。 - 方法2:用TEXT函数格式化输出(返回文本型日期,适合只需要显示、不需要计算的场景)
修改公式为:=TEXT(INDIRECT("'"&$A1&"'!A2"),"mm/dd/yyyy")
这样直接返回格式化后的日期文本。
内容的提问来源于stack exchange,提问作者J. Martin
相关产品推荐
相关产品推荐

