プロが教えるわが家の防犯対策術!

エクセルでデータを別シートに抽出して印刷したい


急ぎの仕事でやり方がわからず困っています。


sheet1からsheet2にデータを抽出し、
I列の名前が変わるごとに1シート作成し印刷したいと考えています。

関数で考えてみたのですがうまくできなく挫折してしまい、
お力をいただけないかと思い書き込みました。

よろしくお願いいたします。

「エクセルでデータを別シートに抽出して印刷」の質問画像

A 回答 (6件)

関数しか出来ないのなら、どうしようもない。


フィルタに代わるものはGoogleで「imogasi方式」で照会すれば、沢山の質問例が出て、関数による抜き出し方法が、4-5タイプ出てくる。
しかし関数は印刷までは指示できないのは常識。だからどうしようもない。
また改ページを入れることも関数ではどうしようもない。
一家という事で、妻子の行の番号を空白にして(見やすくはなるが)表を作るのは、エクセルではあとの処理を考えると困ることになる。これをやっているようだが、エクセルの使用経験が質問者は少ないか、偏っているのだろう。
ーーー
たまに質問に出ることでは、請求書作成データがエクセル表で複数・多数者分が作成されているが、各支払者に別葉で請求書を作成したいという質問がでる。
これに対し「請求書 imogasi]でGoogle照会すれば私の回答が出るだろう。
http://okwave.jp/qa/q2798008.html
などが説明が丁寧かな。ただし本質問用には応用力が必要かも知れない。(家族の分が別行になっていて
その数が不定数?な点)
その主旨を応用すれば
家族数だけの番号を入力(これはこの方法では)避けられない)
VBAは「Range("A1:P30").PrintOut」の一行(少ないVBAの知識で出来ること。)"A1:P30"は勝手な例。
印刷用ボタンクリック
だけで1家族分印刷が終わる。
ーーーー
仕事用にエクセルを使うなら、VBAが出来なければ直ぐ行き詰まると思う。
    • good
    • 0

この表からでは関数が長くなるので作業列を使います。

(このほうが簡単で判りやすい)

sheet1[W2]=IF(I2<>"",ROW(),W1)  下へコピー。
sheet2[k1]=MATCH(J1,Sheet1!H1:H11,0)
sheet2[k2]=COUNTIF(Sheet1!W2:W11,Sheet2!K1)
sheet2[B17]=IF(ROW(A1)<=$K$2,INDEX(Sheet1!$K$1:$W$13,$K$1-1+ROW(A1),COLUMN(A1)),"")
表の中へコピー。
sheet1のブランクのところは、sheet2では「0」になるので0を非表示で。
列に非表示があるようなので、列数は調整してください。
あと、sheet2[J1]のコードを簡単に入れ替える仕組みを作ればもっと簡単に作業できると思います、
    • good
    • 0

400人いて全部一括でやりたいならマクロの方がいいでしょう。


マイページにメルアド載せてるからそこにExcelファイルを圧縮して添付してくれれば
作って送り返しますよ
ここにコード書くのはグダグダになりそうだから勘弁。
    • good
    • 0

他の人が言ってる通り、ヘッダはvlookupで明細はフィルタリングでいいんじゃないでしょうか?


文字色を白などの背景と同じ色にしても隠せるでしょうし。
一気に全部やりたいなら、関数付きのシートを複数用意しておいて
一気に印刷するかマクロでやるとか。

この回答への補足

ありがとうございます。
説明不足で申し訳ありません。
Sheet1のデータは名前3の人数で約400名おりまして、
個人宛にsheet2のデータの形にして印刷し渡すという業務なのです。
オートフィルタで抽出はできますが、その人数分コピペするのは困難なので、
ご相談させていただきました。

関数付きのシートやマクロというのは具体的にどういった作業になるのでしょうか?
教えていただければ助かります。

補足日時:2010/06/12 14:27
    • good
    • 0

列の名前で、フィルタ機能を使って、名前ごとに印刷しては。

この回答への補足

ありがとうございます。
説明不足で申し訳ありません。
Sheet1のデータは名前3の人数で約400名おりまして、
個人宛にsheet2のデータの形にして印刷し渡すという業務なのです。
オートフィルタで抽出はできますが、その人数分コピペするのは困難なので、
ご相談させていただきました。

補足日時:2010/06/12 14:25
    • good
    • 0

I列名前3の空白部分は上と同じですよね


ならシート2を使わなくても方法はあります。

1.空白を氏名で埋めてください
2.セルI2をクリックしてアクティブにする
3.[データ]-[フィルタ]-[オートフィルタ] Excel2007のときは [データ]-[フィルター]
4.項目名の各右端の▼から選択して印刷する

※ 印刷の必要のない列は右クリックから非表示にしておく

この回答への補足

ありがとうございます。
説明不足で申し訳ありません。
Sheet1のデータは名前3の人数で約400名おりまして、
個人宛にsheet2のデータの形にして印刷し渡すという業務なのです。
オートフィルタで抽出はできますが、その人数分コピペするのは困難なので、
ご相談させていただきました。

補足日時:2010/06/12 14:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!