エクセル2007で作成した縦に長い表をA4縦方向に2列づつ印刷していくにはどうすればよいのでしょうか?

表は顧客リストなのですが、縦に長い表をエクセルで作成しました。
表は新しい顧客情報をどんどん下に入力していくので表はどんどん縦に長くなります。

また、データをおいうえお順で並べ変えたりするので
この縦に長い表のフォーマットは便宜上くずしたくないのです。

細長い表なので印刷する場合はA4用紙縦方向に2列づつ印刷していきたいのです。
そういうことは可能でしょうか?

割り付け印刷ではうまく表を2列に配置できず見栄えがよくなく、
何か良い方法があれば教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

エクセルのデータを2段組みで印刷したい場合は、編集はエクセルで、印刷はワードで行うのがお勧めです。



エクセルのデータ範囲を(今後のデータの追加に対応できるように少し大きめに)選択し、右クリック「コピー」、ワードで新規文書を開き、ページレイアウトタブの段組みから2段を選択しておき、右クリック「形式を選択して貼り付け」で「リンク貼り付け」にチェックを入れます。

このワード文書のレイアウトを適宜整えておき、エクセルでデータを変更したらこのワード文書で右クリックして「リンク先の更新」をすれば最新のエクセルデータを2段組みで印刷できます。

この回答への補足

回答ありがとうございます。

しかし、この場合、貼り付け位置が思うようにいきません。

形式を選択してリンク貼り付けすると、
張り付けたい位置より、なぜか一段落下に張り付けられてしまいます。

二段組みにしたレイアウトでは左の段組みが一段落下に張り付けられてしまうので、
右の段組みと段が一段ずれてしまいます。

普通に張り付ける場合は問題がなく張り付けたい位置にきちんと貼り付けられるのですが、
なぜ形式を選択してリンク貼り付けを行うと一段落下に張り付けられてしまうのでしょうか?

補足日時:2012/05/28 10:50
    • good
    • 12

シート1のA列にデータがあるとして、印刷のためのシートを例えばシート2に用意します。

A4の1ページ当たり40行で2列の表にするとしたらシート2のA1セルには次の式を入力してB1セルまでドラッグコピーしたのちに下方にもドラッグコピーします。

=IF(INDEX(Sheet1!$A:$A,IF(COLUMN(A1)=1,ROUNDDOWN((ROW(A1)-0.1)/40,0)*80+MOD(ROW(A1)-1,40)+1,ROUNDDOWN((ROW(A1)-0.1)/40,0)*80+40+MOD(ROW(A1)-1,40)+1))=0,"",INDEX(Sheet1!$A:$A,IF(COLUMN(A1)=1,ROUNDDOWN((ROW(A1)-0.1)/40,0)*80+MOD(ROW(A1)-1,40)+1,ROUNDDOWN((ROW(A1)-0.1)/40,0)*80+40+MOD(ROW(A1)-1,40)+1)))

印刷の際は40行を1ページになるように改ページプレビューなどで設定して印刷すればよいでしょう。

仮にシート1でデータがA列およびB列に合ってシート2では4列として40行のページにするのでしたらシート2のA1セルには次の式を入力してD1セルまでドラッグコピーしたのちに下方にもドラッグコピーします。

=IF(INDEX(Sheet1!$A:$B,IF(COLUMN(A1)<=2,ROUNDDOWN((ROW(A1)-0.1)/40,0)*80+MOD(ROW(A1)-1,40)+1,ROUNDDOWN((ROW(A1)-0.1)/40,0)*80+40+MOD(ROW(A1)-1,40)+1),MOD(COLUMN(A1)-1,2)+1)=0,"",INDEX(Sheet1!$A:$B,IF(COLUMN(A1)<=2,ROUNDDOWN((ROW(A1)-0.1)/40,0)*80+MOD(ROW(A1)-1,40)+1,ROUNDDOWN((ROW(A1)-0.1)/40,0)*80+40+MOD(ROW(A1)-1,40)+1),MOD(COLUMN(A1)-1,2)+1))

なお40行以外で設定する場合には上記の式を参考にしてください。

この回答への補足

回答ありがとうございます。

2番目の数式で試したいのですが、
循環参照による警告が出てしまいます。

また、6列にするためには式のどの部分を修正すればよいのでしょうか。

補足日時:2012/05/28 12:49
    • good
    • 6

帳票を開く前に、コピーして、原本はしまって置いて。


開いた方で、2列に印刷したい空箱を作り、コピーペースとしていけば良いでしょう。
    • good
    • 7

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelの表を二段で印刷したい

横に長いエクセルのシートを二段にして印刷にしたいのですが、どのように設定すればよいのか教えてください。

Aベストアンサー

エクセル自体の印刷機能には、2段組といった設定は無いはずです。

印刷(Ctrl+P)を行った際に出てくるダイアログ画面で、「オプション」とかってボタンがありませんか?プリンタによるとおもうのですが、そこに、2段での印刷(2ページになったときに、A4用紙の上下にそれぞれ印刷してくれる)といった設定があれば、それで行うしかないとおもいます。

Q縦一列の表を縦三列にして印刷したい

名前と電話番号だけの表を作っているので縦長の表になってしまい(→目のように…)、自動的に→田のように横に2~3列にして印刷できないかと思っています。ページ設定の「シート」の「ページの方向」で「左から右」でできるのかなーと思いましたがだめでした。印刷プレビューで1ページの範囲を出し、手で表を切りとり貼りつけでもできなくはないんですが、もっといい方法がないかなと思います。

どなたかご存知でしたら教えてください。よろしくお願いします。

Aベストアンサー

ワードに貼り付けてワードで段組印刷するのはどうでしょう。

QExcelで用紙一枚に2ページ印刷

よろしくお願いします。

WindowsXPでExcel2000を使っています。(Excel2007も別途あり)
A4用紙に表を印刷するのですが、項目が少なく縦に細長いために1ページに2ページ分を
印刷したいのです。
プリンタドライバの設定で「割り付け」を選べばできるのですが、A4用紙の使い方が思うようになりません。

A4用紙を縦に使い、2ページを左右に印刷したいのですが、A4用紙は
・縦になると、表は横に二段になってしまいます。
・表を縦に二段で印刷しようとすると、用紙は横になります。

用紙を縦に、表も縦長で2ページずつ印刷するにはどうすればよろしいでしょうか?

Aベストアンサー

印刷補助用のアプリケーションを使用する事をお勧めします。
こちらはシェアウェアですが、試用版があります。

プリンタ印刷 コスト・用紙削減 FinePrint6 カンタンPDF作成
http://www.nsd.co.jp/share/fineprint/

こちらのソフトを使う方法ですと、
・ソフトインストール、必要ならば再起動。
・Excelで対象の表2枚を、用紙を縦でプリンタにFinePrintを指定して印刷。
・FinePrintのプレビュー画面でレイアウト:4ページ、ページ順:縦方向を選択。
・プリンタ宛に印刷。
とか。

印刷前にイメージが確認できるので、印刷ミスがほとんど無くなります。
また、WordとExcelを2in1で印刷なんか出来ますので、無駄な用紙の使用が大幅に削減できます。

Qエクセルで長い行を1枚に印刷したい

エクセルで長い行のページ(50行位を1列にしています)を折り返して1枚に印刷したいのですが、方法がわかりません。どなたか、助けてください!!

Aベストアンサー

質問文を読んで間違った解釈をして説明してしまったらごめんなさい(^_^;)

まず、50行位を1列にしている…という事ですが。。。
例えばA列~AX列まで位を使用しているという事を想定して、それを1枚の用紙に印刷したいという事であれば「縮小」もしくは「割付」の方法を考えます。

「縮小」の方法は…
「ファイル」→「ページ設定」→「ページ」の中の「拡大縮小印刷」で「次のページ数に合わせて印刷」を選ぶと1枚に縮小されて印刷されます。

「割付」の方法は…
「ファイル」→「ページ設定」→「ページ」の中の「オプション」→プロパティが表示されたらその中の「レイアウト」の中の「割付」を選ぶと複数枚のページが1枚に印刷されます。

PCのバージョン等によって多少言葉や表示が違うかもしれませんが、大体はこのような感じで出来ると思います(^^)
あとは印刷プレビューを見ながら調整して下さい♪

質問者さまの知りたい事と違う事を説明してしまっていたり、間違っていたらごめんなさい<m(__)m>

Qエクセルで縦長のデータを紙の無駄なく印刷

生年月日 お名前       ★↓紙が無駄★
  1    A
  2    B
  3    C
--------------ページ区切り-------------------
  4    D
  5    E
  6    F
--------------ページ区切り-------------------
  7    G

★↑のようなデータを★
★↓のように自動で折り返して印刷★

生年月日 お名前 生年月日 お名前 
  1    A     4    D
  2    B     5    E
  3    C     6    F
--------------ページ区切り-------------------
生年月日 お名前 生年月日 お名前
  7    G     10    J
  8    H        ↓ずーっと続く
  9    I

・質問は上記の図のとおりです
 項目名はヘッダーでなんとかなるのですが
 データを折り返す方法がわかりません。
 なにか上手い方法ございましたら
 アドバイスお願いいたします。
 宜しくお願いします。

生年月日 お名前       ★↓紙が無駄★
  1    A
  2    B
  3    C
--------------ページ区切り-------------------
  4    D
  5    E
  6    F
--------------ページ区切り-------------------
  7    G

★↑のようなデータを★
★↓のように自動で折り返して印刷★

生年月日 お名前 生年月日 お名前 
  1    A     4    D
  2    B     5    E
  3    C     6    F...続きを読む

Aベストアンサー

会社でよくこのようなことができないか聞かれます。手っ取り早いのがAccessでExcelのデータをインポートし、詳細部を作り、ページ設定→レイアウト→列数で指定の列数にして印刷します。ただ、ヘッダー、フッタについては見栄えのいいレポートとはいえないかもしれません。
さてExcelでの解決方法ですが、私は、データを入力したシートとは別に印刷用シートを作成しマクロで印刷しています。下記がそれです。条件を説明します。
1.Sheet1のA1、B1に"生年月日"、"お名前"の表題が入力されていて、データは2行目から入力されていると仮定しています。
2.印刷する表はSheet2に作成し、その縦データ行数をPRTrow、その横データ組数をPRTcolにセットしてください。このマクロは質問にある、縦3×横2を想定しています。
3.また、Sheet2の縦3×横2の範囲には、"pArea"の範囲名をつけてください。
4.Sheet2からこのマクロを実行します。今はプレビューです。PrintPreviewをPrintOutにすれば印刷します。
印刷の形を違えるにはCellsの座標を修正してください。
入力データ数から印刷ページ数を求め、各データに対する印刷部分の座標を求め印刷しています。人が転記し仕上げていくような感覚です。

Public Sub Insatu()
Dim rg As Range 'データの基準位置
Set rg = Worksheets("Sheet1").Range("A1")
Dim pArea As Range '印刷データ部分
Set pArea = Worksheets("Sheet2").Range("prtArea")
Dim Datanum As Long 'データ数
Dim PRTrow As Integer '1頁行数
Dim PRTcol As Integer '1頁列数(データの組数)
Dim modePage As Integer '1頁印刷件数
Dim maxPage As Integer '最大印刷頁
'
Dim pgCot As Integer '頁カウンタ
Dim yokoCot As Integer 'カウンタ(印刷の横)
Dim tateCot As Integer 'カウンタ(印刷の縦)
Dim pINDEX As Long 'データは何行目か
'
Datanum = Worksheets("Sheet1").UsedRange.Rows.Count - 1
PRTrow = 3 '***これをセットする***
PRTcol = 2 '***これをセットする***
modePage = PRTrow * PRTcol
maxPage = Int((Datanum - 1) / modePage) + 1
'
For pgCot = 1 To maxPage
For yokoCot = 1 To PRTcol
For tateCot = 1 To PRTrow
pINDEX = pINDEX + 1
pArea.Cells(tateCot, (yokoCot - 1) * 2 + 1) = rg.Offset(pINDEX, 0)
pArea.Cells(tateCot, yokoCot * 2) = rg.Offset(pINDEX, 1)
Next
Next
ActiveSheet.PrintPreview '.PrintOut
Next
End Sub

会社でよくこのようなことができないか聞かれます。手っ取り早いのがAccessでExcelのデータをインポートし、詳細部を作り、ページ設定→レイアウト→列数で指定の列数にして印刷します。ただ、ヘッダー、フッタについては見栄えのいいレポートとはいえないかもしれません。
さてExcelでの解決方法ですが、私は、データを入力したシートとは別に印刷用シートを作成しマクロで印刷しています。下記がそれです。条件を説明します。
1.Sheet1のA1、B1に"生年月日"、"お名前"の表題が入力されていて、データは2行目か...続きを読む

Qエクセル 表を大きく、紙いっぱいに印刷したい

エクセルで表を作りました。
印刷プレビューで確認したところ
用紙に対して表が小さく見栄えがしません。

一つ一ついじればできると思いますが、
簡単に、
用紙いっぱいにフォントも大きくし、表も大きくし、
印刷するやり方はありますか。
教えてください。

Aベストアンサー

CtrlキーとPのキーを同時に押すと「印刷」ダイアログが呼び出せます。その状態でAltキーとWのキーを同時に押すと「印刷プレビュー」が表示されますので、印刷のイメージがつかめます(必ずしもプレビュー通りには印刷されませんが)
印刷プレビュー画面の上にある、設定のボタンを押してあげれば、余白を少なくしたり、拡大縮小印刷をパーセンテージを指定しておこなえたりします。いずれにせよ、プレビューで確認しながら拡大率を決めていけばいいと思います。なお、「拡大縮小印刷」のところに「次のページ数に合わせて印刷をする」というチェックをいれて横1×縦1にしてあげれば自動で拡大縮小印刷ができる場合がありますが、やってみればわかりますが、特に縮小印刷の場合小さくなりすぎたりする場合もあります。

Qエクセル 縦に長い表の印刷時、横に並べて印刷

データが縦に長く、印刷する際に1枚にまとめたいのですが、
一枚の紙に横に並べて印刷したいのですが、
プリンタの設定ではなく、エクセルのページ設定等で
行う方法はありますでしょうか。
よろしくお願い致します。

Aベストアンサー

残念ながら、Excelの設定にもこれはありません。

なので、僕の場合はそのはみ出してしまう表の部分を
図に変換して、貼り付けて印刷します。

とりあえず、別のシートにその表を全部コピーして
はみ出してしまう部分をCtrl+Cでコピーします。
で、表示したい場所のセルに移動して、Shiftを
押しながらメニューの編集をクリックします。

すると、図で貼り付けという表示がありますので
それを選択すれば、さっきコピーした表が図で
貼り付けられます。

あとは、はみ出してしまう表の部分を削除して
しまえばOKです。

なれると、簡単にできますからおすすめです。

Qエクセルで複数ページを1枚に印刷したい

エクセル初心者です。
データはA4縦用に作ってあります。
それをA4横用紙に4枚いれたかたちで印刷したいです。
ページ設定→ページ→印刷の向き→横
オプション→レイアウト→割り付け→4ページ 
にしてみたのですが、1枚目が小さくなっただけでした。
やりかたがちがうんですね。。。
1枚に4ページ印刷するには、どうしたらいいのでしょうか?

Aベストアンサー

1シートに4ページを作ってあるとして。

[印刷]ダイアログの[印刷範囲]が[ページ指定]で[1ページから]と[1ページまで]になっていませんか?
[印刷範囲]を[すべて]もしくは[1ページから]と[4ページまで]にしてみては。

印刷で失敗しないために
[プリンタ]のプロパティに[印刷のプレビュー]があればチェックしておけば、印刷時に[割り付け]や[ポスター]のようにエクセルの[印刷プレビュー]で確認できない場合でも、印刷前に画面で確認できるので失敗を未然に防げますよ。

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング