您现在的位置是:首页 > Excel技巧>读取Excel长文字内容中的规格数据

优美文字控规格的书-读取Excel长文字内容中的规格数据

发布于2022-04-150人已围观

读取Excel长文字内容中的规格数据


优美文字控规格的书

 

优美文字控规格的书

 江苏大侠的方法:函数


取巧思路:可以发现我们要取的是单字节的字符,利用MIDB,FINDB,LENB等能区分双字节和单字节的文本函数来取巧。
优美文字控规格的书 以B8单元格为例,先用MIDB($B8,ROW($1:998),2)来提取两个字节长度的字符;再用LENB(TRIM取得去除空格后的字符长度,可以判断出长度为1的是规格的首末位置。
优美文字控规格的书 获得每种规格的首末位置后,用SMALL(位置数组,{1,3,5…})取出每种规格的起始位置。再用MIDB(B8,起始位置,ROW(1:99))提取一组字符。



当提取到双字节的前面一个字符串时,该字符串后面会有一个空格(可以理解为双字节的一半为空格),再用VLOOKUP("* ",…来匹配。




完整公式=IFNA(VLOOKUP("* ",MIDB($B2&"侠",SMALL(IF(LENB(TRIM(MIDB($B2,ROW($1:998),2)))=1,ROW($2:999)),COLUMN()*2-7),ROW($1:99)),1,),"")









也可以用MMULT来判断规格的起始位置=IFNA(VLOOKUP("* ",MIDB($B2&"侠",SMALL(IF(MMULT(N(MIDB($B2,ROW($1:998)+{0,1},1)=" "),{1;9})=1,ROW($2:999)),COLUMN()-3),ROW($1:99)),1,),"")









规格不重复的公式=IFNA(TRIM(VLOOKUP("* ",MIDB($B18,SEARCHB("?",$B18,FINDB(C18,$B18)+LEN(C18)),ROW(1:104)),1,))," ")




A.1.1.4 地面铺贴40mm宽ST-09卡地亚灰石材波打线
40mm ST-09









优美文字控规格的书


Excel小子的方法:VBA

Function tiqu(rg As Range, i) 'excel小子

    Dim re, m, mm

    Set re = CreateObject("vbscript.regexp")

    re.Global = True

    re.Pattern = "[x00-xff]+"

    Set m = re.Execute(rg.Value)

    If i > m.Count Then

        tiqu = ""

    Else

        tiqu = m(i - 1)

    End If

End Function



相关文章

文章评论

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

标签云

站长特荐