2013-03-26 17 views
0

我有一列數據,我想根據從最早到最新的時間進行排序。使用公式將格式0d 22h 41min轉換爲任意格式的時間

數據的格式表現爲:

0D 22小時41分鐘,

0D小時3分鐘

等等

什麼是做到這一點的最好方法是什麼?我假設提取數字0,22和41,然後使用計算將其轉化爲幾分鐘,然後允許我重新排序它?

請指教最好的方式,如果可以的話,也可以配方。

回答

3

假設天小時和分鐘總是存在,然後用在A2數據嘗試在該式中B2轉換爲時間值:

=SUM(MID(0&A2,FIND({"d","h","m"},0&A2)-2,2)/{1,24,1440})

自定義格式B2作爲[h]:mm顯示總小時和分鐘。 .....然後你可以使用B作爲「鑰匙」

將與價值觀應付大99天的兩列進行排序 - 天數較高試試這個版本

=LEFT(A2,FIND("d",A2)-1)+SUM(MID(A2,FIND({"h","m"},A2)-2,2)/{24,1440})

+0

這是非常令人印象深刻的工作 - 謝謝,但是,我確實需要去99天以上...你可以調整你的公式或給我一些指導?關於 – Amster 2013-03-27 08:55:28

+0

我添加了一個修改後的版本,可以在任意天數上工作 – 2013-03-27 19:46:55

+0

謝謝,這很完美 - 感謝您的幫助:) – Amster 2013-04-05 13:04:59

1

您可以通過多種方式做到這一點,但一些簡單的字符串操作和連接可以在公式中使用:

假設

​​

首先,你必須提取HH和使用MID的毫米()函數

您可以通過使用FIND()函數來搜索'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.

希望有幫助。

0

假設你有你在A列的數據,單元格A1,A2等,你可以用下面的公式來提取天,小時和分鐘,然後添加了一切:

首先,提取物天進小區B1:

= LEFT(A1,FIND( 「d」,A1) - 1)

現在,小時到C1:

= MID(A1,FIND( 「d」,A1)+ 2,FIND( 「H」,A1) - 查找( 「d」,A1)-2)

和分鐘到D1:

= MID(A1,FIND( 「H」, A1)+1,FIND(「min」,A1)-FIND(「h」,A1)-1)

天的0

穿戴總和到E1:

= B1 * 24 * 60 + C1 * 24 + D1

現在排序上柱E.

另一種可能性是使用正則表達式查找和替換數據:

找到:

([0-9] {1,2})d([0-9] {1,2})H([0-9] {1,2})分鐘

取代:

= \ 1 * 24 * 60 + \ 2 * 24 + \ 3

This page描述了示例日期操縱替換行爲。