我在 Excel 中有以下字串:C37S25FF0000TD. 在 7 個不同的單元格中,我需要根據這些方向提取 7 個子字串:
- 第一個單元格必須包含直到第一個數字的字母。在這種情況下,它必須只包含
C. - 第二個單元格必須包含出現的第一個數字(這個數字也可以有兩個以上的數字)。在這種情況下,它必須只包含
37. - 第三個單元格必須包含以下字母,直到下一個數字。僅在這種情況下
S。 - 第四個單元格必須包含接下來的兩位數(它們始終是兩位數)。在這種情況下
25。 - 第五個單元格必須包含接下來的 6 個字符。在這種情況下
FF0000。 - 第六個單元格必須包含下一個字符。在這種情況下
T。 - 第七個單元格必須包含最后一個字符。在這種情況下
D。
有人能幫我嗎?由于子字串可以具有可變長度,我不知道如何MID()正確使用該函式。提前致謝。
uj5u.com熱心網友回復:
讓我想起了
中的公式B1:
=LET(A,A1,B,LEFT(A,LEN(A)-8),C,TEXTSPLIT(B,SEQUENCE(10,,0),,1),D,TEXTSPLIT(B,C,,1),E,MID(RIGHT(A,8),{1,7,8},{6,1,1}),HSTACK(TOROW(VSTACK(C,D),,1),E))
uj5u.com熱心網友回復:
編輯以允許在第二個子字串中使用前導零
下面是一組公式,它們考慮了一些子字串可能具有不同長度的事實。
一些公式使用僅在 Office 365 中找到的函式。但是,也可以使用早期版本的替代品:
Letters up to first number: = LEFT(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789"))-1)
Next first full number (variable number of digits:
=LET(s,MID(A1,LEN(B1) 1,LEN(A1)),
arr, MID(s,SEQUENCE(LEN(s)),1),
len, MATCH(TRUE,ISERR(-arr),0),
LEFT(s,len-1))
Subsequent letter(s):
=LET(s,MID(A1,SUM(LEN(B1:B2)) 1,LEN(A1)),
pos,MIN(FIND({0,1,2,3,4,5,6,7,8,9},s&"0123456789")),
LEFT(s,pos-1))
Next two characters: =MID(A1,SUM(LEN(B1:B3)) 1,2)
For the subsequent substrings, we can count from the right:
First 6 of the last 8 characters: =MID(A1,LEN(A1)-7,6)
Penultimate character: =MID(A1,LEN(A1)-1,1)
Last character: =RIGHT(A1)

uj5u.com熱心網友回復:
因此,基于您給出的單個示例,并且不對更改位置做出任何假設:

您可以根據需要通過使用 len() 和 find() 擴展技術來編輯以處理任何可能包含額外數字等的數字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/486402.html
