從 Excel 中的儲存格取得時間

從 Excel 中的儲存格取得時間

我需要從 Excel 儲存格中的文字取得時間。文字包含工單編號、工單標題、時間日誌和百分比。所有這些都在一個單元格中。請參閱下面的範例:

12345678: The bottom part is incorrect 0:15h 0%

我需要得到0:15.我嘗試使用 LEFT 和 RIGHT 函數組合,但只有當最後一句的百分比僅為 1 位數時它才有效。百分比範圍為 0% - 100%。門票標題的長度也各不相同。

答案1

我用的是免費的reg-ex 取代插件* 為 Excel 新增了正規表示式功能,您可以使用下列公式:

=RegExFind(A2,"\d{1,2}:\d{1,2}")

在此輸入影像描述

* 我不隸屬於該加載項

答案2

Máté Juhász 的答案無疑是最簡單的。但是,如果您不想取得附加元件並且不熟悉正規表示式(並且不想學習),則可以使用更複雜的方法來使用內建函數來取得結果。如果您使用輔助列來避免重複,則可以稍微簡化。我將用它來解釋它是如何工作的。

在此輸入影像描述

所有“單字”都用空格分隔。票證標題可以有不同數量的單字。最後一個元素(百分比)位於最後一個空格之後,時間位於倒數第二個空格之後。 B 欄位使用下列公式計算空格數:

=LEN(A1)-LEN(SUBSTITUTE(A1," ",""))

該公式的工作原理是消除所有空格,然後計算縮短字串的字元數。在範例中,有 7 個空格。

C 列從時間開始剝離字串的結尾。公式為:

=MID(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),B1-1))+1,LEN(A1))

這是透過使用 SUBSTITUTE 功能來取代資料中未出現的任意目標字元(本例中為 CHAR(1))來取代時間之前的空格(即最後一個空格旁邊)要替換的特定實例。然後 FIND 定位該字元的位置,MID 從下一個位置開始提取字串的其餘部分。

D 欄的結果使用下列公式擷取時間:

=LEFT(C1,FIND("h",C1)-1)

它的工作原理是找到“h”並提取它前面的所有內容。

您可以在單一公式中執行此操作,而無需使用輔助列。如果將輔助儲存格參考替換為輔助儲存格公式,則該公式將如下所示:

=LEFT(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1))+1,LEN(A1)),FIND("h",MID(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1))+1,LEN(A1)))-1)

請注意,所有這些都假設乾淨的數據沒有尾隨空格。如果可能存在尾隨空格,請使用 TRIM() 包裝對 A1 的所有引用,或在輔助列中修剪 A1 並引用它以避免重複。

答案3

試試以下公式:

=TRIM(RIGHT(TRIM(LEFT(SUBSTITUTE(TRIM(E10);"h ";REPT(" ";99));99));5))

相關內容