返回列表 上一主題 發帖

[發問] 有條件的統計

[發問] 有條件的統計

請問各位大大:
我有一個工作表如下(SHEET1)

我需要統計A公司的品名及數量如下(SHEET2)
2.JPG
如何做呢?

1.jpg (23.72 KB)

1.jpg

建議用樞鈕吧
Z.gif

TOP

如果只是要得到各別小計數, 建議可以試試用sumproduct把公司, 月份, 品名的條件放進去

TOP

謝謝chin15大大
我現在是用樞紐,但是存檔後檔案變的很大
所以我想如果用vba會不會檔案變的比較小
還有如果有兩個以上的條件呢
如 "A" 公司在 "1" 月份的品名數量呢?
PS.因為同樣的檔案有很多所以如果用VBA後再做個按鈕就可以使用很多個檔案了(不用每個檔案都做樞紐).

TOP

本帖最後由 GBKEE 於 2011-7-22 07:37 編輯

回復 4# gctsai
先學基本功  3樓提議的工作表函數SUMPRODUCT
圖一  SHEET1 (資料區)

圖二 SHEET2

數量的公式
B5=SUMPRODUCT((Sheet1!$A$2:$A$65525=$A$2)*(Sheet1!$B$2:$B$65525=$B$2)*(Sheet1!$C$2:$C$65525=$C$2)*(Sheet1!$D$2:$D$65535=A5))
B6=SUMPRODUCT((Sheet1!$A$2:$A$65525=$A$2)*(Sheet1!$B$2:$B$65525=$B$2)*(Sheet1!$C$2:$C$65525=$C$2)*(Sheet1!$D$2:$D$65535=A6))
B7=SUMPRODUCT((Sheet1!$A$2:$A$65525=$A$2)*(Sheet1!$B$2:$B$65525=$B$2)*(Sheet1!$C$2:$C$65525=$C$2)*(Sheet1!$D$2:$D$65535=A7))
B8=SUMPRODUCT((Sheet1!$A$2:$A$65525=$A$2)*(Sheet1!$B$2:$B$65525=$B$2)*(Sheet1!$C$2:$C$65525=$C$2)*(Sheet1!$D$2:$D$65535=A8))

TOP

謝謝GBKEE大大
1.因為只知道公司及月份而品名的名稱及種類無法知道(如可能會有增加鳳梨,龍眼之類的)
2.因為我目前有50個類似的檔案,不想一個個檔案去做,所以才想說用vba的

TOP

回復 6# gctsai
VBA程序是要量身套製的,所以附黨上來規定條件要放那裡說明白, 回答才會明確.

TOP

1.大大我的問題是要如何用vba做(如附檔)
2.要如何從來源的工作頁中統計出"三洋"公司的序號出現的次數
3.其中條件"三洋"是不用顯示的
4.因為有很多檔案如果用樞紐分析的話要每一個檔案都做,重點是檔案會變很大
text.rar (4.68 KB)

TOP

回復 8# gctsai
試試看
  1. Sub Ex()
  2.     Dim D As Object, Rng As Range
  3.     Set D = CreateObject("SCRIPTING.DICTIONARY") '設立字典物件
  4.     Set Rng = Sheets("來源").[A2]                                       '設立儲存格物件
  5.     With Sheets("統計")
  6.         Do While Rng <> ""        'Rng的值為空白時不執行 Do的迴圈
  7.             If Rng = .[A2] Then D(Rng.Offset(, 1).Value) = D(Rng.Offset(, 1).Value) + 1
  8.             '        .[A2] ->Sheets("統計")[A2]      '字典物件(KEY)=ITEM + 1
  9.             Set Rng = Rng.Offset(1)  'Rng下移一列位
  10.         Loop
  11.         With .[B2:C2]
  12.             .Cells(1).Resize(D.Count) = Application.Transpose(D.KEYS)
  13.             .Cells(2).Resize(D.Count) = Application.Transpose(D.ITEMS)
  14.             .Resize(D.Count, 2).Sort Key1:=.Cells(1), Order1:=xlAscending, Header:=xlNo
  15.         End With
  16.     End With
  17.     Set D = Nothing
  18.     Set Rng = Nothing
  19. End Sub
複製代碼

TOP

謝謝GBKEE大大
已經可以用了,而且還可以直接把條件(如"三洋")打在vba內

TOP

        靜思自在 : 人生不一定球球是好球,但是有歷練的強打者,隨時都可以揮棒。
返回列表 上一主題