案例 如下圖所示,下面是會計科目表的一個截取的部分視圖。要求是將左邊的科目表轉(zhuǎn)化成右面的對應(yīng)的科目表。 從上表中可以看出,左邊的科目表中一級科目,二級科目,三級科目都是有的,并且科目代碼的長度也有有規(guī)則的,那么轉(zhuǎn)化的時候二級科目與三級科目如何與一級科目相對應(yīng),這是解決本題的一個難點所在。 下面老師給大家介紹兩種方法,一種是分步驟每個科目各提取一次;另外一種方法是數(shù)組公式,一次性到位。但是對于一般水平與初級水平的Excel用戶來說,第一種方法更加地適用。 分步函數(shù)法 下面給大家介紹第一種方法的基本的添加輔助列與公式函數(shù)的解決步驟。 Step-01:設(shè)置如下圖所示的一級科目,二級科目以及三級科目的的表頭。 Step-02:觀察上面的科目代碼,一級科目的代碼長度為4,二級科目的代碼長度為6,三級科目的代碼長度為8. 分析:因為每個二級科目與三級科目都對應(yīng)著一個一級科目,難點是要判斷左側(cè)的每個科目所對應(yīng)的是一級科目是什么,所以需要截取代碼的前4位,判斷所屬是那個一級科目,然后通過結(jié)果行與數(shù)據(jù)源行的上下比較去判斷。 在E2單元格中輸入公式: =IF(LEFT(A2,4)=LEFT(A1,4),E1,B2) 按Enter鍵完成后向下填充即可。 注意:這里的LEFT函數(shù)是從左截取指定長度的字符串函數(shù)。 Step-03:對于二級科目來說,需要判斷兩個方面,一個是代碼長度是不6位,另一個是需要判斷本行所對應(yīng)的是是一級科目還是二級科目,如果只有一級科目,不存在二級科目,那么要返回空白,如果該一級科目存在二級科目,那么需要返回一級科目對應(yīng)的二級科目。 在F2單元格中輸入公式: =IF(LEFT(A2,6)=LEFT(A1,6),F1,IF(LEN(A2)=4,'',B2)) 按Enter鍵完成后向下填充即可。 注意:這里的LEN函數(shù)是計算指定的字符串的長度的函數(shù)。 Step-04:一級科目與二級科目都判斷出來了,對于三級科目來說,就是最簡單不過的了,因為只有三個級別,所以,只要判斷該行是不是三級科目,即判斷代碼長度是不是8位即可。 在G2單元格中輸入公式: =IF(LEN(A2)=8,$B2,'') 按Enter鍵完成后向下填充即可。 數(shù)組公式法 下面再給大家介紹另外一種快速的方法,可以一次性地完成上次的拆分判斷。先設(shè)置如下圖所示的一級科目,二級科目以及三級科目的的表頭。 選中E2:G2單元格,在公式編輯欄中輸入公式: {=IFNA(VLOOKUP(LEFT(A2&' ',{4,6,8}),$A:$B,2,0),'')} 按組合鍵<Ctrl+Shift+Enter>完成后向下填充。 |
|
來自: 匁匁 > 《19新規(guī)》