[英]excel find the second match to an index match formula
我有以下公式:
=INDEX(A:A;MATCH(1;(B:B=H1)*(C:C=I1)*(NOT(ISBLANK(D:D))))*((ISBLANK(E:E))));0))
現在我想從A:A列中提取第二個結果,該列與此公式和match函數中的條件匹配。 使用此功能,我只會得到第一個匹配(結果)的ABCDE,但是還有另一個FGHI也與此公式匹配。 但是它比第一個單元格少幾個單元格。 我的第一場比賽是ABCDE,而我的第二場比賽是FGHI。 我想獲取后者。 我嘗試了不同的方法,但無法解決這一問題。 請在這方面幫助我。 謝謝。
您將希望將整列引用縮減為更接近數據實際范圍的內容。 我的首選方法是將SMALL
與行號的INDEX
數組合並,該數組將替換原始公式中的MATCH
。
=INDEX(A$2:A$9999; SMALL(INDEX(ROW($1:$9998)+((B$2:B$9999<>H1)+(C$2:C$9999<>I1)+NOT(LEN(D$2:D$9999))+NOT(LEN(E$2:E$9999)))*1E+99;;); ROW(1:1)))
我使用了一個簡單的“查找和替換”將逗號列表分隔符更改為分號,因此如果您需要進行少量編輯才能在您的系統上工作,我深表歉意,
當錄制自己的目的,請記住, ROW($1:$9998)
是內 A $ 2的位置 :A $ 9999不工作表上的實際行。 ROW(1:1)
只是SMALL
的增量計數器,在您填充時將提供1、2、3等 。
哇! 謝謝。 這是最終的工作版本。 我的改編有一些小錯誤:
=INDEX(INDIRECT("'"&file_list!$C$3&"'!$F$2:$F$999"); SMALL(INDEX(ROW(INDIRECT("'"&file_list!$C$3&"'!$1:$998"))+((INDIRECT("'"&file_list!$C$3&"'!$B$2:$B$999")<>parameters!$C$3)+(INDIRECT("'"&file_list!$C$3&"'!$i$2:$i$999")<>parameters!$A$2)+NOT(LEN(INDIRECT("'"&file_list!$C$3&"'!$d$2:$d$999")))+(LEN(INDIRECT("'"&file_list!$C$3&"'!$H$2:$H$999"))))*1E+99;;); ROW(INDIRECT("'"&file_list!$C$3&"'!$2:$2"))))
你是英雄。
吉普的附錄:
除非您了解這是如何工作的,否則我離英雄很遠。 我嘗試將其添加到注釋中,但由於時間太長,因此我正在使用自己的編輯權限以期澄清。
如果您希望將來使用這些主體,那么了解Excel本機功能的組合如何工作非常重要。 第一個ROW(INDIRECT("'"&file_list!$C$3&"'!$1:$998")
將按書面形式工作,但會比ROW($1:$998")
更好。這只是返回一個數字(即匹配的行)在"'"&file_list!$C$3&"'!$F$2:$F$999"
。數字的來源無關緊要。公式中的條件決定了它是否為有效的行號,以及確實需要file_list!$C$3
的工作表名稱,因為正在檢查其單元格值。
以類似的方式,如果您想要'"&file_list!$C$3&"'!$F$2:$F$999"
的第二個匹配行,則ROW(INDIRECT("'"&file_list!$C$3&"'!$2:$2"))
應該為ROW(2:2)
'"&file_list!$C$3&"'!$F$2:$F$999"
。公式的這一部分只是SMALL
的增量。如果將row(1:1)放在單元格中並填寫,您將得到1,2,3等 。這將以SMALL(<a bunch of matching row numbers>, first)
然后SMALL(<a bunch of matching row numbers>, second)
然后SMALL(<a bunch of matching row numbers>, third)
等形式轉移到SMALL
函數中。您不是要返回Sheet1!A1,Sheet1!A2,Sheet1!A3等 。您想要的Allk是1,2,3等 ,作為k參數填充到SMALL
中。
Office.Microsoft.com Excel函數參考不一定總是最有用的地方,但是無論如何它們還是在這里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.