我的时间跟踪应用程序以以下格式导出员工小时数:
xxh yym
我正在寻找一种将其转换为十进制小时数的方法。例如,
input(06h 30m)
return(6.5)
无法在 Google 表格或 Excel 上找到一种方法。我尝试创建一个新功能,但这远远超出了我的能力。我的编码经验很少。
谢谢你的帮助!
我的时间跟踪应用程序以以下格式导出员工小时数:
xxh yym
我正在寻找一种将其转换为十进制小时数的方法。例如,
input(06h 30m)
return(6.5)
无法在 Google 表格或 Excel 上找到一种方法。我尝试创建一个新功能,但这远远超出了我的能力。我的编码经验很少。
谢谢你的帮助!
在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 30m
将6.5
有关正则表达式语法的更多信息可以在本 教程中找到
另一个公式:
=24*TIMEVALUE(SUBSTITUTE(SUBSTITUTE(A1,"m",""),"h ",":"))
我不完全确定您所说的“输入”是什么意思,以及它是在单元格中还是在您正在解析的某种数据源中,并且不清楚所描述的“06h 30m”是否是单元格中的时间值使用自定义格式或者如果它是文本字段。
此答案假定数据是一个文本字段(在单元格 A2 中),并且您希望将数字作为小时数和一小时的小数返回,最长为 24 小时(因为我还假设这些是一天中的员工小时数) )。它假定总是有两位数的小时或分钟数,并且 xxh 和 yym 之间有一个空格:
=TIME(LEFT(A2,2),MID(A2,5,2),0)*24
我希望这至少能引导你朝着你想要达到的方向前进。
Function ConvertTime(hours, minutes)
return hours + (minutes/60)
End Function