excel - 将表示负时间值的文本转换为数字或时间值以进行相加 (Excel)

标签 excel time excel-formula negative-number

我有一个电子表格(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/

相关文章:

excel - 如何从一列数据中过滤对称词?

java - 为什么时区与 java 中的 main 方法和表单 Web 应用程序不同

excel - 如何在 Excel 中将 hh :mm:ss. 000 转换为毫秒?

excel - 如何计算Excel中两张表之间不重复值的数量

vba - 使用 Excel VBA 将 Powerpivot 连接更改为 csv 文件

excel - 在 token 函数中产生多个值(MS excel)

excel - 将文本连接到不同行和列的一个单元格中

excel - 使用excel为每个人生成表格分配

java - Java 中的轻量级 XLSX 阅读器

c - 我需要更好的解决方案来获取 C 中程序的执行时间