- ベストアンサー
エクセルで特定の値を入力すると自動的に振り分け
- エクセルで特定の値を入力すると、自動的に振り分ける方法について質問しています。例えば、特定のセルに日付や項目、収入や支出の値が入力されると、それに応じて別のシートに振り分ける機能を実現したいと考えています。
- 具体的な例として、シート1に日付、項目、収入、支出、備考などの情報があり、シート2やシート3などの月別のシートに自動的に振り分けたいという要望があります。
- 質問は、エクセルの関数やマクロなどを使用して、特定の値が入力された場合に自動的に別のシートに情報を反映させる方法を知りたいというものです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例データ Sheet1 A2:B7 x 2011/5/1 y 12 z 1 u 23 v 24 s aaa ーー Sheet2 A2:A7 項目見出しのつもり。 y z u v s ーー Sheet3 A2:A7 y z u v s ==== Sheet2でB2に =IF(MONTH(Sheet1!$B$2)=4,Sheet1!B3,"") 下方向に式複写 ーー Sheet3でB2に =IF(MONTH(Sheet1!$B$2)=5,Sheet1!B3,"") 下方向に式を複写する ==== 結果 Sheet1のB2が2011/5/1なら Sheet3のB2:B7も含めて、Sheet3は y 12 z 1 u 23 v 24 s aaa Shhet2B2:B7は空白 ーー Sheet1のB2が2011/4/1なら、Shhet2が変わることを足し渇ること。 == Shhet1のB2は上記では日付シリアル値の日付が入っている前提。 =IF(MONTH(Sheet1!$B$2)=4,Sheet1!B3,"") の4はシートに4の数字を持てば、そのセルを使えば、4や5など指定しなくても済む === 質問の表現どおりすると上記になった。 しかし全般に、質問のこの考えは初心者の思いつきの気がする。 初心者が今まで同じ発想で質問したと思うが、 シートのデータを(同じセルの中身を変えることで)違ったシートのセルにデータを投げるというのは、無理がある。 VBAならSheet1と関係を絶てるが、上記では何時までもSheet1につながってしまう。 エクセルの主義は、Sheet1で、4月はB列に、5月はC列に、・・といった風に列を変えてデータを持つのだ。 === あるいは質問表現がまずかったのか、 私の質問のまいようの理解がおかしいのか。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
可能かと言われれば,マクロを駆使して可能です。 手順: 新しいブックを開く あなたがご質問に書かれたサンプル記述のその通りにシート上に作成する ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub macro1() dim w as worksheet dim wo as worksheet set wo = activesheet on error goto errhandle set w = worksheets(format(range("B1").value, "yyyymm")) on error goto 0 w.range("A65536").end(xlup).range("A2:E2").value = application.transpose(range("B1:B5")) exit sub errhandle: worksheets.add after:=worksheets(worksheets.count) activesheet.name = format(wo.range("B1").value, "yyyymm") activesheet.range("A1:E1").value = application.transpose(wo.range("A1:A5").value) wo.select resume end sub ファイルメニューから終了してエクセルに戻る シート上にオートシェイプの図形を配置する 右クリックしてマクロの登録を開始,いまコピーしたmacro1を指定する あなたがご質問に書かれたサンプルの通りデータを記入し,図形をクリックしてマクロを起動する。 とりあえず手順は以上です。 しかしながら実際は,こんな丸投げで誰かに作ってもらったマクロは,現実の役には殆ど立ちません。(後から実はこうでした,また作り直してくださいは無しでお願いします) また一枚のシートにデータを記入して,どこか別のシートに履歴を残すといった使い方自体,初心者さんなら一度は誰でも思いついて実現できずに諦める典型的な試みの一つです。 現実のエクセルの使い方としては, 作成例: A列に日付列を設ける B列に項目列を設ける C列に収入列を設ける D列に支出列を設ける E列に収支列を設ける F列に備考列を設ける そうして上から順にデータを上から順に記入します。(こういうのを「リスト形式」と言います) 月が変わったらリストを改めるとかは一切考えないで,ずらずらとひたすら下へ下へと記入していきます。 月集計とかそういうことは,このひたすら下へと続けたリストを元データにして,エクセルの機能で(通常はピボットテーブルレポートなどの機能を使って)集計表を自動で作成させて運用します。
お礼
ご回答ありがとうございました。 形ばかりを気にしていたようです。目が覚めました。 途中まで、出来ましたが断念しました。
お礼
ご回答ありがとうございました。 形ばかりを気にしていたようです。目が覚めました。 途中まで、出来ましたが断念しました。