5/12/2022

Excel。列を非表示にしても、手早くレコードの合計値が変わるようにしたい【Column total】

Excel。列を非表示にしても、手早くレコードの合計値が変わるようにしたい

<CELL+SUMIF関数>

簡単そうに思えるのですが、次のような表があって、


店舗を非表示にしても、F列の合計値の値を連動して算出したいのですが、これが、簡単にできません。


F2の数式は、

=SUM(B3:E2)

です。

B列を非表示にしてみましょう。


F列の合計値は、変わっていません。

つまり、列の非表示に対応していないわけですね。


SUBTOTAL関数やAGGREGATE関数は、行の非表示には対応していますが、列の非表示には対応していないので、つかえません。


では、どのようにしたら、手早く、列の非表示に連動した合計値を算出できるのでしょうか?


着目点を変えてみましょう。


そもそも、非表示ということは、列幅がゼロということです。

列幅が0だったら計算範囲から除外することができればいいわけですね。


列幅を算出するならば、CELL関数をつかえば、算出することができます。


B6にCELL関数をつかった数式を設定します。

=@CELL("width",B1)

オートフィルで数式をコピーしています。


CELL関数の前に「@(アットマーク)」をつけないと、スピル機能が使いされたことで、セルごとに算出できません。


あとは、F列の数式をSUMIF関数に変更します。

F2の数式を、

=SUMIF($B$6:$E$6,">0",B2:E2)

と設定します。


範囲には、$B$6:$E$6

列幅を算出した範囲です。オートフィルで数式をコピーしますので、絶対参照を忘れないようにします。


検索条件は、「">0"」。

比較演算子と数値を組み褪せて使うときには、「”(ダブルコーテーション)」で囲む必要があります。

合計範囲は、B2:E2


列を非表示にして確認してみます。


しかし、F列の数値が変わっていません。


ダメじゃんというわけではなくて、CELL関数は、自動的に再計算されないので、「F9」キーを押すか、数式タブの「再計算実行」をクリックします。


これで、再計算されましたので、F列の合計値が変わったことが確認できました。



このように、列を非表示にしても、合計値を連動して算出するには、簡単に算出することができないようですので、ちょっとアイディアが必要なようです。