将格式0d 22h 41min转换为使用公式的任何格式的时间
我有一列数据,我想根据从最早到最新的时间进行sorting。
数据的格式如下所示:
0d 22h 41min,
0d 2h 3min
等等。
什么是最好的方法来做到这一点? 我假设提取数字0,22和41,然后使用一个计算将其转化为几分钟,这将允许我重新sorting?
请build议最好的方法,如果可以的话也可以配方。
假设天数和分钟总是存在,然后用A2中的数据在B2中尝试这个公式转换为时间值:
=SUM(MID(0&A2,FIND({"d","h","m"},0&A2)-2,2)/{1,24,1440})
自定义格式B2为[h]:mm
以显示总小时数和分钟数……然后可以使用B作为“键”对两列进行sorting,
这将处理99天的价值 – 更高的天数尝试这个版本
=LEFT(A2,FIND("d",A2)-1)+SUM(MID(A2,FIND({"h","m"},A2)-2,2)/{24,1440})
你可以通过多种方式来实现,但是在公式中可以使用一些简单的string操作和连接:
假设
A1 = 0d 22h 41min A2 = 0d 2h 3min
首先你必须使用MID()函数提取hh和mm
您可以通过使用FIND()函数来search“d”,“h”和“m”的位置来提取它们之间的数字。
最后你简单地使用“:”连接22:41,
对于A1(放入另一列,即B1):
=MID(A1, FIND( "d", A1) + 2, SUM( FIND( {"d","h"}, A1) * {-1,1}) - 2 )&":"&IF(LEN(MID(A1, FIND( "h", A1) + 2, SUM( FIND( {"h","m"}, A1) * {-1,1}) - 2))=2,MID(A1, FIND( "h", A1) + 2, SUM( FIND( {"h","m"}, A1) * {-1,1}) - 2 ),"0"&MID(A1, FIND( "h", A1) + 2, SUM( FIND( {"h","m"}, A1) * {-1,1}) - 2 ))
结果应该是
A1 = 0d 22h 41min A2 = 0d 2h 3min B1 = 22:41 B2 = 2:03
应该注意,如果发生“3分钟”,我们使用LEN()函数来查看分钟值是1个字符还是2个字符长。 如果是2个字符(即41),则保持原样。 如果是1个字符(即3),则将其前面的0代入03。
希望有所帮助。
假设你在列A,单元格A1,A2等有你的数据,你可以使用下面的公式提取天,小时和分钟,然后添加一切:
首先,将天提取到单元格B1:
= LEFT(A1,FIND(“d”,A1) – 1)
现在,小时进入C1:
= MID(A1,FIND(“d”,A1)+2,FIND(“h”,A1)-FIND(“d”,A1)-2)
D1分钟:
= MID(A1,FIND(“h”,A1)+ 1,FIND(“min”,A1)-FIND(“h”,A1)-1)
把总和的天数放入E1:
= B1 * 24 * 60 + C1 * 24 + D1
现在排在E栏
另一种可能性是使用正则expression式来查找和replace数据:
找:
([0-9] {1,2})d([0-9] {1,2})h([0-9] {1,2})min
更换:
= \ 1 * 24 * 60 + \ 2 * 24 + \ 3
本页面描述了date操作示例中的replace行为。