
No.2ベストアンサー
- 回答日時:
お話がよく見えてきませんが、
○列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
このようにして、エラー処理します。
No.1
- 回答日時:
合計値を出す場合、ワークシート関数を使ったほうが、エラーを吐かなくて便利です。
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関数のような形で導き出す必要があるのですが、こちらは可能でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル(勝手に太字になる)
-
エクセルかグーグルスプレッド...
-
エクセルで文字が混じった数字...
-
エクセルで二つの数字の小さい...
-
Excel 別ファイルに自動的に反...
-
【画像あり】【関数】指定した...
-
エクセルの文字の消し方
-
エクセルで一行毎、一枚づつ自...
-
オートフィルターの絞込みをし...
-
エクセルで名前順、更に番号順...
-
PowerPointで表の1つの列だけ...
-
Excelで参加者・不参加者のリス...
-
エクセル 文字と数値を含む 並...
-
pdfファイル名の一括リネームの...
-
妊娠祝い もらったことある
-
エクセル SMALL の機能...
-
エクセル 文字数 多い順 並...
-
「B列が日曜の場合」C列に/...
-
エクセルの表から正の数、負の...
-
VBA横のデータを縦にする方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つのエクセルのデータを同じよ...
-
PowerPointで表の1つの列だけ...
-
エクセルで二つの数字の小さい...
-
Excelで半角の文字を含むセルを...
-
【画像あり】【関数】指定した...
-
エクセル(勝手に太字になる)
-
エクセルで最初のスペースまで...
-
Excel、市から登録している住所...
-
エクセルの項目軸を左寄せにしたい
-
エクセルのセル内の文字の一部...
-
「B列が日曜の場合」C列に/...
-
妊娠祝い もらったことある
-
EXCELで 一桁の数値を二桁に
-
エクセルで文字が混じった数字...
-
オートフィルターの絞込みをし...
-
エクセルの表から正の数、負の...
-
Excel 文字列を結合するときに...
-
エクセル 文字数 多い順 並...
-
エクセルの並び変えで、空白セ...
-
エクセルで、列の空欄に隣の列...
おすすめ情報