「スゴ技会計士からの挑戦状」VOL.5
2月 13, 2017
▼第5号-2017/02/13
──────────────────────────────────
■■■スゴ技会計士からの挑戦状 Vol.5■■■
──────────────────────────────────
【COUNTIF関数の範囲を列ごと指定する技】
重複しているコードすべてを抽出するには、範囲は常にコード全体を指定します。
C2セル=COUNTIF($B$2:$B$16,B2)
範囲の左上にも右下にも絶対参照をつけて、範囲全体を絶対参照にしてからコピペしてください。
絶対参照がまだよく分かっていないという方は、拙著
「会計士が教えるスゴ技Excel」(日本経済新聞出版社)
をぜひご覧ください。
参照の基本について、ていねいに解説しています。
<図5-1>
重複しているコードすべてを抽出することができました。
抽出した行に自動的に色をつけるには「条件付き書式」を活用します。
最初のうちは範囲をきちんと指定するこのやり方をきっちり身に付けていただきたいのですが、この方法には
・行の追加に弱い
という欠点があります。
誤って範囲外にデータを追加してしまうとカウントされずミスの原因になります。
こういう時は列ごと範囲に指定する方法で対応しましょう。
見た目もすっきりします。
ただし、データの構造をきちんと理解していないとやはりミスに繋がりますので注意が必要です。
<図5-2>
この状態だと同一ファイル内のみで重複している「123」「999」「333」にも色がついてしまいます。
「他のファイルと重複しているコード」だけを識別する方法はないでしょうか。
たいていの方はここでIF関数が思い浮かびます。
IF関数はとても便利な関数というだけでなく、プログラミングにおいても重要な要素です。
上級者を目指すからには避けてとおれない関数ですが、乱用すると非常に複雑で分かりにくくなります。
その結果、重くてメンテナンスの困難なExcelシートができあがってしまいます。
中級者の陥りやすい罠といってもよいでしょう。
IF関数を使う時は、IF関数のデメリットを理解したうえで慎重にシンプルに使うように心掛けましょう。
今回のケースはIF関数をシンプルに使って、「他のファイルと重複しているコード」だけを識別するのはなかなか困難です。
そんな時は逆転の発想が有効です。
Excelの活用に慣れてくると「同一ファイル内でのみ重複しているコード」であれば比較的簡単に識別できることに気付きます。
次回は「同一ファイル内でのみ重複しているコード」をさがしてみましょう。