【问题标题】:Vlookup Text within a String字符串中的 Vlookup 文本
【发布时间】:2014-04-23 04:04:13
【问题描述】:

A ---------------------------------------------- ------------------------------------------------B

www.dog.com-------------------------------- 狗

www.firstcat.com================猫

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

关于格式的道歉。

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

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

谁能帮助我,告诉我上面的公式有什么问题。 另外,Vlookup 是否适合对其他两个 URL 做同样的事情? 最后,如果它(不)合适,那么最好的选择是否与 VBA 兼容?

【问题讨论】:

    标签: string excel vba wildcard vlookup


    【解决方案1】:

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

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

    怎么样:

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

    您当然可以对"*Cat*""*Pig*""*"&C1&"*" 之类的单元格引用执行相同操作。

    【讨论】:

    • 您好,Karl,对这个错误深表歉意。我对这些东西很陌生。只是想自动化一些工作。基本上,我并不是真的在寻找“狗”来完成任何事情。我基本上希望从一列中提取数据并以缩写形式将其移动到另一列,因此我的问题是。
    • 好吧,如果您知道缩写集并且它们实际上都是您的示例中的子字符串,那么我的建议将起作用。
    【解决方案2】:

    在另一个论坛上得到了这些解决方案。

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      相关资源
      最近更新 更多