• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel:条件にあったものを集計したい)

Excel:条件にあったものを集計したい

このQ&Aのポイント
  • Excelを使用して条件に合致するデータを集計する方法について紹介します。
  • 具体的なデータの例として、組織、課コード、課名、税抜金額、消費税、備考、コードの情報を持つ表があります。
  • 条件を別のシートに入力し、その条件に合致するデータを集計し、結果を別のシートに表示する方法を説明します。

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

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.5

>実際には、A列~L列まで項目があり、データも月々の量が、変更のため3000列でためして見たのですが、 デバックで終了してしまうところがあるのです。 そんな大きなデータは持ってないんで100行くらいのデーターで試したんですが問題なく実行できたのですが・・・ >集計のための並び替えや、3番のデータのコピーに関しても、その時々によって量が違うため、1500列にしてみました。それが、いけないのでしょうか? データのコピーに関してはL列が集計項目ならL1を選択して〔Shift〕+〔Ctrl〕+〔↓〕キーを押して〔Shift〕+〔Ctrl〕+〔←〕キーで選択するとマクロ修正しなくても良いみたいです。 L列が集計項目で無い場合はM列にダミーの集計項目を置いて選択コピー後削除したらよいかと思います。 参考までに記録したマクロを: Sub Macro1() ' ' ' Application.CutCopyMode = False Range("A1:l3000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Sheets("Sheet2").Range("A1:l2"), Unique:=False Selection.Subtotal GroupBy:=4, Function:=xlSum, TotalList:=Array(7, 8), _ Replace:=True, PageBreaks:=False, SummaryBelowData:=True Range("l1").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToLeft)).Select Selection.Copy Sheets("Sheet3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Application.CutCopyMode = False Selection.RemoveSubtotal ActiveSheet.ShowAllData Range("A1").Select End Sub

ho-sa
質問者

お礼

無事に仕上げることができました。 本当にありがとうございました。

その他の回答 (4)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.4

補足 =0145はコードの下に入力です 表示が変わっていたスペースだけの入力は無視されるのね ^^;;

ho-sa
質問者

補足

実際には、A列~L列まで項目があり、データも月々の量が、変更のため3000列でためして見たのですが、 デバックで終了してしまうところがあるのです。 集計のための並び替えや、3番のデータのコピーに関しても、その時々によって量が違うため、1500列にしてみました。それが、いけないのでしょうか?

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

私も言葉足らずだったかな? まず別シートにフィルターオプション用の条件指定欄を作成し条件を指定します。 組織 課コード 課名 税抜金額 消費税 備考 コード =0145 1.マクロの記録ON→その後フィルターオプションを実行します。※検索条件範囲は条件指定欄を選択 2.集計機能を使い〔グループの基準〕を"課名"を指定、〔集計方法〕は合計、〔集計フィールド〕は"税抜金額"と"消費税"を指定。 3.データの選択してコピー ※後でマクロの手直しが必要かな? 4.保存用シートに値のみ貼り付け 5.アウトラインのクリア 6.データを全て表示 7.マクロ記録終了 これで出来ると思うけど、3の選択するところのマクロを若干の手直しが必要。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

マクロ・VBAで出来ますが 関数式で抜きだして見ますのでこれで辛抱できないか考えて見てください。 (1)1条件(質問のコードだけ) (2)課名で小計を出すのが別途になる (3)作業列を使う など制約はありますが。 (例データ) 組織 課コード 課名 税抜金額 消費税 備考 コード aaa  123    経理 3243 282 xxx 145 1 aaa  123  経理 8227 411 yyy   418 1 aaa 125 総務  1543 77 zzz   145 2 aaa 123   経理  9810 490 nnn   145 3 ------- Sheet2に条件の145を入れる ------- Sheet3の第1行にSheet1の第1行を複写 (関数式)Sheet1 H列を作業列で使います。 H2セルに=COUNTIF($G$2:G2,Sheet2!$A$1) H5複写 (関数式)Sheet3 A2に=OFFSET(Sheet1!$A$2,MATCH(ROW()-1,Sheet1!$H$2:$H$5,0)-1,COLUMN()-1) G2までまず横方向へ式を複写。 A2:G2を範囲指定し、G2で+ハンドルを出して3行分複写。 #N/Aなどのエラー値を出さなくする方法はありますが略。 (結果)Sheet3 組織 課コード 課名 税抜金額 消費税 備考 コード aaa   123    経理 8227 411 yyy    418 aaa   125 総務  1543 77 zzz    145 aaa   123     経理   9810 490 nnn    145

ho-sa
質問者

お礼

ありがとうございます。 チャレンジしてみましたがうまくいきませんでした。 たぶん、私のやり方がいけないのですね。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

〔フィルターオプション〕+〔集計〕で表示された結果を別シートにコピーする動作をマクロで記録できるすれば可能かな?

ho-sa
質問者

補足

早速の回答ありがとうございます。 言葉が足りなかったです。 条件の数字は、変わることがあるので、条件を入力したセルを参照できればと思うのですが…。

関連するQ&A

専門家に質問してみよう