字符串中的Vlookup文本

时间:2014-04-23 04:04:14

标签: string excel vba wildcard vlookup

A ---------------------------------------------- -----------------------------------乙

www.dog.com -------------------------------- Dog

www.firstcat.com ================ Cat

www.internet.com/pig =============猪

关于格式化的道歉。

我在使用VLookUp时遇到了一些问题。基本上我想缩写A列中的URL,并将此缩写放在B列中,如上图所示。要以www.dog.com为例,我想出了以下公式:

=VLOOKUP("*"Dog"*",A:A,1,True)("Dog","")

有人可以帮帮我,并告诉我上述公式有什么问题。 另外,Vlookup是否适合与其他两个URL一起使用? 最后,如果(不)合适,那么最佳选择是否与VBA兼容?

2 个答案:

答案 0 :(得分:1)

我不确定你真正想做什么。但即使不了解你的目标,我也认为这个公式有很多错误。

=VLOOKUP("*"Dog"*",A:A,1,True)("Dog","")
  1. 您使用通配符查找未正确连接的值。
  2. 你的表数组A:A应该是A:B
  3. index_num应为2。
  4. range_lookup参数应为false。
  5. 我不知道(“狗”,“”)正试图完成什么。
  6. 怎么样:

    =VLOOKUP("*Dog*",A:B,2,FALSE)
    

    您当然可以使用"*Cat*""*Pig*"或使用"*"&C1&"*"等单元格引用执行相同操作。

答案 1 :(得分:0)

无论如何在另一个论坛上获得了这些解决方案。

B1  =LOOKUP(9.99999999999999E+307,SEARCH($E$1:$E$3,A1),$F$1:$F$3)
B2  =LOOKUP(9.99999999999999E+307,SEARCH($E$1:$E$3,A2),$F$1:$F$3)
B3  =LOOKUP(9.99999999999999E+307,SEARCH($E$1:$E$3,A3),$F$1:$F$3)

对于VBA宏

Option Explicit
Option Compare Text
Sub ExtractData()
Dim dcp, i As Long
Dim c As Range
dcp = Array("Dog", "Cat", "Pig")
Columns(2).ClearContents
For Each c In Range("A1", Range("A" & Rows.Count).End(xlUp))
  For i = LBound(dcp) To UBound(dcp)
    If InStr(c, dcp(i)) Then
      c.Offset(, 1) = dcp(i)
      Exit For
    End If
  Next i
Next c
End Sub