今天小編透過autofilter與application.countif 做資料整理,
怎就application.countif 跑不出來,實在很懊惱ㄝ
明明是很常用的函數說。
抱怨解決不了問題。
先來溫故知新一下:
AutoFilter 篩選日期區間怎做:
在資料區間n1:m1531範圍內透過日期區間做篩選,所以會有兩個Criteria要設定,分別為Criteria1與Criteria2,因為兩個條件都要滿足,所以Operator要加上xlAnd,如此如此這般這般。msdn
ActiveSheet.Range("$N$1:$N$1531").AutoFilter Field:=1, Criteria1:= _
">=" & date_test, Operator:=xlAnd, Criteria2:="<=" & end_day
好!!那篩選完成後,要統計一下資料,僅計算篩選後的儲存格範圍(msdn)
這功能稱為XlCellType,很好用,要放在口袋內放好。
透過設置set p_data,僅取用篩選後的儲存格
Set p_data = ActiveSheet.Range("m2:m1531").SpecialCells(xlCellTypeVisible)
接下來是統計次數資料的countif函數。
講到這,小編countif 使用到底錯那了?
Set p_data = ActiveSheet.Range("m2:m1531").SpecialCells(xlCellTypeVisible)
Set p_data = ActiveSheet.Range("m1:m1531").SpecialCells(xlCellTypeVisible)
錯在設置時把標題放入,所以countif 跑出"錯誤2015"
下次記得別把標題放進範圍內 xd
countif使用,直接調用Application即可
p1 = Application.CountIf(p_data , ">0")
p2 = Application.CountIf(p_data , "<=0")
幫忙計算出大於跟小於等於0的次數,太棒了。
另外篩選範圍也要跟countif計算範圍相同,不然也會跳出"錯誤2015"
ActiveSheet.Range("$N$1:$N$1530").AutoFilter Field:=1, Criteria1:= _
">=" & date_test, Operator:=xlAnd, Criteria2:="<=" & end_day
Set p_data = ActiveSheet.Range("m2:m1531").SpecialCells(xlCellTypeVisible)
反紅為錯誤示範。
沒有留言:
張貼留言