close

1009

Excel 資料庫內容擷取-SUMPRODUCT-LARGE函數

示範檔

範例檔

1009.XLSX

結果檔

1009F.XLSX

請教:

小弟遇到一個問題想請教:

在「工作表1」工作表中有上表資料,其中E欄分為已完成跟未完成,想請問的是有哪種方法可以把E欄中已完成的欄列,例如1~5...等的資料顯示在「己完成」工作表,未完成的部分顯示在「未完成」工作表,而且要是E欄中有變更或「工作表1」工作表有新增資料「己完成」「未完成」工作表隨著變更。

Excel有辦法做出來嗎?能提示一下方法嗎?

不知道錦子老師是否可以幫幫忙,謝謝!!

步驟1:將A1:E11儲存格範圍框選起來,再點取「公式 > 從選取範圍建立」圖示。

步驟2:在「以選取範圍建立名稱」對話方塊,點取「頂端列」核取方塊,使其打勾。

步驟3:點取「確定」鈕。

步驟4:點取「己完成」工作表標籤,再點取A2儲存格輸入公式「=IFERROR(INDEX(工作表1!$A$2:$E$11,SUMPRODUCT(LARGE(((是否完成="己完成")*ROW(工程名稱)),ROW()-1))-1,COLUMN()),"")」後,按Enter鍵完成輸入,並將公式複製到A3:E11儲存格(配合原始資料量放大範圍)

步驟5:點取「未完成」工作表標籤,再點取A2儲存格輸入公式「=IFERROR(INDEX(工作表1!$A$2:$E$11,SUMPRODUCT(LARGE(((是否完成="己完成")*ROW(工程名稱)),ROW()-1))-1,COLUMN()),"")」後,按Enter鍵完成輸入,並將公式複製到A3:E11儲存格(配合原始資料量放大範圍)

【公式解析】

1 SUMPRODUCT(LARGE(((是否完成="己完成")*ROW(工程名稱)),ROW()-1)) 傳回是否完成欄位資料為己完成的列號,從第二列開始依序抓取最大列號,第二大列號….

2 INDEX(工作表1!$A$2:$E$11,SUMPRODUCT(LARGE(((是否完成="己完成")*ROW(工程名稱)),ROW()-1))-1,COLUMN()) 將抓取到列號所在列內容(1)在相同欄名儲存格依序填入。

3 IFERROR(INDEX(工作表1!$A$2:$E$11,SUMPRODUCT(LARGE(((是否完成="己完成")*ROW(工程名稱)),ROW()-1))-1,COLUMN()),"") 如果抓取到列號為0時,表示不合準則內容則不填入資料。


arrow
arrow

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