【问题标题】:Display time from number in excel number format以excel数字格式显示数字的时间
【发布时间】:2013-10-17 09:37:19
【问题描述】:

我目前有一个表,其中包含一组日期列,然后每一行都有一个人名,在每个日期下,一个数字表示他们在培训中完成的分钟数。即 2013 年 1 月 10 日的 5 个示例行可能是 30、25、60、45、15。我希望能够在 HH:MM:SS 内对其进行格式化,但保持数据自身相同,以便进行适当的计算可以在数据上完成。

  1. 这可以使用 excel 数字格式吗?
  2. 如果不是,是否可以使用 VBA 以外的任何其他工具?
  3. 如果这只能使用 VBA 实现,是否可以仅在公式中将 HH:MM:SS 转换回 MM。

【问题讨论】:

  • + 1 好问题 :) 让我想了一会儿...

标签: excel number-formatting


【解决方案1】:

在 Excel 中,时间以数字形式存储,1 天(=24 小时)代表数字“1”,即小时和分钟是“1”的小数;

因此,要将数字“45”(表示分钟)转换为 Excel 时间,您将使用 =45/60/24 并将格式设置为时间,例如“毫米:ss”。 (为您的 pt 2 和 3 建议的答案)

您可以按照与原始时间相同的方式使用如此转换的时间进行计算。如果您添加时间并期望结果 > 00:59:59 分钟或 > 23:59:59 小时,请使用“[hh]:mm:ss”或“[mm]:ss”自定义格式字符串。

最简单的方法是在单元格中输入“0:45”直接输入“45”作为时间。

要退出几分钟,您可以使用 =MINUTE(<datetime>) ... 结果是 0..59 ... 所以超过 60 分钟您还需要使用 =HOUR(<datetime>)

编辑: 如果您只是热衷于显示“45”为“45:00”,请使用自定义格式00":00"(意思是显示2数字后跟常量字符串“:00” ...它将显示数值2为“02:00”,数值45显示为“45:00”;有点假,但是......;)

【讨论】:

  • 我想避免更改数据,因为可能有大约 25 - 30 行和最多 365 列(可能需要编辑大约 11,000 个单元格)。所有数据都来自导出,如果我要开始更改数据,这将违背试图通过使用数字格式使其更简单的目标。
  • 无需更改...如果只是为了显示,请使用上述公式在原始“45”旁边/下方创建另一个单元格并将其显示为“mm:ss”;实际上@Siddharth 通过使用 range/pastespecial/divide 方法除 /24/60 来做同样的事情
【解决方案2】:

这是一种非常有趣的方法。此方法不涉及VBAFormulas

假设您的 Excel 工作表如下所示

现在在工作表的任何空白单元格中输入60。出于演示目的,我将在上述范围以下进行...例如在 Cell A4

接下来复制您的单元格A4 (cell which has 60),然后右键单击范围A1:E2 并单击Paste Special。接下来选择Paste下的ValuesOperation下的Divide

你会得到这个。

现在将单元格A4中的值更改为24并重复上述过程。

你会得到这个

现在只需将您的范围A1:E2 自定义格式为[hh]:mm:ss,您就会得到结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多