close

3831

請問Excel表格轉換

馮旭輝:錦子老師您好,我的問題是要把左邊的表格轉成右邊的形式,能用函數解決嗎?謝謝

image

錦子老師:旭輝,這要使用多個函數的整合才有可能達成。

步驟1:點取G8儲存格,輸入公式「=IFERROR(OFFSET($A$1,SUMPRODUCT(LARGE (($B$7:$B$28=H$7)*ROW($B$7:$B$28),COUNTIF($B$7:$B$28,H$7)-ROW()+8))-1,COLUMN ()-5),"")」,將第一筆項目帶入,再將公式複製到G9:G20。

image

利用COUNTIF函數統計B2:B28中含有H7儲存格內容的筆數(COUNTIF($B$7:$B$28, H$7)),然後減目前列號加8,這是為了將同項目的記錄從列號最小的排到最大,照原本順序。

COUNTIF(範圍,條件) 指定範圍中符合條件的資料筆數。

然後依照列號由小到大抓取(LARGE(($B$7:$B$28=H$7)*ROW($B$7:$B$28),COUNTIF ($B$7:$B$28,H$7)-ROW()+8))

LARGE(範圍或陣列,第幾大的值) 傳回範圍或陣列中第幾大的值。

從A1儲存格移動N列(LARGE函數傳回結果),N欄(目前欄位編號減5)的儲存格內容傳回。

步驟2:點取H8儲存格,輸入公式「=IFERROR(VLOOKUP(G8,$C7:$D28,2,0),"")」,將第一筆項目帶入,再將公式複製到H9:H20。

image

利用VLOOKUP函數傳回G欄項目的D欄數值(VLOOKUP(G8,$C7:$D28,2,0))

VLOOKUP(搜尋值,搜尋範圍,抓取搜尋範圍第幾欄,比對方式) 在指定搜尋範圍中第1欄依比對方式尋找搜尋值,找到符合條件的資料後,傳回同列第幾欄資料。

步驟3:點取I8儲存格,輸入公式「=IFERROR(OFFSET($A$1,SUMPRODUCT(LARGE (($B$7:$B$28=J$7)*ROW($B$7:$B$28),COUNTIF($B$7:$B$28,J$7)-ROW()+8))-1,COLUMN ()-7),"")」,將第一筆項目帶入,再將公式複製到I9:I20。

image

步驟4:點取J8儲存格,輸入公式「=IF(SUMPRODUCT(($B$7:$B$28=$J$7)*($C$7: $C$28=I8)*($D$7:$D$28))=0,"",SUMPRODUCT(($B$7:$B$28=$J$7)*($C$7:$C$28=I8)*($D$7:$D$28)))」,將第一筆項目帶入,再將公式複製到J9:J20。

image

步驟5:點取K8儲存格,輸入公式「=IFERROR(OFFSET($A$1,SUMPRODUCT(LARGE (($B$7:$B$28=L$7)*ROW($B$7:$B$28),COUNTIF($B$7:$B$28,L$7)-ROW()+8))-1,COLUMN ()-7),"")」,將第一筆項目帶入,再將公式複製到K9:K20。

步驟6:點取L8儲存格,輸入公式「=IF(SUMPRODUCT(($B$7:$B$28=$L$7)*($C$7: $C$28=I8)*($D$7:$D$28))=0,"",SUMPRODUCT(($B$7:$B$28=$L$7)*($C$7:$C$28=I8)*($D$7:$D$28)))」,將第一筆項目帶入,再將公式複製到J9:J20。

IFERROR(公式,若為錯誤值的動作) 若公式結果傳回錯誤值,則執行若為錯誤值動作,否則傳回公式結果。

以上就是今天主要學習的知識點,希望對大家有所幫助~~有什麼問題歡迎留言,我會儘量及時的給大家答覆~~

更多相關影片教學:請點我

更多相關文章:請點我


arrow
arrow
    創作者介紹

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