- 締切済み
エクセルの空白の行を印刷しない方法
A1からE101までの表があります。 E列には数式が入っていて、100行まで数値が入っています。 101行は縦計が入ってます。 この表は50行しか入力しない時や100行全部入力する場合もあり、少ない行しか入力のなかった時にも空白の行(E列には必ず数値が入ってます)が印刷されて困っています。 AからDが空白の時にその行から下が印刷されずに、縦計の101行が持ち上がって印刷される方法はないでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
- kagakusuki
- ベストアンサー率51% (2610/5101)
説明がそれだけでは状況が良く解りません。 縦計とは、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/7941)
飛び飛びのセル範囲を印刷範囲にすることはできますが, >縦計の101行が持ち上がって印刷される方法 は,出来ません。 そのように印刷をしたい場合は >空白の行(E列には必ず数値が入ってます)が印刷されて困っています。 このE列を E2: =IF(条件,"",実際の計算式) 作成例:たとえば横計したいなら =IF(SUM(A2:D2),SUM(A2:D2),"") などのようにして「条件に見合わないE列には数字を表示しない」ように細工し,E列にオートフィルタを取り付けて「空白は表示しない」状態に纏めて印刷してください。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
オートフィルタを設定し、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にしておくか、印刷範囲の外にしていけば、印刷されません。