countif関数は、ある条件と一致する数を表示する関数です。会社で資料を作っているとき、この関数を知っているかどうかでは生産性が大きく変わると言っても過言ではないくらい重要かつ使用頻度の高い関数でもあります。
countif関数は条件に合う個数を数える関数「もし●●に合えばそれを1と数えて合計せよ」
A列に、りんご、みかん、梨、ドラゴンフルーツ、ドリアン、と表示されているとします。
| A | B | C
1 | □□□
2 | りんご
3 | みかん
4 | 梨
5 |ドラゴンフルーツ
6 | ドリアン
この場合で、りんご、に一致する個数を求めたい、
それは、countif関数で条件指定して”りんご”に一致する関数を求めればよいでしょう。
上記の一行目□□□に下記の数式を入れると、条件に合う答え「1」が出力されます。
=COUNTIF(A4:A12,”りんご”)
でも、りんご、をオートフィルタなどで非表示にした場合に、どうすればよいか?
オートフィルタでりんご、が隠れてしまう場合に、そのりんごをカウントしないようにするには?
countif関数は非表示セルもカウントするので使用しない
countif関数は見えていない折りたたんだセルも数えてしまいます。
それゆえに、ときに思うようにいかない挙動を見せます。
つまり、非表示の際は使ってはいけない関数です。
代用として、SUBTOTAL関数を用いましょう。
countifの代わりにSUBTOTAL関数を使って非表示セルをカウントしない方法
このページを読んでいる方ならご存じかとおもいます。SUBTOTAL関数は集計する関数ですから、おりたたんだりしたときに重宝されます。 9 を指定してあげれば、可視セルの集計を行います。
つまり、
これを代用すればよいのです。
countif関数では可視セルと非表示セルを区別できませんから、
その該当セルに対して、1のフラグを作業列で立ててあげればよいのです。
上記の例でいうと、
リンゴの数を可視セルのみ数えたい、その場合は、B列を作業列として、1の数値をフラグを立てます。その上にSUBTOTAL関数で表示すれば、思った値が取り出せると思います。
(リンゴでオートフィルタをかけて作業列に1を一気に入力)
| A | B | C
1 | □□□ =SUBTOTAL(9,B4:B12)
2 | りんご 1
3 | みかん
4 | 梨
5 |ドラゴンフルーツ
6 | ドリアン
私は、
この組合わせによって、リンゴを非表示にしたときに、特定の条件付き書式が作動するように設定して見やすい資料をつくることに成功しました!
コメント