查找字符串列表会再次显示单词列表并返回值(Excel)

时间:2015-06-08 15:43:08

标签: string excel vlookup

在excel中,我有两张纸。在Sheet1 A列中,我有字符串。在Sheet2中,我有两列,列A包含一个可能位于Sheet1字符串中的单词,如果Sheet2,则列B具有我想要的返回值!A:在Sheet1的字符串中的任何位置找到A!A :一个。例如:

表1:

Col. A                             **Col. B (These are the results I WANT from Sheet2)**
stackoverflow excel blue pony        Group2
grapes monkey help me                Group1
random words not very creative       Group3

在表2中,您有

 Col. A     Col. B
 monkey     Group1
 excel      Group2
 creative   Group3

我一直在搞乱什么基本上归结为Sheet1的vlookup的一堆不同的迭代!B:B,但我永远无法让它正常工作。我一直专注于vlookups的原因是因为需要返回Sheet2中的值!B:B如果Sheet2!A:A如果在Sheet1中找到任何地方!A:A。我相信这个解决方案可能会有更好的东西,我只是坚持这个。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

由于修订问题修订公式

在Sheet1 B2中复制此公式

<button ng-repeat="providerName in externalProviders track by $index" ng-disabled="{{ $root.currentUser.LinkedLogins.indexOf(providerName) > -1 }}">

这应该适用于您的示例,但在实际情况下,您可能会得到错误的匹配,因为例如&#34; key&#34;的搜索值将与&#34; monkey&#34;匹配。为了防止这种情况,您可以使用仅与整个单词匹配的版本:

=LOOKUP(2^15,SEARCH(Sheet2!A$1:A$4,A2),Sheet2!B$1:B$4)

答案 1 :(得分:0)

这里有一个小VBA可能是你最好的选择......

Sub finder()

Dim ws1, ws2 As Worksheet
Set ws1 = ThisWorkbook.Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheet2")

Dim i As Integer

i = 1

Do Until ws2.Cells(i, 1).Value = ""
'The next line takes the value from sheet2, looks for it in sheet1 then puts 
'the value of the cell directly adjacent back into sheet2. This may fail if a 
'value is not found.

ws2.Cells(i, 2).Value = ws1.Range("A:A").Find(ws2.Cells(i, 1).Value).Offset(0, 1).Value
    i = i + 1
Loop

End Sub