我需要從 Excel 儲存格中的文字取得時間。文字包含工單編號、工單標題、時間日誌和百分比。所有這些都在一個單元格中。請參閱下面的範例:
12345678: The bottom part is incorrect 0:15h 0%
我需要得到0:15
.我嘗試使用 LEFT 和 RIGHT 函數組合,但只有當最後一句的百分比僅為 1 位數時它才有效。百分比範圍為 0% - 100%。門票標題的長度也各不相同。
答案1
答案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))