こんにちは。
エクセルでのデータ処理の質問です。
例えば、一枚目のシートで横一列に必要なデータを入力して、一覧にし、基礎データを作るとします。
これを2枚目のシートで、横一列のデータを別の書式にして作成したいと思います。
一枚目のシートの基礎データが、増えていくとすると、
増えたデータを、自動的にシート2の書式に作っていく方法はありますか?
今のところ、ワードの差込印刷しか思いつかないんですが、できれば、エクセルで自動に書式2がつくられるようにしたいのでが…。
分かりにくい質問ですみません。
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
JANPANAさん、なさりたいことが大体理解できました。
1枚目のシート(以下、データシート)には1行/件のデータ格納用シートで、2枚目のシート(以下、印刷フォーム)は1件ごとの印刷用フォームなんですね。それでしたら、印刷時にデータシートの中から目的のデータを選択して、その内容を印刷フォームに反映させ、プリントアウトするという流れになるかと思います。
さて、前回マクロをお勧めしたのですが、ずっと簡単に実現できる方法を思いつきました。それはワークシート関数の"VLOOKUP"を利用する方法です。
この関数のことはご存知かも知れませんが、一応順を追って説明いたします。
(1)データシートの一番左の列に番号列を設け、この列にデータの先頭行から末行にかけて1から順に番号を振ってください。但し、このような列が既に存在していれば、改めて用意する必要はありません。
(2)データシートの表の上方に1行以上挿入してください。挿入した行のひとつ(以下、関数行)に関数を入力していきます。関数はデータ表の列数分だけ入力します。
尚、ここから先は話を分かりやすくするために、データの格納されている表の範囲を[B4:E10](番号列はB列です)、関数行を2行目として説明いたします。
(3)いよいよ関数の入力です。C2、D2、E2のセルに次の""内を入力します。
C2: "=VLOOKUP($B$2,$B$4:$E$10,2,TRUE)"
D2: "=VLOOKUP($B$2,$B$4:$E$10,3,TRUE)"
E2: "=VLOOKUP($B$2,$B$4:$E$10,4,TRUE)"
"$B$2"は、表からデータを検索するときに用いられるキーワードを入れるセルのアドレスです。
"$B$4:$E$10"は、表全体の領域です。
"2(3、4も同様)"は、表の一番左の列を1列目としたときの列番号です。何列目のデータを表示させたいかにより決定されます。
(4)B2のセルにデータの入っている行の行番号(B列の値)を入力してください。すると、C2からE2のセルにB2のセルに入力した行に対応するデータが表示されます。
これで、関数行に任意に選択した行のデータが表示されるようになりました。
(5)印刷フォームのセルにデータシートの関数行の各セルへのリンクを作成すれば完成です。データシートのB2のセルに行番号を入力すれば、印刷フォームに目的のデータ内容が反映されます。
以上です。
長くなりましたが、よろしければお試しください。
LucyDiamondさん
わかりにくい質問にご丁寧に回答いただき、ありがとうございました。教えていただいた方法、是非試してみます。
No.6
- 回答日時:
関数だけで処理するには次のようにしてみたらいいかと思います。
(1)sheet1が元のデータのある場所で3行目から、No、相談日、活動分野、相談内容とタイトルを入れておきます。データは、4行目からA4にNo、B4に相談日、C4に活動分野、D4に相談内容が入っているとします。5行め以下も同様に入力されているとします。
また、B1のセルにプリントしたいNoを入れておくことにします。
(2)次にsheet2が打ち出し用のシートとします。
B2:相談日 B3:活動分野 B4:相談内容 とタイトルを入れておいて、データはC2からC4に打ち出すとします。
C2に =INDIRECT(ADDRESS(Sheet1!B1+3,2,,,"sheet1") ) C3に =INDIRECT(ADDRESS(Sheet1!B1+3,3,,,"sheet1")) C4に =INDIRECT(ADDRESS(Sheet1!B1+3,4,,,"sheet1")) として、関数を入れておけば、sheet1のB1のNoの数値を変えるだけでsheet2のデータが自動的に変わります。
ちなみに、Sheet1!B1+3はsheet1のB1の値(Noの数字)より3行下を表しています。(No=1なら4行目)次の2,3,4の数字は、元のデータの列番号です。
質問の意図はこんなことだろうと思いますので、試して見てください。ただ、全部自動でしたいのなら、VBAは勉強した方がいいと思います。
pascal3141さん
ご丁寧な回答ありがとうございます。
この方法も試してみようと思います。
マクロは、以前から勉強しようと思ってテキストも買ってあるんですけど、なかなか取り組むチャンスがありませんでした。これを機にがんばってみようかなと思ってます。
アドバイスどうもありがとうございました。
No.5
- 回答日時:
>この説明でわかるでしょうか?
おぼろげながら、分かりました。
>これに対して、2枚目(以降)のシートは、一件ごとのデータを相談票という書式におとし、一件一件の相談内容がわかるような書類をつくりたいのです。
>相談票一枚ごとにシートが増えるということでもかまいません。
「書式」という意味が、どうやらExcelの「セルの書式(Format)」という意味ではなさそうだなって思いました。それは、データベースのようですね。たぶん、Excelでは、すこぶる不向きな内容かなって思いました。外部データとリンクさせればよいかもしれませんが、かなり高度な内容になってしまいます。
つまり、雛型に、個々のデータを埋めて、それを1つのデータとするということだと思います。
>これを自動で2行目を打ち込んだら、書式にも入るという設定にしたいのです。このとき、相談票一枚ごとにシートが増えるということでもかまいません。
#2さんが書かれていたものとは違いますが、このようなことは、イベント・ドリブン型というマクロにすれば可能ですが、さて、どうしたものかなって思います。
No.3
- 回答日時:
ご質問には、具体性がないので、私には、お話が良くわかりません。
#1 のsa-ponさんのおっしゃるとおりでよいのでは?
つまり、
データが写される側(Sheet2)に、
=Sheet1!A1
=Sheet1!A2
とでもして、書式を、予め設定しておいたら、後は、式のコピーをフィル・コピーでもすれば、いっしょに書式もコピーされるから、書式を気にしなくてもよいと思うのです。
「0」 を出すのが嫌でしたら、「条件付書式」で、「=0」の時は、パターンで白で塗りつぶしとか 、=IF(Sheet1!A1="","",Sheet1!A1) とでもすればよいと思います。
もう少し、詳しくお話していただかないと、適切な回答は出来ないように思います。
Wordライクだと考えれば、たぶん、
例えば、「Sheet1!A1」&"様"
などとなるということだと、想像しますが。
この回答への補足
説明が悪くてもうしわけありません。
具体的に言いますと、私は、あるNPOのスタッフで、他のNPOからのマネジメントなどの相談を受けるという事業を行おうとしています。
一枚目のシートは、一行に相談を受けた日、受けたNPOの活動分野、相談内容など、基礎データを入力して、相談事業一件につき、一行を入力していきます。つまり相談事業をこなすごとにデータは増え、行が増えていきます。このデータは、相談事業が年度で終了したときに、集計用に使います。これに対して、2枚目(以降)のシートは、一件ごとのデータを相談票という書式におとし、一件一件の相談内容がわかるような書類をつくりたいのです。
=Sheet1!A1
=Sheet1!A2
というやり方だと、次の一行のデータを書式に落とすときにもう一度式を設定しなおさないといけないですよね。
これを自動で2行目を打ち込んだら、書式にも入るという設定にしたいのです。このとき、相談票一枚ごとにシートが増えるということでもかまいません。
この説明でわかるでしょうか?
No.2
- 回答日時:
マクロのExcel/VBAを使うことはできますか?
使えるのでしたら、以下のような方法をお勧めいたします。
(1)予め2枚目のシートの書式を整えておきます。
(2)1枚目のシートから2枚目のシートにデータをコピーするマクロを作成します。
(3)1枚目のシート上にボタンを配置し、これに(2)のマクロを登録します。
(4)1枚目のシートにデータを入力した時点で(3)のボタンをクリックすると、そのデータが2枚目のシートに設定した書式に従って入力されます。
もし、マクロを使われたことがなく、上記の方法を採用されるのであれば、より具体的にアドバイスを差し上げられるのですが。
この回答への補足
こんにちは。
大変参考になるアドバイスありがとうございます。
多分この方法だと思うのですが、私はマクロを使ったことがありません。
恐縮ですが、さらに具体的なアドバイスいただけますか?
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
- Visual Basic(VBA) VBAで不特定枚数印刷をしたいです。 4 2022/08/02 07:30
- Excel(エクセル) エクセル表作成についてお分かりになる方教えて下さい。 10項目程度のエクセルデーターを一件、一件、デ 9 2022/05/28 14:53
- Excel(エクセル) エクセルシートのデータを1列飛ばしで別ブックのシートに貼り付けるマクロが知りたい 2 2023/06/05 22:37
- Excel(エクセル) 指定した条件でTRANSPOSE関数を使う 5 2023/08/18 19:45
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Word(ワード) LibreOfficeで数年保存しているデータの変更作業 4 2022/07/08 17:15
- Excel(エクセル) エクセルのマクロで複数条件に当てはまるものを全て抽出したいです 7 2022/05/21 08:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
【関数】先頭だけにある、半角...
-
エクセル 白黒印刷で白線を印刷...
-
Excelのチェックボックスの使い...
-
【関数】適切な文字数の数字を...
-
Excelのpivotについて質問です
-
Excel ピボットテーブルで日付...
-
LOOKUP関数を使えばいいのでし...
-
エクセル関数を教えてください
-
エクセルのセルに同じ大きさの...
-
UNIQUE関数が使えないバージョ...
-
excelの不要な行の削除ができな...
-
エクセルで「-0.0」と表示さ...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの関数について教えて...
-
Aというブックの1というシート...
-
【マクロ】シート名を取得する...
-
VBA Private Sub Worksheet_Cha...
-
VBA、Excelのworkbook.open に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報