如何從一個單元格提取僅前兩個字母和6位數字?即。列1將有aa111111,bb222222,ccccc,dd12,eeee1從Excel中提取任何前兩個字母和6位數字並將其複製到另一個單元
我只想在這種情況下複製aa111111和bb222222。
謝謝, 亞歷
如何從一個單元格提取僅前兩個字母和6位數字?即。列1將有aa111111,bb222222,ccccc,dd12,eeee1從Excel中提取任何前兩個字母和6位數字並將其複製到另一個單元
我只想在這種情況下複製aa111111和bb222222。
謝謝, 亞歷
試試這個簡短的宏:
Sub KopyKat()
Dim N As Long, i As Long, K As Long
Dim s As String
N = Cells(Rows.Count, 1).End(xlUp).Row
K = 1
For i = 1 To N
s = Cells(i, 1).Value
If Len(s) = 8 _
And Mid(s, 1, 1) Like "[a-zA-Z]" _
And Mid(s, 2, 1) Like "[a-zA-Z]" _
And IsNumeric(Mid(s, 3)) Then
Cells(K, 2).Value = s
K = K + 1
End If
Next i
End Sub
如果字符串是在A:然後在B1(和複製下來):
=IF(LEN(A1)>7,IF(AND(CODE(LOWER(MID(A1,{1,2},1)))<>CODE(UPPER(MID(A1,{1,2},1))),ISNUMBER(MID(A1,{3;4;5;6;7;8},1)*1)),LEFT(A1,8),""),"")
這是一個陣列式,並且必須以CTRL確認+轉移+進入。
運行評估公式顯示會發生什麼以及它是如何工作:)
使用VBA,那麼這將做到:
Sub CopyMe()
Dim x As Variant, i As Long
For Each x In Range([A1], Cells(Rows.Count, 1).End(xlUp)).Value2
If x Like "[a-zA-Z][a-zA-Z]######" Then
i = i + 1
Cells(i, 2) = x
End If
Next
End Sub
這是另一種方法。該公式循環遍歷字符串查找6位數字,此時它將採用前兩個字符(只要它們存在)並返回8個字符的字符串。否則它返回一個空字符串。
=IFERROR(MID(A1,SUMPRODUCT(ROW($A$1:$A$100),--ISNUMBER(VALUE(MID(A1,ROW($A$1:$A$100),6))))-2,8),"")
循環100次,所以將與字符串的工作高達106個字符的最大長度。要使用公式,請將您的字符串放在列A中,然後將此公式放入單元格B1(例如)並拖動下拉