首页 > 解决方案 > 相同的间接公式在不同的计算机中工作方式不同

问题描述

我创建了一个工作表,它将从同一个工作簿中获取原始数据,并将其按正确的顺序、格式并对其进行一些计算,然后再将其反映到主表中。但是,昨天当另一个用户打开工作簿时,包含间接为用户返回错误的公式,当我打开它时,它工作正常。

这是一个示例公式:

=IFERROR(TIME(LEFT(INDIRECT("RawData!R" & ROW()+16 & "C" & COLUMN(); 0); 2); MID(INDIRECT("RawData!R" & ROW()+16 & "C" & COLUMN(); 0); 4; 2); 0); "")

该公式应该从“9:00-9:15”的目标单元格中​​得到“9:00”。对我来说,它给了我 9:00,但对于其他用户,它给出了一个错误。

进一步研究这个问题,当我在间接函数之外输入 N() 时,单元格为其他用户显示 0:00,这意味着间接函数没有返回错误,而是返回导致时间函数错误的文本。

虽然我可以通过在间接之外使用 Value() 来解决问题,但我想了解为什么会发生这种情况以使我的公式更加兼容。为什么会在一台 PC(用户)上间接返回文本,而在另一台 PC(我的)上返回一个数字?

标签: excelexcel-formula

解决方案


这在我看来很像一个格式/语言环境问题:检查单元格的值及其格式。还要检查它们的类型(是时间值还是看起来像时间值的字符串值)。在许多情况下,后者可能源自对齐方式(Excel 习惯于将数字/日期/时间向右对齐,而字符串通常向左对齐)。


推荐阅读