王志軍



最近在工作中遇到一個問題,如圖1所示,“崗位”列的單元格有很多的內容,現在需要將姓名按照崗位分別填充到右側表格對應的格,由于實際的數據量非常大,手工操作顯然是比較復雜,有沒有簡單一些的方法呢?
我們可以借助公式完成這一引用任務,選擇E2單元格,在編輯欄輸入公式"=IF(ISNUMBER(FIND(OFFSET(E$1,,-MOD(COLUMN(B1),2》,$C2》,OFFSET($A2,,MOD(COLUMN(B1),2)),"")”,這里的COLUMN函數可以返回一個引用的列號,MOD函數返回兩數相除的余數,OFFSET函數是以指定的引用為參照系,通過給定偏移量返回新的引用,FIND函數是返回一個字符串在另一個字符串中出現的起始位置,ISNUMBER函數可以檢測一個值是否是數據,返回TRUE或FALSE,最后使用IF函數進行條件判斷,滿足條件顯示相應的內容,否則顯示空,公式執行之后向右、向下拖拽填充柄,很快就可以看到圖2所示的效果。
或者也可以使用"=IF(ISERROR(FIND(INDIRECT(ADDRESS(1,INT《COLUMN()-1),2)+INT《COLUMN()+1),2))),$C2)>=1),"",INDIRECT(ADDRESS(ROW(A2),MOD(COLUMN(F1),2)+1)))"的公式,這里的INDIRECT函數可以返回文本字符串所指定的引用,ADDRESS函數可以創建一個以文本方式對工作簿中某一單元格的引用,INT函數可以將數值向下取整為最接近的整數,ISERROR函數用來檢測一個值是否為#N/A以外的錯誤,返回TRUE或FALSE,其他函數的功用與前一個公式相似,公式執行之后向右、向下拖拽填充柄,可以得到圖3所示的效果。endprint