2

我的时间跟踪应用程序以以下格式导出员工小时数:

xxh yym

我正在寻找一种将其转换为十进制小时数的方法。例如,

input(06h 30m)
return(6.5)

无法在 Google 表格或 Excel 上找到一种方法。我尝试创建一个新功能,但这远远超出了我的能力。我的编码经验很少。

谢谢你的帮助!

4

4 回答 4

1

Google Sheets上,您可以REGEXEXTRACT()按照以下公式通过内置函数执行此操作(假设您的文本存储在A1

=REGEXEXTRACT(A1,"^(\d{2})h \d{2}m") + REGEXEXTRACT(A1,"^\d{2}h (\d{2})m")/60

REGEXEXTRACT()是一个正则表达式提取函数。的输入文本06h 30m具有以下模式^\d{2}h \d{2}m,其中

  • ^指的是字符串的开头
  • \d指个位数,\d{2}表示两位数
  • h, ,m都是出现在参考文本中的字符。

因此,通过使用()我们需要从文本中提取的部分和简单的算术,您可以06h 30m6.5

有关正则表达式语法的更多信息可以在本 教程中找到

于 2018-07-03T22:57:19.113 回答
1

另一个公式:

=24*TIMEVALUE(SUBSTITUTE(SUBSTITUTE(A1,"m",""),"h ",":"))
于 2018-07-03T20:26:34.763 回答
0

我不完全确定您所说的“输入”是什么意思,以及它是在单元格中还是在您正在解析的某种数据源中,并且不清楚所描述的“06h 30m”是否是单元格中的时间值使用自定义格式或者如果它是文本字段。

此答案假定数据是一个文本字段(在单元格 A2 中),并且您希望将数字作为小时数和一小时的小数返回,最长为 24 小时(因为我还假设这些是一天中的员工小时数) )。它假定总是有两位数的小时或分钟数,并且 xxh 和 yym 之间有一个空格:

=TIME(LEFT(A2,2),MID(A2,5,2),0)*24

我希望这至少能引导你朝着你想要达到的方向前进。

于 2018-07-03T19:51:58.317 回答
0
Function ConvertTime(hours, minutes)
     return hours + (minutes/60)
End Function
于 2018-07-03T20:15:24.617 回答