Board logo

標題: [發問] 統計各週出貨數量及出貨天數 [打印本頁]

作者: b9208    時間: 2012-11-13 11:26     標題: 統計各週出貨數量及出貨天數

各位先進您好!

請教統計各週出貨數量及出貨天數
雖然可以運用 SUM 與 CountIF 完成
但由於地點及週次資料多
懇請指導如何使用VBA來完成需求
謝謝

[attach]13109[/attach]
作者: GBKEE    時間: 2012-11-13 18:27

回復 1# b9208
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range, xRow As Integer, xi As Integer
  4.     Set Rng = Sheets("地點").[A4]
  5.     With Sheets("統計")
  6.         .Range("a4", .Range("q4").End(xlDown)).Clear
  7.         xRow = 4
  8.         Do While Rng.MergeCells
  9.             .Cells(xRow, "A") = Rng
  10.             .Cells(xRow, "J") = Rng
  11.              .Cells(xRow, "B") = Rng.Cells(1, 2).Text
  12.              .Cells(xRow, "k") = Rng.Cells(1, 2).Text
  13.              .Cells(xRow, "C") = Rng.Cells(7, 2).Text
  14.              .Cells(xRow, "L") = Rng.Cells(7, 2).Text
  15.              For xi = 4 To 8
  16.              With Rng.Offset(, xi - 1).Resize(7)
  17.                 Sheets("統計").Cells(xRow, xi) = Application.Sum(.Value)
  18.                 Sheets("統計").Cells(xRow, xi + 9) = Application.CountIf(.Cells, ">0")
  19.                 End With
  20.              Next
  21.              xRow = xRow + 1
  22.             Set Rng = Rng.End(xlDown)
  23.         Loop
  24.         .Range("a4:" & .Range("H4").End(xlDown).Address & ", J4:" & Range("q4").End(xlDown).Address).Borders.Value = 1
  25.     End With
  26. End Sub
複製代碼

作者: c_c_lai    時間: 2012-11-13 21:44

回復 2# GBKEE
請教 GBKEE 版大:
  1. Sheets("統計").Cells(xRow, xi) = Application.Sum(.Value)
  2. Sheets("統計").Cells(xRow, xi + 9) = Application.CountIf(.Cells, ">0")
複製代碼
.Sum(.Value) 與 .CountIf(.Cells, ">0") 其結果是一致的,
一個是合計、一個是計算值,在實務處理上有所區別嗎?
作者: b9208    時間: 2012-11-13 23:13

回復 2# GBKEE

謝謝版主指導
執行可以,也符合需求。
努力學習了解
再次謝謝
作者: b9208    時間: 2012-11-13 23:16

回復 3# c_c_lai

SUM是計算儲存格內數值合計
COUNTIF是統計儲存格內數值>0的儲存格數量
二者不同
作者: c_c_lai    時間: 2012-11-14 05:00

回復 5# b9208
感謝你的說明,終於體會了 CountIf 的含意,
謝謝你!




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