- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 87
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-4-11
               
|
10#
發表於 2011-7-10 23:43
| 只看該作者
本帖最後由 Hsieh 於 2011-7-10 23:46 編輯
回復 8# onegirl0204
chin15在9#已經回復得很清楚,進階篩選是很好的基本操作
2#trainee 的作法只是將進階篩選動作用VBA來進行
而最差的就是我用陣列公式來完成
至於公式的作法,沒有甚麼特別的
唯有對各個基本函數了解後
針對個案需求去思考
你要從別人的公式中去了解個函數的作用
整理出甚麼狀況有哪些函數能派上用場
然後想辦法從已知的條件去求得個函數的引數
以此例=IF(ROW(A1)>COUNTIF($C$2:$C$25,$K$2),"",INDEX(A:A,SMALL(IF($C$2:$C$25=$K$2,ROW($2:$25),""),ROW(A1))))
COUNTIF($C$2:$C$25,$K$2)意在算出符合條件的個數
如果列號超出個數就讓儲存格顯示為空字串
SMALL(IF($C$2:$C$25=$K$2,ROW($2:$25),""),ROW(A1))
這是從C欄中找到符合條件的位置就傳回該列號否則傳回空字串,這一連串的數字與空字串中,找到最小數值
所以當公式向下複製時ROW(A1)會變成ROW(A2),就傳回第2小的數值
再利用INDEX去找到A欄的第幾列作為傳回的結果
你可利用公式稽核來查看整個公式的運作順序
就會增進你的思考能力
所以要說從哪裡學習,本論壇應該是個不錯的地方
但是,最後還是要由自己的思考來完成
|
|