3829 |
請問Excel公式如何自動列表 |
馮旭輝:錦子老師您好,我的問題是想請問如下圖:
我想要使用公式一次列表出來,但不知道要用哪一個函數達成,如下圖,有沒有較快的方式,依照項目相同以數量排序。
錦子老師:旭輝,這要使用多個函數的整合才有可能達成。
步驟1:點取F2儲存格,輸入公式「=C2」,將第一筆項目帶入。
步驟2:點取F3儲存格,輸入公式:「= IF(COUNTIF($F$2:F2,F2)<VLOOKUP(F2, $C$2:$D$6,2,0),F2,OFFSET($C$2,MATCH(F2,$C$2:$C$6,0),0))」後,再將公式複製到F4:F11儲存格。
利用COUNTIF函數統計目前儲存格上方各個項目的筆數(COUNTIF($F$2:F2,F2))。
COUNTIF(範圍,條件) 指定範圍中符合條件的資料筆數。
利用VLOOKUP函數傳回該項目的D欄數量(VLOOKUP(F2,$C$2:$D$6,2,0))。
VLOOKUP(搜尋值,搜尋範圍,抓取搜尋範圍第幾欄,比對方式) 在指定搜尋範圍中第1欄依比對方式尋找搜尋值,找到符合條件的資料後,傳回同列第幾欄資料。
如果COUNTIF函數傳回的值比VLOOKUP搜尋到數量值小時,則傳回上一儲存格的內容(F2),否則抓取上一儲存格內容在C欄位置的下一儲存格內容(OFFSET($C$2,MATCH (F2,$C$2:$C$6,0),0))。
如果為了若將來C欄增加項目或數量更動時不用再重新寫公式或複製公式,可以將公式複製範圍直接從F4:F100,由於目前總數量沒達99,故會出現0值與#N/A錯誤訊息。
故須將F3公式更改成:「=IFERROR(IF(COUNTIF($F$2:F2,F2)<VLOOKUP(F2,$C$2: $D$6,2,0),F2,IF(ISBLANK(OFFSET($C$2,MATCH(F2,$C$2:$C$6,0),0)),"",OFFSET($C$2,MATCH(F2,$C$2:$C$6,0),0))),"")」
抓取上一儲存格內容在C欄位置的下一儲存格內容,若是為空格即為0(ISBLANK (OFFSET($C$2,MATCH(F2,$C$2:$C$6,0),0))),則傳回TRUE。
ISBLANK(公式) 傳回公式結果是否為0,若是則為TRUE,若否則為FALSE。
如果ISBLANK函數傳回結果為TRUE,則不填入資料,否則填入上一儲存格內容在C欄位置的下一儲存格內容(IF(ISBLANK(OFFSET($C$2,MATCH(F2,$C$2:$C$6,0),0)), "",OFFSET($C$2,MATCH(F2,$C$2:$C$6,0),0)))。
如果IF函數傳回結果為錯誤值,則使用IFERROR函數不填入資料(=IFERROR(IF(公式),""))。
IFERROR(公式,若為錯誤值的動作) 若公式結果傳回錯誤值,則執行若為錯誤值動作,否則傳回公式結果。
以上就是今天主要學習的知識點,希望對大家有所幫助~~有什麼問題歡迎留言,我會儘量及時的給大家答覆~~
更多相關影片教學:請點我
更多相關文章:請點我
留言列表