プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になります。
列A=大分類,列B=中分類,列C=小分類,列D=売上金額の表があります。

ユーザーフォームで、列Dの売上金額の合計や、各分類別の合計数値を表示させたいのですが、そのようなことは可能でしょうか?

以上宜しくお願い致します。

A 回答 (2件)

合計値を出す場合、ワークシート関数を使ったほうが、エラーを吐かなくて便利です。



TextBox に出す(またはLabelは、Caption)として、

サンプル: ボタンとかに以下を入れます。

Dim a As Double, b As Double, c As Double, d As Double
With Sheet1
 With .Range("A1", .Range("A65536").End(xlUp))
   a = Application.Sum(.Value)
   If Not IsError(a) Then TextBox1.Value = Format$(a, "#,##0")
 End With
  With .Range("B1", .Range("B65536").End(xlUp))
   b = Application.Sum(.Value)
   If Not IsError(b) Then TextBox2.Value = Format$(b, "#,##0")
  End With
  With .Range("C1", .Range("C65536").End(xlUp))
   c = Application.Sum(.Value)
   If Not IsError(c) Then TextBox3.Value = Format$(c, "#,##0")
  End With
  With .Range("D1", .Range("DC65536").End(xlUp))
   d = Application.Sum(.Value)
   If Not IsError(d) Then TextBox4.Value = Format$(d, "#,##0")
  End With
End With

この回答への補足

早速ありがとうございます。おかげさまで問題解決しました・・・と申し上げたい所なのですが、すみません。私の質問の仕方が悪く、正確には、
大分類、中分類、小分類にそれぞれ2つの分類コードがあり、
・全体の合計
・大分類2種の合計
・中分類2×2=4種の合計
・小分類2×2×2=8種の合計
計15コの合計をそれぞれ出したかったのです。
SUMPRODUCT関数のような形で導き出す必要があるのですが、こちらは可能でしょうか?

補足日時:2005/05/26 17:49
    • good
    • 0

お話がよく見えてきませんが、



○列A=大分類,列B=中分類,列C=小分類,列D=売上金額の表があります。
ということですが、結局は、種類別の「売上合計」を出すのですか?

単なる、ワークシート関数の式の組み立てではないのしょうか?

SUM でも、SUMPRODUCTでも、配列の確定の必要がありません。

 With Sheet1
  .Select
  With .Range("A1", .Range("A65536").End(xlUp))
   MsgBox Application.Evaluate("SUM(IF(" & .Address & "=1," & _
   .Offset(, 3).Address & ",0))")
  End With
 End With

ここの部分は、もし、はっきりしているなら、
"SUM(IF(" & .Address & "=1," & .Offset(, 3).Address & ",0))"

"SUM(IF(A2:A200=1,B2:B200,0)"
でも構いません。ただし、列を指定しないでくださいね。(例:A:Aというように全体を指定する)

"SUMPRODUCT((A1:A200=1)*(D1:D200))"

Dim myValue As Variant
 With Sheet1
   .Select
   myValue = Application.Evaluate("SUMPRODUCT((A1:A200=1)*(D1:D200))")
   If Not IsError(myValue) Then
     MsgBox myValue
   Else
     MsgBox "エラーが出ています", 16
   End If
 End With

このようにして、エラー処理します。
    • good
    • 0
この回答へのお礼

ありがとうございました。
何分、知識不足なもので、解決までに非常に時間がかかりましたが、いただきましたお答えで作成できました。

お礼日時:2005/06/10 09:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A