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列の合計値が変わったことが確認できました。
このように、列を非表示にしても、合計値を連動して算出するには、簡単に算出することができないようですので、ちょっとアイディアが必要なようです。