Board logo

標題: 判斷日期之後的資料並計算數量 [打印本頁]

作者: chiang0320    時間: 2017-5-21 23:23     標題: 判斷日期之後的資料並計算數量

請問如何使用VBA,判斷日期之後的資料並計算數量,謝謝!
[attach]27207[/attach]

依照所KEY IN的日期(工作表2-E欄)  判斷日期 之後的資料(工作表1 -G欄) 並計算區域(工作表1 -G欄)的數量
[attach]27208[/attach]
[attach]27209[/attach]
[attach]27210[/attach]
作者: naruto018    時間: 2017-5-23 08:21

可以使用COUNTIFS 函數可將準則套用至跨多個範圍的儲存格,並計算所有準則均符合的個數。
=COUNTIFS(日期範圍,">"&判斷基準的日期,號碼1範圍,判斷基準的號碼1,區域範圍,判斷基準的區域)
日期NA的部分
=if(判斷基準的日期="NA",去掉日期準則的COUNTIFS,含日期準則的COUNTIFS)
作者: prin.huang    時間: 2017-5-23 10:27

計算結果與你提供的不同, 但應該是你要的
  1. Option Explicit
  2. Sub Cal_N()
  3.     Dim I%, J%, DD$, S1 As Worksheet, S2 As Worksheet
  4.    
  5.     Set S1 = ActiveWorkbook.Sheets("工作表1")
  6.     Set S2 = ActiveWorkbook.Sheets("工作表2")
  7.    
  8.     For I = 3 To 7
  9.         For J = 6 To 16
  10.             DD = S2.Cells(I, 5)
  11.             If DD = "NA" Then
  12.                 S2.Cells(I, J) = Application.WorksheetFunction.CountIfs(S1.Columns(5), _
  13.                 S2.Cells(I, 3), S1.Columns(7), S2.Cells(2, J))
  14.             Else
  15.                 S2.Cells(I, J) = Application.WorksheetFunction.CountIfs(S1.Columns(5), _
  16.                 S2.Cells(I, 3), S1.Columns(7), S2.Cells(2, J), S1.Columns(6), ">" & S2.Cells(I, 5))
  17.             End If
  18.         Next J
  19.     Next I
  20. End Sub
複製代碼

作者: chiang0320    時間: 2017-5-31 23:50

回復 3# prin.huang


    請問prin.huang
假如有一兩萬列的資料,使用countifs來跑,時跑的時間過久,請問程式怎麼修才可以改善速度
作者: prin.huang    時間: 2017-6-1 09:19

參考站內or谷歌資料,改寫成陣列試試
應該會快很多
作者: prin.huang    時間: 2017-6-1 19:42

參考站內or谷歌資料,改寫成陣列試試
應該會快很多
prin.huang 發表於 2017-6-1 09:19


剛才試作了一下,excel函數sumifs無法接受陣列,只能接受range,試運算1萬多筆速度還是慢,
看來只能把"資料讀成陣列+自己寫判斷句"才能加快速度了
作者: chiang0320    時間: 2017-6-1 20:10

回復 6# prin.huang

prin.huang

謝謝,我再試試看
作者: Kubi    時間: 2017-6-2 21:17

回復 4# chiang0320
改用陣列並模擬2萬5千筆,大約1.3秒完成,請測試。
[attach]27262[/attach]
作者: chiang0320    時間: 2017-6-3 17:35

回復 8# Kubi

[attach]27272[/attach]

請問Kubi

如果變更原始檔案的關鍵欄位,程式碼又會修改成怎麼樣子?

可以讓我對照一下之前與之後,謝謝幫忙!
作者: Kubi    時間: 2017-6-4 21:00

回復 9# chiang0320
請參考
[attach]27277[/attach]




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)