语法search列中的string

考虑到这一点,我可能需要一些VBA,但如果我能避免它,这将是伟大的。

我有以下excel表单(见图片)

在这里输入图像说明

目标:我想在列B中列C的列C的合成search的结果。在我的情况下,列B将yes,tata,well列A有I2010等。

我已经尝试了一个vlookupI2010是针对特定的string,例如I2010IS-IPI不是其中的一部分。

任何build议都欢迎。

谢谢

用法

 andylookup(A1, C1:D4, "Not Found!") 

码:

 Function andyLookup(strInput As String, rngTable As Range, defaultvalue As String) As String Dim strArray() As String Dim i As Integer Dim strOut As String Dim temp1 As Variant strArray = Split(strInput, ",") For i = 0 To UBound(strArray) temp1 = Application.VLookup(strArray(i), rngTable, 2, 0) 'if not found, apply default value If IsError(temp1) Then strOut = strOut & defaultvalue & "," Else strOut = strOut & temp1 & "," End If Next 'remove trailing comma strOut = Left(strOut, Len(strOut) - 1) andyLookup = strOut End Function 

结果

 yes,toto,tata,well 

在B1中,input:

  =IF(FIND(C1,$A$1)>0,D1,"") 

然后拖下来。 这将取决于你想要在你的工作表中做什么。 需要更多的解释来更加适应你的需求,但是这至less给你一个出发点。

或者使用VBA的Find

 Sub Main() MsgBox LookupStr(Range("A1"), Range("B1:B4")) End Sub Function LookupStr(rng1 As Range, rng2 As Range) As String Dim rng3 As Range Dim rng4 As Range For Each rng3 In rng2 Set rng4 = rng1.Find(rng3.Value, , xlFormulas, xlPart) If Not rng4 Is Nothing Then LookupStr = LookupStr & rng3.Offset(0, 1) & vbNewLine Next End Function