close

1057

EXCEL查詢某儲存格所對應過去的欄列名稱嗎?

示範檔

範例檔

1057.XLSX

結果檔

1057F.XLSX

豬八戒詢問唐三藏:「師傅,資料表資料如下:

請問一下,如果今天想作一個查詢或是報表,有函數或方法可以讓我在某一儲存格輸入"張三元"然後可以抓取張三元上了那些班的什麼課嗎?也就是輸入某一字串,它會自動去抓去在那個資料表的那些儲存格出現過,並全部列出。」

唐三藏:「其實這需要一堆函數的組合應用,下面我們來討論一下。」

點取I2儲存格輸入要找尋的學員姓名。

點取J2儲存格輸入公式「=IF(COUNTIF(A:F,$I$2)>=ROW()-1,INDEX($1:$1,SMALL(IF (A$1:F$6=I$2,COLUMN(A:F)),ROW()-1)),"")」後,按ENTER鍵完成輸入,並將公式複製到J3:J6儲存格。

【公式說明】

1.COUNTIF(A:F,$I$2)>=ROW()-1 判斷I2儲存格內容A在欄到F欄中的個數是否大於或等於目前儲存格的列號減1

2.IF(A$1:F$6=I$2,COLUMN(A:F)) 傳回A2欄到F欄中I2儲存格內容位於那些欄。

3.SMALL(IF (A$1:F$6=I$2,COLUMN(A:F)),ROW()-1) 傳回2.中計算出來第幾小的值(目前儲存格列號減1)

4.INDEX($1:$1,SMALL(IF (A$1:F$6=I$2,COLUMN(A:F)),ROW()-1)) 搜尋第一列中第N欄的值(3.計算出來)

5.=IF(COUNTIF(A:F,$I$2)>=ROW()-1,INDEX($1:$1,SMALL(IF(A$1:F$6=I$2,COLUMN (A:F)),ROW()-1)),"") 如果1.計算結果成立,傳回4.的結果,否則不輸入資料。

點取K2儲存格輸入公式「=IF(COUNTIF(A:F,$I$2)>=ROW()-1,INDEX($1:$1,SMALL(IF (A$1:F$6=I$2,COLUMN(A:F)),ROW()-1)),"")」後,按ENTER鍵完成輸入,並將公式複製到K3:K6儲存格。

豬八戒:「哇!謝謝師傅!」

唐三藏:「不客氣。」


arrow
arrow

    錦子老師 發表在 痞客邦 留言(0) 人氣()