• ベストアンサー

エクセルVBAで集計

リスト形式になったデータがあります。 C、D、E列(6行目以降)に数のデータがあります。 L列のデータが「東京都」と「神奈川県」であれば、 CDE列をたして合計し、数をそれぞれメッセージボックスで 「東京都:50 神奈川県100」というように表示したいのですが、 コードをお教えいただけないでしょうか?

  • newme
  • お礼率54% (218/400)

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

No2-3 merlionXXです。 ついでなので、リストに無い名前があってもエラーにせず、不存在と表示するようにしてみました。 Sub test03() Dim n As Long, i As Long, myAr, myCt(), myStr As String myAr = Array("東京都", "神奈川県", "新潟県", "京都府", "音威子府", "沖縄県") With ActiveSheet For n = LBound(myAr) To UBound(myAr) For i = 6 To .UsedRange.Cells(.UsedRange.Count).Row ReDim Preserve myCt(n) If .Cells(i, "L") = myAr(n) Then myCt(n) = myCt(n) + Application.Sum(Range(.Cells(i, "C"), .Cells(i, "E"))) End If Next i If myCt(n) = "" Then myCt(n) = "不存在" myStr = myStr & myAr(n) & ": " & myCt(n) & vbCr Next n End With MsgBox myStr, vbInformation, " ( ̄ー ̄)v" End Sub

newme
質問者

お礼

merlionXXさんこんばんは。いつも拝見しております。言葉が足りない部分までくみ取っていただけたようなご解答ありがとうございました。完璧にできました。

その他の回答 (4)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

マクロでなくとも答えは次のようにすれば出すことができますが。 ="東京都:"&SUMIF(L:L,"東京都",C:C)+SUMIF(L:L,"東京都",D:D)+SUMIF(L:L,"東京都",E:E)&" 神奈川県:"&SUMIF(L:L,"神奈川県",C:C)+SUMIF(L:L,"神奈川県",D:D)+SUMIF(L:L,"神奈川県",E:E)

newme
質問者

お礼

ありがとうございました。関数参考になりました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

No2 merlionXXです。 お書きになった「東京都」と「神奈川県」というのはほんの一例で、実際にはもっとたくさんあるのではないかと思い、書き直しました。 こんな感じでどうでしょう? Array("東京都", "神奈川県", "新潟県", "石川県", "沖縄県")の部分に書き加えればいくつでも増やせます。 ただしリストに無い名前を書かれるとエラーになりますよ。 Sub test02() Dim i As Long, myAr, myCt() myAr = Array("東京都", "神奈川県", "新潟県", "石川県", "沖縄県") With ActiveSheet For n = LBound(myAr) To UBound(myAr) For i = 6 To .UsedRange.Cells(.UsedRange.Count).Row If .Cells(i, "L") = myAr(n) Then ReDim Preserve myCt(n) myCt(n) = myCt(n) + Application.Sum(Range(.Cells(i, "C"), .Cells(i, "E"))) End If Next i myStr = myStr & myAr(n) & ":" & myCt(n) & vbCr Next n End With MsgBox myStr, vbInformation, " ( ̄ー ̄)v" End Sub

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

こういう感じ? Sub test01() Dim i As Long, t As Long, k As Long With ActiveSheet For i = 6 To .UsedRange.Cells(.UsedRange.Count).Row If .Cells(i, "L") = "東京都" Then t = t + Application.Sum(.Cells(i, "C"), .Cells(i, "D"), .Cells(i, "E")) ElseIf .Cells(i, "L") = "神奈川県" Then k = k + Application.Sum(.Cells(i, "C"), .Cells(i, "D"), .Cells(i, "E")) End If Next End With MsgBox "東京都:" & t & " 神奈川県:" & k End Sub

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

>L列のデータが「東京都」と「神奈川県」であれば これって、例えば L10セルに「東京都、神奈川県」と入っていたら という事でしょうか? だとすると >「東京都:50 神奈川県100」というように表示 は、意味が通じません C、D、E列に東京都と神奈川県のデーターの両方が入っている訳ではなさそうですし...

関連するQ&A

  • エクセルで処理を繰り返す。Excel VBAで質問です。

    次のようなマクロを考えています。 “シート1”で県名をリストから選ぶと“シート2”のデータ(文字) を“シート3”に入れていく、というものです。 “シート1” C11セルがリストになっていて県名が選べる “シート2” A列に県名 1 東京都 ああああああ 2 dddd 3 4 てててててて 5 ggggggggggg 6 神奈川 つつつつつつ 7 qqqqqqqqqqqq 8 かかかかかかか 9 aaaaaaa B列にデータが文字列であります。A列では空白になっていますが、 B列では1から5行目までデータがあります(東京都の場合)。ただ 3行目のように空白になってい場合もあります。 ここでやりたいのは、例えばシート1のリストが東京都の場合、 ・シート2のA列に東京都を見つけて、 ・シート2のA列が次の県名になるまでB列のデータを ・シート3のB17から下にコピーする というものです。分からず困っていますがどなたか教えていただけないでしょうか。 ※画面の設定がうまくいかないんですが、A列が県名、それ以外はB列に入っています。

  • EXCEL2007で2列の入力内容を集計するには?

    EXCEL2007で、次のような集計をどうするかわからず、困っています。 たとえば、各入力行に、 ----- 東京都  杉並区 東京都  千代田区 神奈川県 瀬谷区 神奈川県 横浜市 東京都  千代田区 東京都  武蔵野市 東京都  杉並区 神奈川県 横浜市 東京都  千代田区 ----- ...のように、2列にそれぞれ文字列が入っているデータにおいて、2列の語句の組み合わせで一番多いものをカウントアップし、多いもの順に表示させたいのです。 上の例でいえば、 東京都  千代田区 3 東京都  杉並区 2 神奈川県 横浜市 2 東京都  武蔵野市 1 神奈川県 瀬谷区 1 のようにカウントしたものを作りたいのです。 2つの語句を結合してしまってからピボットテーブルを使えばできそう、とまではわかってきたのですが、できれば2列に分かれたまま集計したいです。 お知恵をお貸しください。

  • エクセル VBA 複雑な行列入れ替えコピー

    VBAを使って複雑な行と列を入れ替えをしたいのですが?どなたか伝授していただけませんでしょうか?    A    B    C 1 東京都  ペット マルチーズ 2 神奈川県 ペット チワワ 3 埼玉県  ペット 柴犬 4 千葉県  ペット プードル  ・  ・  ・ 1,000行あります。 これを 別シートに20行づつ1行にまとめて 東京都 ペット マルチーズ 神奈川県 ペット チワワ ・・・ のようにしたいのです。 コピー先のデータ行数は元が1,000行だったので、結果50行になります。 よろしくお願いします。

  • Excel でのアンケート集計方法

    エクセルでアンケートの集計をしています。 神奈川県 愛知県 大阪府 東京都 神奈川県 東京都 愛知県 東京都 ・ ・ ・ ・ ↑のように複数の結果を集計したいのですが、 何県がいくつあるかを調べるにはどのようにすればよいでしょうか? 現在は昇順で並び替えて、 手作業で重複している県を削除しているのですが、 今後データ数が多くなってくると、 とても手作業ではできなくなるので、 良い方法をご存知の方がいらっしゃったらお教えください。

  • Excel VBAでの集計マクロについて

    添付画像のような感じで、 C列に存在する同じ列名の数だけE列の数字を足して 合計値を横並び表示させたいのです 出力はGetOpen(?)から既存ファイルを開き、 2行目からデータを集計していきたいです(1行目のデータは固定値(入力済み)) 同じ記号が含まれている文字列(△1~△5)は足して出したいです VBA、まったくの未経験者ですのでご教授のほどよろしくお願いします

  • エクセル2007VBAで検索するコードを知りたい。

    エクセル2007(Excel2007)のVBAで【検索と置換】と同等の機能をもった検索アプリケーションを作りたいのですが、 そのコード(コマンドボタンを実行したときのコード)を教えていただけないでしょうか。 (おそらくですが、リストボックスのコードも必要だと思います。) 正しくは、【検索と置換】から【置換】機能を無くしたものとイメージしていただきたいです。 ●設置するもの ユーザーフォーム(UserForm1) テキストボックス(TextBox1) コマンドボタン(CommandButton1) リストボックス(ListBox1) ●仕様 ユーザーフォームのテキストボックスに入力してコマンドボタンを押すと、検索対象を見つけ、 リストボックスにその対象一覧を行ごとに表示するものになります。 ●検索するときの条件 (1)大文字と小文字を区別しない (2)半角と全角を区別しない (3)部分一致すれば(一部でも一致すれば)検索対象にする (4)今、開いているワークシート上の「全てのセルが検索対象(列や行を指定しない)」 ※検索されたセルの存在する行ごとに、ユーザーフォームのリストボックスに(1行ずつ)表示したいです。 そして、リストボックスに表示されたデータのうち、どれか1つを選ぶと、その選択対象の行の【D列】にアクティブセルを移動するようにしたいです(画面もアクティブセルが見える位置にスクロールします)。 ●リストボックスに(1行ごとに)表示するもの● ↓↓↓ (左から)I列の値、D列の値、O列の値、Q列の値(→4列の値になります) ※リストボックスにQ列の値が表示された場合のみ(Q列に何かしらのデータがある場合のみ)、 リストボックス上の【その行の(I列の値、D列の値、O列の値、Q列の値の)文字すべてを赤色】にして表示していただきたいです。 分かる方がいましたらよろしくお願いいたします。

  • エクセルVBAで同じ種類を集計したい

    A列からAS列までの大きな表があります。 1行目はタイトルで2行目から約500行くらいまでがデータです。 データはA~X列が文字列でAAからAS列が数値です。 これをP列の文字列を基準として 同一のものを別シートにコピーし、その最終行のAAからAS列に数値の合計を入れたいのです。 300行のデータはP列の文字で分類すると20シート程度になるかと思います。 データは既にP列を基準にソートしてあり、途中空白行はP列にはありません。 なにとぞよろしくご教示お願い申し上げます。

  • エクセルの入力規制?について教えてください!

    「データ」→「入力規制」で入力値の種類を「リスト」にしたのですが 元の値の中に重複したデーターが入っております。するとボックス内はそのまま表示されてしまうのですが、複数表示を1つにするにはどうしたらよいでしょうか。アイディアをください。 例  A    B    C   東京都 aグループ   神奈川 aグループ   東京都 bグループ   東京都 cグループ   神奈川 bグループ    ・    ・ このときのA列B列に各「入力規制」をかけたいのです よろしくおねがいします。

  • エクセルでの集計方法

    たとえば、このようなリストが500行くらいあります。 コード 123 121 101 111 112 103 121 上2桁(10、11、12)は部屋番号 下1桁(1、2、3)は年代区分だとします。 (本当は各10種類づつあるが) 下記のように A列に、部屋番号を表示 B列に、年代区分に表示したとして、 C列に、データの個数の合計 を表示する方法は? A列、B列、C列 10、1、○○ 10、2、○○ 10、3、○○ 11、1、○○ 11、2、○○ 11、3、○○ ○○はデータの個数 エクセルは、2003です

  • EXCELデータの集計

    下記のように各セル内に4つの文字が入っていたと仮定します。 埼玉県 千葉県 埼玉県 神奈川県 通常、文字列の数を集計したい場合、『COUNT』にて集計を すると、データの数が『4』となると思います。 ここからがご質問ですが、 「県の数を集計したい」場合、どのような関数を入れたら 良いのでしょうか? 結果としては、埼玉県、千葉県、神奈川県と県の種類が 3種類なので、データの数が『3』となるようにしたいと 思ってます。 かなり、困っているので、どなたか教えて下さい

専門家に質問してみよう