如何在 Excel 中按 hh:mm:ss(持續時間)排序

如何在 Excel 中按 hh:mm:ss(持續時間)排序

我有一列代表持續時間的數據,例如 33:15 - 30 分鐘 15 秒; 1:05:00 - 1小時5分鐘等

如果我嘗試對 AZ 進行排序,則 1 小時會在 30 分鐘之前排序。

有沒有辦法格式化資料以使其正確排序?格式化解決方案優於將此資料轉換為秒或其他內容。

答案1

歡迎來到 Excel 的精彩時代世界。起初令人困惑,但一旦你知道它們是如何運作的,就會很強大。

我認為在您的情況下沒有辦法僅通過格式化來做到這一點。但是,這應該可行(我假設您的所有時間都在 A 列中)

-Create this formula in B1 and copy it all the way down:
=IF(A1>=1,A1/60,A1)
-Format Column B as h:mm:ss
-Select Column B and Copy, then Paste Special, Values.
-Sorting Column B should now work fine.

這就是簡短的答案。如果您想了解發生了什麼以及公式是如何得出的,請繼續閱讀:

1.

  -Start a new sheet.
    -In A1, type 1:05:00
    -Click on A1, then Format, Cells. Note it has applied a custom format of h:mm:ss

Excel 非常聰明,而且該數字相當明確,因此它假設您的意思是小時:分鐘:秒並相應地設定格式。

2.

-In A2, type 33:15
-Note how it automagically changed it to 33:15:00
-Click on A2, then Format, Cells. Note a custom format of [h]:mm:ss

這是模稜兩可的。您的意思是「33 分 15 秒」還是「33 小時 15 分鐘」? Excel 不確定。它的行為是假設您指的是小時和分鐘。 h 周圍的 [] 基本上表示「在小時部分顯示超過 24 小時」。

3.

-In A3, type 0:33:15 (note the 0: before)
-Click on A3, then Format, Cells. Note a custom format of h:mm:ss

由於您已經消除了歧義,它再次假設您再次表示小時:分鐘:秒並相應地格式化。

4.

-In A4, type 23:15
-Note how it leaves it as 23:15
-Click on A4, then Format, Cells. Note a custom format of h:mm

W..T..F?為什麼它的格式與#2 不同?因為您輸入的數字小於 24(即小時) - 仍然不明確,並且它仍然假設您的意思是小時和分鐘...但格式不同。

5.

-In A5, type 1:00:00
-Click on A5, then Format, Cells. Note a custom format of h:mm:ss
-Change the format to General and note that the underlying number is .041667 (i.e. the percentage of a day)

6.

    -In A6, type 24:00:00
    -Click on A6, then Format, Cells. Note a custom format of [h]:mm:ss
    -Change the format to General and note that the underlying number is 1 (i.e. a full day)

差不多了...

7.

-Now click on B2 and enter this formula:
=A2/60 (i.e. convert from hours to minutes)
-Click on B2, then Format, Cells. Note a custom format of [h]:mm:ss
-Note that it now shows 0:33:15, which is what you want

8.

-Now click on B1 and enter the same formula:
=A1/60 (i.e. convert from hours to minutes)
-Click on B1, then Format, Cells. Note a custom format of h:mm:ss
-Note that it shows 0:01:05 - damn - that's *not* what you want.

保持目標...

9.

-Click on B1 again and enter this formula instead:
=IF(A1>=1,A1/60,A1)
-Click on B1, then Format, Cells. Enter a custom format of h:mm:ss
-Note that it still shows 1:05:00 (i.e. it didn't change it to 0:01:05)

基本上這個公式是:

-Checks to see if the number in a cell is greater than or equal to 1
-If it is greater than 1, divide by 60 (i.e. convert hours to minutes)
-If it's less than 1, leave it alone.

答案2

如果 Excel 將您的值解釋為實際時間,那麼它們將按數字排序,而不是按字母順序排序。但也存在問題。

如果您輸入分鐘和秒為 30:00,Excel 會將其解釋為 30 小時 0 分鐘。您必須輸入 30 分鐘作為 0:30:00 或 0:30。因此,這樣輸入的 30 分鐘將被解釋為大於輸入為 1:30 的一小時三十分鐘。輸入數字後應始終檢查公式欄,以確保 Excel 記錄了您想要輸入的值。

CompWiz 錯過了這種複雜性,而 Craig 的例程恰好可以解決您的特定問題。但是,即使該值小於一小時,您也必須輸入 h:mm:ss 格式的時間,這表示您的值始終會被正確解釋。

答案3

簡而言之...時間...如小時/分鐘/秒數實際上被排序為字元資料。 1 小於 30,1h 小於 30m,因為 1 小於 3。顯示為小時/分鐘/秒...或者分別輸入資料 00:30:00 和 01:00:00。

第一個是恰當的方法,但實現起來非常複雜...第二個更簡單且總是有效,因為 00: 每次都在 01: 之前。

相關內容