在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。我相信这个解决方案可能会有更好的东西,我只是坚持这个。任何帮助将不胜感激。
答案 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