每天清晨六點,準時與您相約 今天一朋友問這樣一個問題: 左側表格是縱向排列的主單號,能不能用公式生成右側的結果,即:主單號與子單號成一行排列? 此題的難點在于: 1、主單號一樣,若用查詢函數(shù),往往只能查詢出第一個主單號對應的子單號; 2、縱列分布變橫列。 韓老師給兩個方法: 第一個,用COUNTIF做一輔助列,再用VLOOKUP查詢; 第二個,直接用VLOOKUP函數(shù)套用一動態(tài)區(qū)域完成。 在A列后插入一列,在B2單元格輸入公式: =A2&COUNTIF($A$2:A2,A2) 其中:$A$2:A2是一個隨著公式向下填充而范圍逐漸擴展的動態(tài)區(qū)域。 此輔助列的作用是在每個主單號后面加上一位數(shù),該位數(shù)是主單號出現(xiàn)的次數(shù),從而使每個主單號完全不一致。 如下圖: 在F2單元格輸入公式: =IFERROR(VLOOKUP($E3&COLUMN(A$1),$B$2:$C$13,2,0),""), 其中: $E3&COLUMN(A$1),是在E3單元格的主單號后加一個動態(tài)編號,此動態(tài)編號隨著公式向右填充,變?yōu)椋?span style="max-width: 100%;line-height: 25.6px;box-sizing: border-box !important;word-wrap: break-word !important;">COLUMN(A$1)、COLUMN(B$1)、COLUMN(C$1),即1、2、3……; VLOOKUP($E3&COLUMN(A$1),$B$2:$C$13,2,0) 主單號+動態(tài)編號作為LOOKUP的查找值,在$B$2:$C$13中精確查找第2列的數(shù)值; IFERROR(VLOOKUP($E3&COLUMN(A$1),$B$2:$C$13,2,0),"") 如果查找出現(xiàn)錯誤,返回空值。 結果如下: 在E2單元格輸入公式: =IFERROR(VLOOKUP($D3&COLUMN(A$1),IF({1,0},$A$2:$A$13&COUNTIF(INDIRECT("A2:A"&ROW($2:$13)),$D3),$B$2:$B$13),2,0),"") 以<CTRL+SHIFT+ENTER>結束。 結果如下: 其中: IF({1,0},$A$2:$A$13&COUNTIF(INDIRECT("A2:A"&ROW($2:$13)),$D3),$B$2:$B$13)是實現(xiàn)一個新的查找區(qū)域: INDIRECT("A2:A"&ROW($2:$13))是分別指向a2:a2,a2:a3,a2:a4,a2:a5,a2:a6,a2:a7,a2:a8,a2:a9,a2:a910,a2:a11,a2:a12,a2:a13的十二個數(shù)組: 因為要用到數(shù)組計算,所以公式結束的時候要用“CTRL+SHIFT+ENTER”。 鏈接:http://pan.baidu.com/s/1ge5apX5 密碼:vxbs |
|
來自: bitterfleabane > 《EXCEL》