Excel中用IF函数如何截取我需要的内容?用left,right,mid函数配合if,怎样截取我需要的内容。如图所示,用if函数,根据A列的幢,层,库,座,号,路,来判断,并截图后面的内容;如果没有所判断的条件,则显示为1。因为工作性质,所需要判断的Excel内容达到数万条,请大神指教

解决方案 »

  1.   

    用函数做不了,用VBS吧,可以使用以下vbs函数。
    方法一:
        对每个字符串从右到左找第一个数字,找到后将连续的数字返回方法二:
       按你的要求从右到左找关键字(幢,层,库,座,号,路等),找到后取前面的连续数字返回。
    InStrRev 函数可返回一个字符串在另一个字符串中首次出现的位置。搜索从字符串的末端开始,但是返回的位置是从字符串的起点开始计数的。InStrRev 函数可返回下面的值:
        如果 string1 为 ""(零长度) - InStr 返回 0
        如果 string1 为 Null - InStr 返回 Null
        如果 string2 为 "" - InStr 返回 start
        如果 string2 为 Null - InStr 返回 Null
        如果 string2 没有找到 - InStr 返回 0
        如果在 string1 中找到 string2,InStr 返回找到匹配字符串的位置。
        如果 start > Len(string1) - InStr 返回 0
      

  2.   

    Function 房号(a As Range)
    Dim b As Object
       Application.Volatile
      With CreateObject("vbscript.regexp")
        .Global = True
        .Pattern = "(\d+)(?=[幢|层|库|座|号|路|房|卡])"
           Set b = .Execute(a.Value)
           If .test(a.Value) Then
             房号 = b.Item(b.Count - 1)
           Else
             房号 = 1
           End If
      End With
    End Function