excel多條件篩選公式
目標:
實現用公式多條件篩選資料,比如有很多個工作簿,每個工作簿都有以下資料。
A | B | C | D | |
1 | 0 |
1 | 2 | 44 |
2 | 1 | 2 | 3 | 55 |
3 | 2 | 3 | 4 | 66 |
找出A列為0,B列為1,C列為2的那一行,也就是第一行,輸出D列資料44。
最後彙總到一個工作表裡。
方法:
(1)使用以下方法將所有工作表合併到一個工作表裡,其中第一個工作簿為最後要彙總資料的地方。
批量合併excel工作表 http://blog.csdn.net/txcokokok/article/details/41969751
(2)用以下方法按第一個工作簿的A列資料重新命名所有工作簿。
批量重新命名excel工作表 http://blog.csdn.net/txcokokok/article/details/41969705
A | B |
1 | 彙總 |
2 | sheet1 |
3 | sheet2 |
(3)使用以下公式實現功能。
=VLOOKUP(1&2&3,IF({1,0},INDIRECT(A2&"!A$1:A$3")&INDIRECT(A2&"!B$1:B$3")&INDIRECT(A2&"!C$1:C$3"),INDIRECT(A2&"!D$1:D$3")),2,0)
#
VLOOKUP是篩選的公式。
#
1&2&3是篩選的條件,這裡有三個篩選條件,分別為1,2,3。
# IF({1,0},INDIRECT(A2&"!A$1:A$3")&INDIRECT(A2&"!B$1:B$3")&INDIRECT(A2&"!C$1:C$3"),INDIRECT(A2&"!D$1:D$3"))是要篩選的資料範圍,第1到3個INDIRECT分別對應要篩選的A、B、C三列的資料,第4個對應D列要輸出的資料。
基本結構為IF({1,0},A1:A3&B1:B3&C1:C3,D1:D3),用於把A列的資料和D列的資料合併為一個數組,B列和C列也是一樣。
#
INDIRECT(A2&"!A$1:A$3")的作用是輸出單元格的內容,這裡用於實現工作表名的自動填充,因為如果直接寫sheet1!A$1:A$3的話,下拉就不能自動填充為sheet2!A$1:A$3;這裡A2就對應其內容sheet1。
#
最後的2和0,2代表在包含A和D列的數組裡,D列排在第2;0代表精確查詢,1就是模糊查詢。
(4)把公式寫到第一個工作表的B2單元格里,然後雙擊單元格進入修改模式,按“ctrl+shift+Enter"更新值,其內容就對應sheet1,往下一拉,B3就自動對應sheet2。