如何在不同的Excel表格中search范围内的单元格内容

我正在为以下schemesearch公式(如果存在):在工作簿中,在单元格“A1”的表单“A”和单元格“B”中,我有“罗杰斯” “B”,在单元格“B1”:“B20”我有一系列的“FirstName LastNames”

我要查找的是如果在该范围内find单元“A1”的内容,则在书“B”的范围“B1:B2O”的范围内的书“A”中search单元“A1”返回“是”,如果没有find,返回“否”。

我已经尝试了SEARCH,FIND,ISNUMBER,IF,IF ERROR等几种组合,但是没有一个为我工作,导致我相信,我可能没有input正确的公式。

任何帮助,高度赞赏。

可能有一个更漂亮的方法来做到这一点,但与一个数组公式(CSE公式),你可以做:

=IF(SUM(IF(NOT(ISERROR(FIND(A1,Sheet2!B1:B20))),1,0))>0, "Yes", "No") 

input时按Ctrl + Shift + Enter。 这将testingB1:B20范围内的每个单元格,看它是否包含A1 。 如果是这样,它不会抛出一个#VALUE错误。 里面的IF将会报告1 ,随着更多的发现将会被汇总。 最后,外部的IF将会看看数字是否大于0,并会说YesNo

VBA方法也可以使用。 您将创build一个子例程(通过在工作簿打开时键入ALT + F11)并以编程方式告诉macros要search的内容以及要返回的内容。 对公式编码方法的唯一真正的优点是更容易阅读和理解应该发生的事情,但效率并不高。

例:

 Sub FindLast() Dim EApp as Excel.Application Dim ThisBook as Excel.Workbook Dim ShtA as Excel.Worksheet Dim ShtB as Excel.Worksheet Dim SrchR as Excel.Range Dim srchStr as String Dim FindR as Excel.Range Dim foundVal as Boolean foundVal = False Set EApp = GetObject("Excel.Application") Set ThisBook = EApp.ActiveWorkbook Set ShtA = ThisBook.Worksheets("A") Set ShtB = ThisBook.Worksheets("B") Set SrchR = ShtA.Range("$A$1") srchStr = SrchR.Value Set FindR = ShtB.Range("$B$1:$B$20") For Each VarRange in FindR If InStr(VarRange.Value, srchStr) > 0 Then foundVal = True End If Next If foundVal = True Then SrchR.Offset(0,1).Value = "Yes" Else SrchR.Offset(0,1).Value = "No" End If End Sub