1. 程式人生 > >excel多條件篩選公式

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
成功後工作簿名就分別為彙總、sheet1、sheet2,B列就是第三步寫公式的地方。

(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。