7/01/2026

Excel。列を非表示にしたら、合計値も連動させるには【Column hidden】

Excel。列を非表示にしたら、合計値も連動させるには

<CELL+SUMIF関数>

行を非表示にしたときに、見えているデータだけの合計値に連動させたい場合には、SUBTOTAL関数やAGGREGATE関数をつかうことで、求めることができます。


そこで、次のような横長の表があります。


H列には、

=SUM(B2:G2)

のように、SUM関数で合計を求めています。


やりたいことは、列を非表示にしたら、その分を除いた合計値を求めたい。


例えば、1~3月の数値を除いた合計を求めたいわけです。


当然、列を非表示にしたところで、SUM関数は、非表示に対応していないので、合計値はかわりません。


また、SUBTOTAL関数やAGGREGATE関数は、行の非表示には対応しますが、列の非表示には対応できません。


そこで、少し考え方を変えてみます。


そもそも、列の非表示とはどういうことなのか。

列幅が0ということです。


つまり、列幅がわかるようなものがあれば、いいわけです。

そこでCELL関数をつかうことで、セル情報の列幅を求めることができます。


ただ、このCELL関数。スピル機能に対応したため、今までのような数式ではうまく求めることができません。


B5にCELL関数の数式をつくります。


CELL関数の最初の引数は、検査の種類。

列幅の情報を知りたいので、 width を選択します。


2つ目の引数の参照は、見出しのB1を選択します。

=CELL("width",B1)

で、数式を確定すると…


スピル機能によって、勝手にゴーストが発生してしまいます。


これでは、オートフィルで数式をコピーすることができません。


なので、スピル機能にならないように数式を修正します。


=@CELL("width",B1)

「@(アットマーク)」をいれることで、スピル機能をとめることができます。
※@ = implicit intersection operator


あとは、横方向に、オートフィルで数式をコピーします。


B列の列幅を短くしても、8のままですが、F9キーを押すと、再計算されます。


F9キーをおさないと、算出結果は変わりませんが、列幅を求めることができました。


I列に列の非表示に連動した合計を求める数式を用意します。


I2にSUMIF関数を使った数式を設定しました。

=SUMIF($B$5:$G$5,">0",B2:G2)


B列を非表示にしたら、F9キーを押します。


これで、非表示を除いた合計を求めることができます。


では、数式を確認しておきましょう。


単一条件の合計を求めたいので、SUMIF関数をつかいます。


最初の引数は、「範囲」。

検索のデータ範囲です。

CELL関数の結果をつかいますので、$B$5:$G$5


オートフィルで数式をコピーしますので、絶対参照を忘れずに設定します。


2つ目の引数は、検索条件。

”>0”。

セルの幅が0より大きいならば、非表示じゃないという意味ですね。


最後の引数は、合計範囲。B2:G2


あまり列の非表示の合計をすることはないかもしれませんが、やり方の一つとして、紹介させていただきました。