我收到了一个 Excel 电子表格,其中包含“花费的时间”列,其中包含标准 Jira 时间跟踪格式的值,分为天、小时和分钟:
Time Spent (Jira format)
------------------------
1d 7h 30m
30m
20d 5m
它无法重新生成 - 它来自某个特定的时间点,并且人物已经移动。我需要将这些时间转换为分钟数 - 例如上面的结果应该是:
Time Spent (minutes)
--------------------
1890
30
28805
这一切都需要在 Excel 中进行,理想情况下仅使用适用于所有此类时间跨度的公式 - 如果可能的话,宁愿避免使用 VBA。
最佳答案
将其分解为步骤。
多少天?如果它包含“d”,那么我们需要“d”左侧的字符:(乘以 24
表示小时或乘以 1440
表示分钟)
IF(ISERROR(FIND("d",A1)),0,LEFT(A1,FIND("d",A1)-1))
多少小时?好吧,如果它包含“h”,那么我们想要“h”左边的数字。如果我们捕获左边的 2 个字符,那将是一个 2 位数字,或者一个空格和一个 1 位数字。然后我们可以使用 TRIM
去除多余的空格:(再次乘以 60 分钟)
IF(ISERROR(FIND("h",A1)),0,TRIM(MID(A1,FIND("h",A1)-2,2)))
多少分钟?这与 Hours 基本相同,但查找的是“m”而不是“h” - 并且也不需要转换它。
IF(ISERROR(FIND("m",A1)),0,TRIM(MID(A1,FIND("m",A1)-2,2)))
将所有内容放在一起,这次包括对分钟的转换:
=IF(ISERROR(FIND("d",A1)),0,1440*LEFT(A1,FIND("d",A1)-1))+IF(ISERROR(FIND("h",A1)),0,60*TRIM(MID(A1,FIND("h",A1)-2,2)))+IF(ISERROR(FIND("m",A1)),0,TRIM(MID(A1,FIND("m",A1)-2,2)))
{EDIT} 更新了字符串以单位数分钟/小时开头的代码:
=IF(ISERROR(FIND("d",A1)),0,1440*LEFT(A1,FIND("d",A1)-1))+IF(ISERROR(FIND("h",A1)),0,60*TRIM(MID(" "&A1,FIND("h",A1)-1,2)))+IF(ISERROR(FIND("m",A1)),0,TRIM(MID(" "&A1,FIND("m",A1)-1,2)))
关于excel - 如何在 Excel 公式中将 Jira 耗时格式转换为分钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49895538/