Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1697 / 13646 ツリー ←次へ | 前へ→

【72567】29 売上データ表から複数の条件に合う集計 ぴん 12/8/25(土) 13:09 質問[未読]
【72568】Re:29 売上データ表から複数の条件に合う集... kanabun 12/8/25(土) 13:54 発言[未読]
【72570】Re:29 売上データ表から複数の条件に合う集... UO3 12/8/25(土) 17:00 発言[未読]
【72573】Re:29 売上データ表から複数の条件に合う集... ドカ 12/8/25(土) 19:33 回答[未読]

【72567】29 売上データ表から複数の条件に合う集計
質問  ぴん  - 12/8/25(土) 13:09 -

引用なし
パスワード
   日付    仕入先    数量    単価    金額
11月1日    B商会(株)    120    45    5,400
11月2日    A物産    70    120    8,400
11月3日    B商会(株)    60    90    5,400
11月4日    C商事(有)    310    210    65,100
11月5日    A物産    140    1,200    168,000
11月6日    D販売(株)    40    2,700    108,000
11月7日    D販売(株)    90    390    35,100
11月8日    C商事(有)    190    110    20,900
11月9日    A物産    200    890    178,000
11月10日    C商事(有)    270    310    83,700
11月11日    A物産    90    2,050    184,500
                
                
     条件                
B商会(株)とD販売(株)の合計金額                
A物産とC商事(有)の合計金額                
A物産を除いた合計金額

【72568】Re:29 売上データ表から複数の条件に合う...
発言  kanabun  - 12/8/25(土) 13:54 -

引用なし
パスワード
   ▼ぴん さん:
               
>     条件                
>B商会(株)とD販売(株)の合計金額                
>A物産とC商事(有)の合計金額                
>A物産を除いた合計金額

ピボットテーブルとかを使うのかもしれませんが、
好きなDictionary オブジェクトを利用して仕入先ごとの集計
してみました。

Sub try集計()
  Dim r1 As Range
  Dim r2 As Range
  Set r1 = Range("B2", Cells(Rows.Count, 2).End(xlUp)) 'B列
  Set r2 = r1.Offset(, 3) 'E列
  
  Dim v1, v2
  v1 = Application.Transpose(r1)
  v2 = Application.Transpose(r2)
  
  Dim i As Long
  Dim dic As Object
  Set dic = CreateObject("Scripting.Dictionary")
  dic.CompareMode = TextCompare
  For i = 1 To UBound(v1)
    dic(v1(i)) = dic(v1(i)) + v2(i) '仕入先v1 ごとの v2集計
  Next
  Debug.Print dic("B商会(株)") + dic("D販売(株)")
  Debug.Print dic("A物産") + dic("C商事(有)")
  Debug.Print Application.Sum(dic.Items()) - dic("A物産")
  
End Sub

【72570】Re:29 売上データ表から複数の条件に合う...
発言  UO3  - 12/8/25(土) 17:00 -

引用なし
パスワード
   ▼ぴん さん:

こんにちは
本件は、関数処理のほうがふさわしいかもです。

B商会(株)とD販売(株)の合計金額

=SUMIF(B:B,"B商会(株)",E:E)+SUMIF(B:B,"D販売(株)",E:E)


A物産とC商事(有)の合計金額

=SUMIF(B:B,"A物産",E:E)+SUMIF(B:B,"C商事(有)",E:E)

A物産を除いた合計金額

=SUM(E:E)-SUMIF(B:B,"A物産",E:E)

【72573】Re:29 売上データ表から複数の条件に合う...
回答  ドカ  - 12/8/25(土) 19:33 -

引用なし
パスワード
   ▼ぴん さん


Sub test()

A物産_計 = 0
B商会_計 = 0
C商事_計 = 0
D販売_計 = 0
  
For i = 2 To 100
  If Cells(i, 2) = "A物産" Then
    A物産_計 = A物産_計 + Cells(i, 5)
  ElseIf Cells(i, 2) = "B商会(株)" Then
    B商会_計 = B商会_計 + Cells(i, 5)
  ElseIf Cells(i, 2) = "C商事(有)" Then
    C商事_計 = C商事_計 + Cells(i, 5)
  ElseIf Cells(i, 2) = "D販売(株)" Then
    D販売_計 = D販売_計 + Cells(i, 5)
  End If
Next

MsgBox "B商会(株)とD販売(株)の合計金額=" & B商会_計 + D販売_計
MsgBox "A物産とC商事(有)の合計金額=" & A物産_計 + C商事_計
MsgBox "A物産を除いた合計金額=" & B商会_計 + C商事_計 + D販売_計


End Sub

1697 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free