close

3883

Excel表格資料轉置

豆瓣哥:錦子老師您好,老師請問右圖有辦法依照左圖的B2:E8排列嗎?麻煩老師給予指導!

image

錦子老師瓣哥,其實我們可以利用INDEXMATCH函數整合處理。

步驟1:點取B2儲存格,輸入公式「=B3/SUM($B$3:$E$3)」後,將公式複製到C2:E2

image

步驟2:點取B3儲存格,輸入公式「=COUNTIF($I$2:$I$15,B1)」後,將公式複製到C3:E3

image

步驟3:點取B4儲存格,輸入公式「=IFERROR(INDEX($G$1:$G$15,SUMPRODUCT (LARGE(($I$2:$I$15=B$1)*ROW($I$2:$I$15),COUNTIF($I$2:$I$15,B$1)-ROW()+ 4))),"")」後,將公式複製到B2:E9

image

搜尋I2:I15範圍中等於本欄第一列儲存格內容的列編號(($I$2:$I$15=B$1)*ROW ($I$2:$I$15))

再統計I2:I15範圍中等於本欄第一列儲存格內容的筆數(COUNTIF($I$2:$I$15, B$1))

由於顯示方式是要列編號由小到大顯示,故利用LARGE函數將上面算出的筆數減掉目前列編號加4(LARGE(($I$2:$I$15=B$1)*ROW($I$2:$I$15),COUNTIF($I$2:$I$15, B$1)-ROW()+ 4))抓取符合資料,以優為例,B4為是筆數24=-2再加4=2,抓取符合條件列編號第二大的值,B52-5+4=1,抓取符合條件列編號第一大的值。

再利用INDEX函數將SUMPRODUCT傳回的值對應到戈I2:I15儲存格範圍中的第幾列內容(INDEX($G$1:$G$15,SUMPRODUCT(LARGE(($I$2:$I$15=B$1)*ROW($I$2:$I$15), COUNTIF($I$2:$I$15,B$1)-ROW()+4))))

由於並不是每一個評等都有4筆記錄,故會出現錯誤訊息,因此在公式最外圍以IFERROR函數設定若出現錯誤訊息則不填入資料(IFERROR(INDEX($G$1:$G$15, SUMPRODUCT(LARGE(($I$2:$I$15=B$1)*ROW($I$2:$I$15),COUNTIF($I$2:$I$15,B$1)-ROW()+4))),""))

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

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

更多相關文章:請點我

 


arrow
arrow
    創作者介紹

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