在Excel中以mm:ss格式输入时间数据(小时数前无0 :)


16

我想将时间数据以mm:ss格式输入到Excel工作表中。问题是-尽管单元格格式为mm:ss,但是如果我输入如下数据:

12:33存储的实际值是12小时33分钟。如果我需要12分33秒,我需要输入0:12:33

有没有办法让单元格接受12:33作为mm:ss?


2
显示大于分钟的时间59,请将单元格设置为[MM]:SS。像:02:10:45将显示为130:45。但这显然不适用于输入。
Arjan

Answers:


6

时间通常以Hours:Minutes:Seconds格式输入,因此您不能更改此输入格式。您显然可以更改显示格式,但是不幸的是,您需要遵守输入格式。


看来没有办法解决我的问题,因为即使使用脚本也无济于事,因为格式化会掩盖用户实际键入的内容。
Dani

那么通用格式hh:mm:ss还是h:mm:ss?@Steve
傻眼了

我会说这是h:mm:ss@Shayan
Steve

14

正如Steve回答的那样,Excel将用户输入解释12:33为12h33m。您不能更改Excel接受用户输入的这种行为。

正如您在评论中提到的那样,用户会输入,12:33但意思是12分33秒。

这是一种变通方法,可获取正确的计算值。

  1. 将单元格A1(例如,用户输入12:33)的格式设置为[h]:mm
  2. =A1/60在单元格B1中输入公式
  3. 将单元格B1格式化为 [m]:ss

显示的值应与A1和B1中的相同。但是,B1将是您想要的实际值


2
真好 或者:将输入格式设置为字符串/文本值,然后使用类似TIMEVALUE转换的方法
Arjan

1
如果mm> 23
Alaa M

1
@AlaaM。感谢您的发现。答案已更新以解决问题。使用[h][m]
wilson

3

有解决办法!将此VBA代码放在您的工作表模块中,即:

  1. 打开Visual Basic编辑器(Alt- F11
  2. 在左上树视图中,双击要输入时间的表
  3. 在中央代码面板中,放置以下代码。
  4. 关闭VBE

使用此代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value < 0 Or Target.Value > 1 And Target.NumberFormat <> "h:mm" Then Exit Sub
    Application.EnableEvents = False
    Target.Value = Target.Value / 60
    Target.NumberFormat = "mm:ss"
    Application.EnableEvents = True
End Sub

如果您已经格式化了要输入数据的范围,请使用以下行作为第一行:

If Target.Value < 0 Or Target.Value > 1 Then Exit Sub

请注意,这将更改值和格式(每次输入时间)或0到1之间的值!如果要将其限制为某一列,请添加以下行:

If Target.Column <> 3 Then Exit Sub

或将此行限制在一定范围内

If Intersect(Target, Range("A2:A100") Is Nothing Then Exit Sub

2

完成工作时间的最简单方法

格式化单元格(A1) hh:mm

正常输入(07:22

格式化单元格(B1) hh:mm

正常输入(16:00

格式化单元格(C1) h:mm

将所有数据输入到单元格(C1)中,如下所示:=(A1+B1)/60


1

突出显示所需的单元格/列作为“持续时间”,右键单击鼠标以“设置单元格格式”。如果要以小时和分钟格式输入持续时间,请转到“自定义”并查找“ h:mm”。如果您还想包括秒,请单击“ h:mm:ss”。之后,您甚至可以将总持续时间加起来。

希望这可以帮助。


1

我发现最好在A列中输入分钟,然后在B列中输入秒。然后您可以对列进行求和。全部为普通数字格式。

接下来,将col B中的总和除以60,将秒数> 60转换为分钟,并将INT加到Col A Sum中,并将其余MOD保留在col B中。

另外,您可以通过使用公式= (A1+(B1/60))给出十进制分钟数来将col C作为十进制数字 。在C列的底部进行求和,然后应用公式将小数部分转换回秒,如下所示C22,即保持和的位置,然后C23输入公式=MOD(C22,1)*60

现在,在A23输入公式=INT(C22)中显示总分钟数,包括来自总和的分钟数C22


1

我遇到了同样的问题,这是我找到的解决方案:使用TIME函数输入公式,该函数将创建一个时间矩阵,=TIME(H,M,S)并根据需要设置其格式。您仍然需要每次输入0小时,因为数学,但这使整个过程变得无限可行。


0

以上解决方案。使用h:mm格式时,excel不会让您超过23。在格式中的小时数中加上方括号[h]:mm,您可以自由地超过23。

要计算以秒为单位的值,请将单元格设置为“常规”数字格式,然后键入以下公式

=HOUR(A1)*60+MINUTE(A1)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.