8/09/2016

Excel。行を非表示にしても合計を出すにはSUBTOTAL。では列を非表示にしたら?


Excel。行を非表示にしても合計を出すにはSUBTOTAL。では列を非表示にしたら?

<CELL関数とSUMIF関数>


以前BLOGで、行を非表示にしても、合計値や累計を算出させる方法をご紹介しております。

その時には、SUBTOTAL関数を使えば、
求めることが出来ることをご紹介しているのですが、
今回は、なんと、列を非表示にしたらSUBTOTAL関数を使っても算出できないので、
どうにかなりませんか?というご質問がありました。

では、実際に確認してみましょう。下記の表があります。

J3にSUBTOTAL関数を使って算出してみましょう。

SUBTOTAL関数は手入力したほうがいい関数でしたね。
出来れば、手入力していきましょう。

数式は、

=SUBTOTAL(9,C3:H3)

オートフィルで数式をコピーしてみましょう。

では、E:G列を非表示にしてみましょう。

ホントだ!SUBTOTAL関数を使っても、列の非表示は対応してくれませんね。

では、どうしたらいいのでしょうか?

数式を手入力するのは大変ですし、効率も悪化してしまいます。

改めて、やりたいことを確認してみましょう。
列が非表示されたらのぞいて合計したいということですよね。

非表示ということは、”見えなくする”ことでもありますが、考え方を変えると、
表示の幅を0(ゼロ)ということでもありますよね。

セルの幅を求めることは出来ないものでしょうか?

そこで、登場するのが、

CELL関数

なのです。

このCELL関数は、セルの情報を算出してくれる関数なのです。

このCELL関数を使って、セルの幅を求めて、0(ゼロ)でなければ、
合計という数式を作ってあげればいいわけです。

では、早速やってみましょう。

C6をクリックして、CELL関数を作っていきます。

CELL関数も手入力をオススメする関数ですね。

手入力ですと、検査の種類を選ぶことが出来ますが、ダイアログボックスだと、
今回使用するwidthを入力しなければいけません。

数式は、

=CELL("width",C2)

参照は、C列でしたら、どのセルでもかまいません。

7と表示されました。数式をH列までオートフィルでコピーしましょう。

この数値を使って、J列にSUMIF関数で合計値を算出していきましょう。

J3をクリックして、SUMIF関数ダイアログボックスを表示しましょう。

範囲は、$C$6:$H$6
検索条件は、">0"
合計範囲は、C3:H3

そして、OKボタンをクリックして、数式をオートフィルでコピーしましょう。

では、先程と同様に、E:G列を非表示にしてみましょう。

あれれ?J列変わってないじゃないか!
と思われたかとしれませんが、先程のCELL関数。非表示にしても、
自動的に計算しなおしてくれないのです。つまり先ほどのセル幅の情報のままなのです。

ですので、ここで、ポイント。再計算してくれるボタン。

F9

を押してみましょう。

ちゃんと、列を非表示にしても、計算してくれましたよね。

このように、CELL関数というのは、どうでしょうか?