• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル 並べ替え内容が毎回変わる時の貼付)

Excelで予算データを並べ替える方法

このQ&Aのポイント
  • Excelでシート全の予算データを手作業で並べ替えるのは面倒です。そこでマクロを使って自動化する方法を紹介します。
  • シート全には1課と2課の予算データがバラバラに存在し、毎月異なる予算Noがあります。マクロを使えば、予算Noで自動的に並べ替えることが可能です。
  • マクロを組むことで、Excel上でシート全に貼り付けた後、予算No毎に自動的に並べ替えることができます。マクロ初心者でも簡単に実行することができます。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

このような集計ではエクセルの標準機能であるピボットテーブルを利用されることをお勧めします。 エクセルのバージョンが記載されていないので一般的な操作で説明すると、行フィールド(行ラベル)に伝票番号、データフィールド(Σ値)に金額を配置して、行フィールドの表示データで表示項目にチェックを入れてください。 データ数に変動がある場合は、ピボットテーブルウィザードでリスト範囲を指定するときに、リスト範囲を大きめに設定し、ピボットテーブルで表示される「空白セル」を右クリックから「表示しない」設定にしてください(その他の集計行なども必要なければ右クリックから「表示しない」にしてください)。 #Officeソフトはバージョンによって使用できる機能や操作方法が大きく異なりますので、質問の際にはバージョンを明記するようにしましょう。

jyurymicke
質問者

お礼

ピボットテーブル、頑張ってみます。 ありがとうございました。 色々あるんですね。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 シート全のデーターをそのまま残すのであれば、関数でも可能ですが、マクロでなければならない理由が何かあるのでしょうか?  例えば、各シートのA列に予算No、B列に金額のデーターが入るものとします。  まず、シート1課のA列おける、最も若い予算No(例では100)を表示させるセルに、次の数式を入力して下さい。 =IF(ROWS(D$1:D1)>COUNTIF(シート全!$A:$A,"<"&200),"",SMALL(シート全!$A:$A,ROWS(D$1:D1)))  次に、上記の数式を入力したセルの右隣のセルに、次の数式を入力して下さい。 =IF($A2="","",VLOOKUP($A2,シート全!$A:$B,2,0))  次に、シート2課のA列おける、最も若い予算No(例では200)を表示させるセルに、次の数式を入力して下さい。 =IF(ROWS(A$1:A1)>COUNTIF(シート全!$A:$A,">="&200),"",SMALL(シート全!$A:$A,ROWS(A$1:A1)+COUNTIF(シート全!$A:$A,"<"&200)))  次に、上記の数式を入力したセルの右隣のセルに、次の数式を入力して下さい。 =IF($A2="","",VLOOKUP($A2,シート全!$A:$B,2,0))  次に、これらの数式を入力した各セルをコピーして、そのセルよりも下方にあるセル範囲に貼り付けて下さい。  後は、シート全にデータを入力するだけで、データが自動的にシート1課、シート2課に振り分けられて、予算Noの若い順に表示されます。

すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

どこをマクロ化したいのかわかりませんが、全データシートから課別シートに振り分けしたいのならば、マクロ記録で「フィルタオプションの設定」操作を記録しては如何でしょうか。 蛇足ですが、この操作を利用する場合、見出し行を作成して下さい。 又、検索条件でコードが数値の場合は、例えば1課の場合、AND条件で>=100、<200を設定、文字列の場合、1*の設定で良いと思います。

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter3.htm
すると、全ての回答が全文表示されます。

関連するQ&A