簡體   English   中英

多個VLOOKUP或INDEX MATCH

[英]Multiple VLOOKUP or INDEX MATCH

我正在嘗試使用INDEX MATCH返回基於多個條件的值。 有人幫助了我,但我找不到增加其他條件的方法。 我目前正在使用的公式是:

=IFERROR(INDEX(DATA!$H$2:$H$2000,SMALL(IF(DATA!$K$2:$K$2000="Yes",ROW(DATA!$A$2:$A$2000)-ROW(DATA!$A$2)+1,""),ROWS(DATA!$A$2:A2))),"")

這將基於對標准為“是”的答案,從我的數據列表中返回一個人的名字。

我需要再添加兩個條件以返回更少的結果。 這將基於月份和年份,兩者都以數字顯示在不同的單元格中,即102015 我只想在行中的其他值為“ YES”, 102015時返回索引列表。

如果您了解它們要執行的操作,那么這些增量和行號將變得不必要地復雜。

當您填寫時 ROWS(DATA!$A$2:A2)僅增加1,2,3...。 這可以簡化為ROW(1:1) 只要您意識到自己要返回H2:H2000 頭寸 ,就可以將ROW(DATA!$A$2:$A$2000)-ROW(DATA!$A$2)+1簡化為ROW($1:$1999) ,不是工作表上的實際行號。 請注意,所引用的簡化引用均不使用工作表名稱或列名稱。 他們根本沒有必要。

此外,當您將15子功能( SMALL )與Optiona 6一起使用時, AGGREGATE¹功能可以使條件快速工作(忽略錯誤)。 將不匹配的內容轉換為#DIV/0! 錯誤,您只剩下匹配的行。

XL2010及更高版本的標准公式:

=IFERROR(INDEX(DATA!$H$2:$H$2000, AGGREGATE(15, 6, ROW($1:$1999)/((DATA!$K$2:$K$2000="Yes")*(DATA!$L$2:$L$2000=10)*(DATA!$M$2:$M$2000=2015)), ROW(1:1))),"")

XL2007和更早版本的標准公式:

=IFERROR(INDEX(DATA!$H$2:$H$2000, SMALL(INDEX(ROW($1:$1999)+((DATA!$K$2:$K$2000<>"Yes")+(DATA!$L$2:$L$2000<>10)+(DATA!$M$2:$M$2000<>2015))*1E+99, , ), ROW(1:1))),"")

¹AGGREGATE函數是Excel 2010引入的。在早期版本中不可用。

暫無
暫無

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

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