エクセルについての質問です。 画像のような作業をができる関数orVBAをどなたかご教示ください。

画像

Visual Basic | Excel145閲覧

ベストアンサー

0

ThanksImg質問者からのお礼コメント

ありがとうございました。とても助かりました

お礼日時:5/23 7:47

その他の回答(4件)

0

「ピボットテーブル」という機能を使うといいと思います。 使い方は調べてくださいな。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ どうしても関数を使いたい場合は・・・ セルI2に以下の数式を入力して、オートフィルするのはいかがでしょうか。 =SUMIFS($D$2:$D$13,$B$2:$B$13,I$1,$C$2:$C$13,$H2) sumifs関数は、「指定範囲のうち、条件に合致する部分の合計を求めよ」という関数です。 指定範囲はD2:D13 条件はB2:B13の中でI1と一致、かつC2:C13のなかでH2と一致、です。 絶対参照の$は、コピーしたときに動いて欲しくない行・列に付けます。 この場合、指定範囲D2:D13と、条件範囲B2:B13, C2:C13は動いて欲しくないので絶対参照。 一致すべき条件であるI1, H2は、それぞれ行、列の片方だけを固定して、他方をコピーに追従させたいので、片側のみ絶対参照としています。 "0"ではなく空白を表示したい場合は、if関数と組み合わせてくださいな。 ・・・もっとスマートな方法があるかもです。

0

こんにちは。 B列、C列、D列と、見出しを設定し、データ範囲から、ピボットテーブル を作成するとき、ピボットテーブルメニューの 「デザイン」「総計」「列と行の総計を表示しない」にしてください それで、出来上がります つぎたししたら、ピボットの再計算をさせてください。 いつでもきれいに集計されます。 コードにするために、「見出し」の部分が必須です。 それがフィールド名になるからです。

0

B~D列は、都度追加されるとの事ですので、小細工をしています。 転記された行は、F列に「済」の表示をさせます。 追加されたデータのF列は空白のため、次回のコード実行時には追加された行のみを対象として転記作業を行ないます。 作業し易いようにフォームコントロールのボタンを配置し、Clickプロシージャにコードを作成しています。 Sub Sheet2_ボタン3_Click() Dim n0 As Long Dim r0 As Integer Dim n1 As Integer For n0 = 2 To Cells(Rows.Count, 3).End(xlUp).Row If Cells(n0, 6).Value = "" Then For n1 = 2 To Cells(Rows.Count, 8).End(xlUp).Row If Cells(n0, 3).Value = Cells(n1, 8).Value Then For r0 = 9 To Cells(1, Columns.Count).End(xlToLeft).Column If Cells(n0, 2).Value = Cells(1, r0).Value Then Cells(n1, r0).Value = Cells(n0, 4).Value Cells(n0, 6).Value = "済" Exit For End If Next Exit For End If Next End If Next End Sub

画像