2023年8月28日 星期一

錯誤2015 error 2015 application.countif +AutoFilter 溫故知新

 今天小編透過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)

反紅為錯誤示範。






沒有留言:

張貼留言

指數變化(2024.05.17)

指數變化(2024.05.17) 上周焦點:         5/9當周焦點                          事實:fed與非農就業,引起投資市場對降息有加速,但肯定的是,fed說不加息了。                        美國密西根大學信心指數 ...