我有一个电子表格(Excel 的 Office 2007 版本),其中充满了负时间值的文本条目,例如“-0:07”,表示员工完成一项工作的时间比预期少了 7 分钟。我需要对这些条目进行数学计算,并且正在寻找比迄今为止我提出的更优雅的公式/方法。
我知道 1904 年日期系统和 * 或/by 24 来回转换,问题是得到一个将文本输入识别为负时间值的公式。
我尝试过 value()、*1,如果数字是正数,它们都适用于文本字段,但“-”似乎把它们弄乱了。即使粘贴特殊/添加也无法将这些识别为数字。
这是我想出的方法来完成工作,但对我来说太难看了:
=IF(LEFT(E5,1)="-",((VALUE(RIGHT(E5,LEN(E5)-1)))*-1.0),VALUE(E5))
显然,在此示例中我的文本输入位于单元格 E5 中。
这是可行的,所以我并不迫切需要解决方案,但出于教育目的(和更小的代码),我想知道是否有更好的方法。有人有更短、更简单的建议吗?
谢谢。
附注- 这里有一个有趣的花絮,我在工作中使用 Excel,但不在家里使用,因此我将示例电子表格上传到 Google 文档,它实际上正确处理了这些条目上的 Value() 命令。很奇怪吧?
再次感谢您的任何建议。
最佳答案
Excel 不处理单元格中的时间跨度。它只与时间有关。当您执行“00:07”时,它会转换为 0.0048611,与 1900 年 1 月 1 日上午 12 点 07 相同。因此,如果您执行 2 分钟减去 7 分钟,最多只能得到晚上 11.55 分。
你的做法是唯一的方法。
关于excel - 将表示负时间值的文本转换为数字或时间值以进行相加 (Excel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11471868/