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