• 締切済み

エクセルの空白の行を印刷しない方法

A1からE101までの表があります。 E列には数式が入っていて、100行まで数値が入っています。 101行は縦計が入ってます。 この表は50行しか入力しない時や100行全部入力する場合もあり、少ない行しか入力のなかった時にも空白の行(E列には必ず数値が入ってます)が印刷されて困っています。 AからDが空白の時にその行から下が印刷されずに、縦計の101行が持ち上がって印刷される方法はないでしょうか?

  • sskgn
  • お礼率16% (1/6)

みんなの回答

回答No.4

E 列は数値とのことですので、次の 2 式のうちのどちらかを記入し、フィルタをかけてください。数値「0」は、空白とはみなされません。 F2 =count(e2) G2 =countblank(e2) 必要なら、添付図のとおり、F 列や G 列を印刷範囲の外にすることもできますね。

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

 説明がそれだけでは状況が良く解りません。  縦計とは、E101セルにE2からE100までの合計を表示させるだけなのでしょうか?  それとも、E2セルから、「A列等が空欄になっていない最下段の行」のE列のセルの所までの合計をE101セルに表示させるだけなのでしょうか?  それとも、他の列に関しても、E列と同様に値が関数によって表示されていて、合計値を求めなければならないのでしょうか?  それと、A列~D列の何れかの列に、印刷しなければならない行には必ず何らかの文字か数字が入力されていて、印刷しなくとも良い行は必ず空欄となっている列はあるのでしょうか?  もし、例えば、A列にデータが入力されている最終行の所までと、縦の合計値を求める行だけは印刷を行い、合計値を求めるのは印刷される行に関してのみで、A列にデータが入力されている最終行よりも下になっているE列の数値に関しては、合計の対象には含めないという事であれば、次の様にされては如何でしょうか?  今仮に、その表が存在しているシートがSheet1であるものとします。  その場合、Sheet1はあくまで手入力しなければならないデータの入力用(E列等の関数によって値が自動的に決まる列はそのまま関数を入れておきます)として使用し、別のシート(ここでは仮にSheet2とします)に印刷用の表が(関数によって)自動的に作成される様にしておき、縦の合計も、やはり関数によって「A列にデータが入力されている最終行」から1行おいた行(Sheet2の行の事です)の所に自動的に表示される様にしておいて、印刷等はSheet1ではなく、Sheet2で行えば良いと思います。  まず、Sheet1のA101セルは空欄(スペースも入れないで下さい)として下さい。  次に、Sheet1のA1~E1の範囲をコピーして、Sheet2のA1~E1の範囲に貼り付けて下さい。  次に、Sheet2のA2セルに次の関数を入力して下さい。 =CHOOSE(MATCH(ROW()-MAX(IF(COUNT(Sheet1!$A:$A),MATCH(9E+307,Sheet1!$A:$A),1),IF(COUNTIF(Sheet1!$A:$A,"*?"),MATCH("*?",Sheet1!$A:$A,-1),1)),{-9999999,1,2,3}),IF(INDEX(Sheet1!A:A,ROW())="","",INDEX(Sheet1!A:A,ROW())),"",CHOOSE(COLUMNS($A:A),"縦計","","","",SUM(A$1:INDEX(A:A,ROW()-1))))  次に、条件付き書式を使って、次の数式による条件を満たした際に、セルの4辺に罫線が引かれる様に設定して下さい。 =COUNTIF($A$1:$A1,"縦計")=0  そして、Sheet2のA2セルをコピーして、Sheet2のA2~E102の範囲に貼り付けて下さい。  これで、データが入っている最終行から1行あけた所が、縦計が表示される行となっている表が自動的に作成されます。(罫線も自動で引かれます)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

飛び飛びのセル範囲を印刷範囲にすることはできますが, >縦計の101行が持ち上がって印刷される方法 は,出来ません。 そのように印刷をしたい場合は >空白の行(E列には必ず数値が入ってます)が印刷されて困っています。 このE列を E2: =IF(条件,"",実際の計算式) 作成例:たとえば横計したいなら =IF(SUM(A2:D2),SUM(A2:D2),"") などのようにして「条件に見合わないE列には数字を表示しない」ように細工し,E列にオートフィルタを取り付けて「空白は表示しない」状態に纏めて印刷してください。

  • chie65535
  • ベストアンサー率43% (8514/19356)
回答No.1

オートフィルタを設定し、A~D列のフィルタを「空白以外のセル」にしましょう。 ただし、これだと「A~D列が全部埋まっている行しか出なくなる」ので「A~D列の全部または一部だけ埋まっている場合は出す」は出来ません。 「A~D列の全部または一部だけ埋まっている場合は出す」って場合は、F列あたりに作業列を作って、F1セルに =AND(ISBLANK(A1),ISBLANK(B1),ISBLANK(C1),ISBLANK(D1)) と入れて、F2~F100までオートフィルでコピーして、オートフィルタでF列が「FALSE」の物だけ表示すれば良いでしょう。 この場合、総計がある101行目は「常に表示したい」ので、F101には「=FALSE」と言う式を入れましょう。そうすれば101行目は常に出てきます。 なお、作業列のF列は、列幅を0にしておくか、印刷範囲の外にしていけば、印刷されません。

関連するQ&A

  • EXCELで式での空白セルの挿入方法

    A列は空白行で、B列は数値が入っていたり空白だったりする行で構成されています。 またC列からD列までの全ての行には数値が入っています。 この時A列に条件付き数式を入力して、B列が空白でなければB列に空白セルを挿入して現B列からD列を右にシフトさせたいのですが、数式で可能でしょうか? 数式で可能ならばA列に入力する式を、不可能なら参考のためVBAでの記述をお教え頂けると嬉しいです。(VBAはあまり理解しておりませんが。) 例 【処理前】 A列 B列 C列 D列 E列     22   33  44          55  66     77   88  99         100  101 【処理後】 A列 B列 C列 D列 E列 式       22  33  44 式       55  66 式       77  88  99 式      100  101 2万行の処理を1回のみしたいです。 宜しくお願いします。

  • エクセルマクロ、空白行(セル)の挿入

    データがA、B、C、D、E列100行まであります。 このうちD、E列を除き、エクセルのマクロで1行ごとに空白で10行挿入したいです。 (A、B、C、D列のデータに空白セルを10行分挿入し、下にシフトするイメージ。D、E列はそのまま。) ご教授頂きたく、お願いします。

  • エクセルの空白を求めたいのですが。

    エクセルの空白を求めたいのですが。 例えば、 ・・A B C D E 1 4 2 3 8 4 5 6 4 7 8 9 2 10 A列の数字入力があるセルから、次のセルの入力値まで の空白の個数を関数で出来ますでしょうか? A9~A6 は空白が2個となります。 A6~A3 は空白が3個となります。 A列の 各行 には他のセルで計算された値を出しているので、 各行に現れる数値は、その時によって違います。(現れる数値は整数です) わかる方いましたら、宜しくお願いします。

  • エクセルで数式が入ったセルを空白にしたい。

    エクセルで数式が入ったセルを空白にしたい。 A1に"100"と言う数字、 B1はA1と同じ数値を自動入力させているので"=A1"という式が 入ってます。このB1の数式をB2からB10までコピーしているのでA2からA10に入力した数値が 反映されます。しかしA列にはいつも数値が入力されているわけではなく空白にする場合もあります。 でもB列の数式はコピーされてるので"0"が残ります。 そこですべて入力終了後にこのB列に自動で入力された"0"を削除したいのですが 置換で"0"にしても入ってるのは数値じゃなくて数式なので該当なしになるし、 数式も列ごとに移動されてるので一定ではありません。 この"0"を一括で削除するにはどうすればいいでしょうか? 入力範囲は500行まで及ぶのでいちいち"0"を探して削除するのが大変です。 分かりにくい質問ですいませんがよろしくお願いします。

  • エクセルで数式が入ったセルを空白にしたい。

    エクセルで数式が入ったセルを空白にしたい。 A1に"100"と言う数字、 B1はA1と同じ数値を自動入力させているので"=A1"という式が 入ってます。このB1の数式をB2からB10までコピーしているのでA2からA10に入力した数値が 反映されます。しかしA列にはいつも数値が入力されているわけではなく空白にする場合もあります。 でもB列の数式はコピーされてるので"0"が残ります。 そこですべて入力終了後にこのB列に自動で入力された"0"を削除したいのですが 置換で"0"にしても入ってるのは数値じゃなくて数式なので該当なしになるし、 数式も列ごとに移動されてるので一定ではありません。 この"0"を一括で削除するにはどうすればいいでしょうか? 入力範囲は500行まで及ぶのでいちいち"0"を探して削除するのが大変です。 分かりにくい質問ですいませんがよろしくお願いします。

  • 空白セルのカウント方法

    どなたかご存じでしたら回答をお願いします。 【質問】 各列毎に●や★が任意の数がある8行のセルがあります。 各列毎に8行目から上に遡り、●までの間の空白のセルを数える方法が知りたいです。 但し、★も”空白の1つ”として数えます。 【入力】   A  B  C  D  E  F  G ・・・・ 1 ●        ★ 2       ●  ●  3       ★        ● 4             ★ 5              6 7                ● 8                   ● 【結果】  A B C  D E  F G ・・・  7 8  6  6  8  1 0 ※結果の説明 A:●の下には空白が7個。 B:●が無く空白が8個。 C:●の下に★があるが空白とみなして6個。 D:●の下に空白が6個。 E:★があるが空白とみなして8個。 F:●の下には空白が1個 G:●の下には空白が0個 使用するエクセルは2010です。 以上、よろしくお願いします。

  • エクセルで空白セルを寄せたい

    エクセル2002使用です VBAは使わずに関数だけで空白セルがあるセルを詰めて表示したいのですが・・・   A|B|C|D|E|F|G 1 あ い う え お か き 2 ○   ○ ○   ○ の表を   A|B|C|D|E|F|G 1 あ う え か  2 ○ ○ ○ ○ のように表を書き換えたいのです。 1行目には必ず文字が入力されています。 2行目には入力されているセルと空白セルが不定期に入力されています。 2行目のセルが空白ならば、1行目のセルも削除して左へ詰めて 表を転記したいのです。 よろしくお願いします。

  • エクセルの使用方法

    エクセルの使用方法で質問があります。 1.あるA列10行に数式が入力されています。その数式はA列9行+B列10行の値です。B列10行に数値を入力する時、C列10行には日付を入力しています。このままだと、B列、C列に何も入力されていない行でも、A列だけは、延々と数値が表示されてしいます。できれば、B or C列に入力していない時は、A列の表示を空白にすることはできないでしょうか? 2.上記のようにA列には、数値が入っており、何行目まで数値があるのかは、B列、C列次第です。この状態で、A列の一番下の行のセルの数値を、固定したセルに表示させる方法はないでしょうか? ただこのシートは複数個作成し、あるシートでは、10行目が一番下だったり、あるシートでは25行目が一番下だったりする条件になります。 またB列にはマイナスの数値も入るので必ずしも行が増える程、A列の値が大きいわけではありません。 3.C列の日付ですが、たとえば「2009/8/8」と入力したら、「2008.8.8」と半角で表示するようにしてるのですが、これを「2008.08.08」と半角で表示する方法はないでしょうか? 4.エクセルで時々、あるセルの左上端が緑色になり<!>と表示されています。この<!>を押すと、いろいろコメントがでてくるのですが、エラーを無視するを選ぶと、消えます。一体これは何なんでしょうか? 出ないようにする方法はないでしょうか? 以上の件、どれでもよいのでご回答くださいますようお願います。

  • エクセル関数で・・・

    A列の1行目から45行目までに、”1”か”×”を入力するか、空白があります。 B列の1行目から45行目までに、様々な数値、若しくは空白が入ります。 この時、A列が”×”の行でB列が空白でないセルをカウントする数式を教えて下さい。   A  B 1 ×  20 2 × 3 1  30 4 ×  5 1  20 6 7 1  30 8 ×  10・・・・ こんな感じで、A列が”×”でB列が空白でないセルは『2』と導きたいのです。 分かりにくい説明で申し訳ありませんが、宜しくお願いいたします。

  • エクセルの参照先(仕事で困ってます。)

      A1 B1 C1 D1 1 ■ - - - 2 ■ - - - 3 ■ - - - 4 ■ - - - 5 ■ - - - 6 - - - ● 7 ■ - - - 上の図の様にA列には1~6行にかけて■があるところに数値が入っています。 その時により1行から何行はいるかわからないのですが、 最後の行は空白にして、また次の行から数値が入るようになっています。 空白から空白までの行を合計して(今回はA1~A6)をD6に表示させたいのですが、なにぶんA列には何行入力されるか、空白が来るかなどはランダムです。 このような場合に、D列にはどのような関数を貼り付けたりしたら いいでしょうか? 入力するのはA列の数値だけにしたいということです。                                                                                        

専門家に質問してみよう