我在 Excel 中有一张工作表,其中有一个计算出的“持续时间”字段,格式为 hh:mm:ss
我想知道的是,是否可以将该值转换/输出为另一列中的文本字符串,例如:02:45:00 将输出为 2Hrs 45Min
环顾四周,但没有发现任何有用的东西。也许不可能?
答案1
您没有说明当没有值时您希望发生什么 - 在您的示例中,没有秒数,并且您在秒数时不显示任何内容。或者,您只是没有在帖子中提到它,所以我为这两种情况都提供了解决方案!
您需要连接并使用文本
=CONCATENATE(HOUR(A1),"HRS ",MINUTE(A1),"MINS ", SECOND(A1), "SECS")
这将检查小时、分钟和秒是否存在,并且仅显示它们是否存在(遗憾的是公式很长)
=CONCATENATE(IF(HOUR(A4) >0, CONCATENATE(HOUR(A4), "Hr "),""), IF(MINUTE(A4)>0, CONCATENATE( MINUTE(A4),"Min "),""), IF(SECOND(A4)>0,CONCATENATE(SECOND(A4), "Sec"),""))
答案2
您可以使用 HOUR 和 MINUTE 函数
=HOUR(A1)&"Hrs "&MINUTE(A1)&"Min"
即使 A1 是文本,它也会解析。
答案3
更好的选择是使用 Excel 中的小时和分钟函数,然后使用连接函数来组合这些单独的字符串。
=CONCATENATE(HOUR(A8),"Hrs ", MINUTE(A8),"Min")
将输出2Hrs 45Min
您所发布的示例。
不太好看的是通过字符来解析单元格(但您可以在各种场景中使用 MID 函数!)
=CONCATENATE(MID(A1,1,2),"HRS ", MID(A1,4,2),"MIN")
它将输出02HRS 45MIN
您引用的单元格。
答案4
您可以简单地定义列的格式,无需转换或计算。
使用[hh]"Hrs "mm"Min"
作为格式,它将按照您的要求显示。