4158 |
Excel如何將A欄不同字元開頭的資料移到指定欄 |
小婷婷:「錦子老師,我想將A欄中的資料,1開頭資料複製到旁邊B欄、2開頭資料複製到旁邊C欄,3開頭資料複製到旁邊D欄,請問有辦法能做到嗎?」
▍IF、LEFT函數
1.點取B2儲存格,輸入公式:「=IFERROR(INDEX($A$1:$A$21,SMALL(IF(LEFT($A$2:$A$21)="1", ROW($A$2:$A$21),""),ROW()-1)),"")」後,向下複製公式到B3:B15儲存格。
2.點取C2儲存格,輸入公式:「=IFERROR(INDEX($A$1:$A$21,SMALL(IF(LEFT($A$2:$A$21)="2", ROW($A$2:$A$21),""),ROW()-1)),"")」後,向下複製公式到C3:C15儲存格。
3.點取D2儲存格,輸入公式:「=IFERROR(INDEX($A$1:$A$21,SMALL(IF(LEFT($A$2:$A$21)="3", ROW($A$2:$A$21),""),ROW()-1)),"")」後,向下複製公式到D3:D15儲存格。
▍公式說明
抓取A2:A21儲存格中左邊第一個字元 (LEFT($A$2:$A$21))。
判斷A2:A21第一個字元是否等於指定值(LEFT($A$2:$A$21)="1"),若是則傳回其列號(ROW($A$2:$A$21)),否則不傳回資料。
抓取符合條件的第幾筆資料(SMALL(IF(LEFT($A$2:$A$21)="1",ROW($A$2:$A$21),""),ROW()-1))以目前列號減一來決定。
傳回該筆資料位於A1:A21的那個儲存格內容(INDEX($A$1:$A$21,SMALL(IF(LEFT($A$2:$A$21) ="1",ROW($A$2:$A$21),""),ROW()-1)))。
如果出現錯誤訊息表示超出搜尋範圍A2:A21,則設定該儲存格不填入錯誤訊息(IFERROR(INDEX ($A$1:$A$21,SMALL(IF(LEFT($A$2:$A$21)="1",ROW($A$2:$A$21),""),ROW()-1)),""))。
留言列表