excel怎么筛选第二个字母前的全部数值

例:A-123GM 或者是 C-209-EIDM 或者是 E-321/FF有这三种情况,都混在同一列,怎么一次性筛选出前面的A-123 、C-209 、E-321可能我举得栗子太一样了,其实我的表格里面不是都到第五位的,还有什么C-4523/F之类的
如下图啦··
之前提问过,有人给过我这样的公式,
=LEFT(A1,MATCH(10,--MID(A1,ROW($1:$999),1)))
数组公式,按ctrl+shift+enter结束。 或则用下面公式:
=LEFT(A1,LOOKUP(,-MID(A1,ROW($1:$999),1),ROW($1:$999)))
我选了第二条,但是每次公式输入完之后,大部分还是可以得到我要的效果的,不过有的就会出现第二张图的情况··求解答!

=LEFT(A1,FIND(LOOKUP(10^50,1*MID(A1,MIN(FIND(ROW($1:$10)-1,A1&1/17)),ROW($1:$50))),A1)-1)&LOOKUP(10^50,1*MID(A1,MIN(FIND(ROW($1:$10)-1,A1&1/17)),ROW($1:$50)))   按组合键ctrl+shift+enter结束公式,下拉填充

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-22
关键是第二个字母位置无法确定,要用到VBA,自已写一个自定义的函数,判断ASC码在A-Z(65-90),a-z(97-122)的范围内的第二个字符,并以该字符的字符为长度,截取字符串就可以了追问

其实我要的结果是那些数据里面的以A-到Z-开头的那些数据,那些什么CST-D40都不是我要进行统计的

追答

Public Function iMid(str As String) As String
Dim i As Integer
Dim C As String
Dim n As Integer
For i = 1 To Len(str)
C = UCase(Mid(str, i, 1))
If Asc(C) >= 65 And Asc(C) <= 90 Then

n = n + 1
If n = 2 Then
iMid = Mid(str, 1, i)
Exit Function
End If
End If
Next i
End Function
如果是第二个字母前的iMid = Mid(str, 1, i-1),不含第二个字母,iMid = Mid(str, 1, i)含第二个字母

第2个回答  2014-07-22
CST-D40
正确结果是什么呢?追问

就是CST-D40,我们的编号也是很奇怪的··
你在算吗··
下面的是P-770SA/L(BLK)跟C-212F+CP167

相似回答