簡體   English   中英

另一個工作簿中的EXCEL搜索列(按列中的文本)

[英]EXCEL Search Column in another Workbook by Text in Column

我在文件中打開了兩個工作簿。 我的第一個工作簿是“交易”,第二個是“搜索”。 我想搜索“交易”的A列(有一個ID),而不是“搜索的E列”(有0到50個ID;如果有超過1個ID,則用逗號隔開)。 因此,從本質上講,我想知道是否已搜索“交易” A列的ID。

我嘗試使用:

 =COUNTIF(Searches!E:E,"*Trades!A1:A11412*")

 =COUNTIF(Searches!E:E,Trades!A:A)

 =LOOKUP(REPT("z",255),CHOOSE({1,2},"ANOTHER VALUE",LOOKUP(1000,FIND($E$1:$E$11412,Trades!A:A),$E$1:$E$11412))) [The data is rows 1 - 11412]

非常感謝!

在單元格J2中的sheet Trades中嘗試此操作,並向下復制直到最后一個單元格:

=IF(ISNA(LOOKUP(2^15,FIND(A2,Searches!$E$2:$E$2000),Searches!$E$2:$E$2000)),"NOT FOUND","FOUND")

讓我知道這是否是您想要的。

它在這里: 它返回行號

=MATCH("*"&A2&"*",Searches!$E$1:$E$2000,0)

更新資料

您可以像這樣將兩者結合起來,如果找到,它將為您提供行號,如果找不到,它將返回“ NOT FOUND”:

=IF(ISNA(LOOKUP(2^15,FIND(A2,Searches!$E$1:$E$2000),Searches!$E$1:$E$2000)),"NOT FOUND",MATCH("*"&A2&"*",Searches!$E$1:$E$2000,0))

讓我知道它是否仍然適合您。

第二次更新

實際上,您最好使用VBA代碼而不是公式。 但是,這里是返回查詢的所有匹配的公式。

=IFERROR(INDEX(ROW(Searches!$E$2:$E$2000),SMALL(IF(ISNUMBER(FIND($A2,Searches!$E$2:$E$2000)),ROW(Searches!$E$2:$E$2000)-ROW(Searches!$E$2)+1),COLUMNS($L2:L2))),"")

交易表的J2中嘗試此操作,然后按ctrl + shift + enter計算公式。 這是一個數組公式。 然后將公式復制並拖動到J2的右側,將其拖動到M2 ,然后選擇J2:M2並將其向下拖動到數據表的最后一行,但這只是為了了解該公式,將其向下復制到第一百行,然后讓excel計算並查看運行情況。 請注意,這些數組公式需要很長時間才能計算出來!!! 這就是為什么您需要一個vba代碼來做到這一點的原因!

但是,如果每個查詢的命中數超過4,則需要將公式擴展到M2 ,直到Z2之類的東西,然后由您來確定每個查詢可能達到的最大命中數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM