- 帖子
- 186
- 主題
- 6
- 精華
- 0
- 積分
- 218
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office 2007
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2012-11-12
- 最後登錄
- 2014-4-15
|
回復 50# ML089
=IF(ROW()=COUNTA(B:B)+1,COUNTIF(A:A,">"&MAX(B:B)),IF(OR(ISERR(-B2),MATCH(B2,B:B,)<>ROW()),0,COUNTIF(A:A,"<="&B2)-IF(B2=MIN(B:B),0,COUNTIF(A:A,"<="&SMALL(B:B,COUNTIF(B:B,"<"&B2))))))
受教了!
用match(B2,B:B,)<>row()來判斷重複,比IF(COUNTIF(OFFSET($B$2,,,ROW()-1,),B2)>1,0,......)漂亮多了
不過想請教一下ISERR(-B2)是要處理什麼狀況?
另外用SMALL(B:B,COUNTIF(B:B,"<"&B2))也很漂亮,不需使用陣列公式就能達到「次小值」MAX(IF(bin_array<B2,bin_array,""))的效果
然後用減的來取代countifs也是個好主義
雖然結構會沒那麼清楚(把我原本4,5結合在一起),但是就公式而言,真的用的很漂亮!
不過我原本的疑問比較是offset和定義名稱的問題
我另外發了一篇"offset與定義名稱",應該有把問題講的比較清楚一點 |
|