12/07/2021

Excel。帳票で、上のセルと同じデータは「〃(おなじ)」で表示したい【Same】

Excel。帳票で、上のセルと同じデータは「〃(おなじ)」で表示したい

<IF+COUNTIF関数>

データベースとは別。帳票レベルにおいて、見やすくしたいということがあります。

例えば、次のような表。


A列の分類フィールドをみると、ペンが3レコードあって、クレヨンが4レコードある状態の表です。

データベースとしては、正しいのですが、帳票なので、繰り返しを「〃(同じ)」という文字で表示したい場合、どのようにしたらいいのでしょうか?


このような表にしたいわけです。


まさか、自力で、変更するのは大変ですし、置換で対応することもできません。


では、どのようにしたら効率よく「〃(同じ)」にすることができるのでしょうか?


そこで、考え方ですが、何度その文字が登場しているのかを算出させて、1回目に登場したところ以外を「〃(同じ)」にするようにすればいいわけです。


上のセルと同じ文字かどうかを、判断して、その件数を算出させるので、使用する関数はCOUNTIF関数がつかえそうですね。


では、次の表をつかって、数式をつくっていきます。


B列に分類2として、B2に次の数式を作りました。

=IF(COUNTIF($A$2:A2,A2)=1,A3,"〃")


あとは、オートフィルで数式をコピーすれば、「〃(同じ)」と表示することができました。


IF関数で「〃(同じ)」を表示させるかどうかの判定をさせていますが、論理式のCOUNTIF関数をつかうことで、容易に対応することができます。


論理式のCOUNTIF関数のところだけを取り出してみたのが、D列です。

D2の数式は、

=COUNTIF($A$2:A2,A2)

としてあります。


この数式のポイントは、最初の引数の「範囲」です。


最初のセル番地だけを、絶対参照にすることで、オートフィルで数式をコピーしたときに、自動的に、範囲が拡張する仕組みになっています。


A2ならば、A2:A2という範囲なので、「1」と算出されるわけです。

つぎのA3は、A2:A3という範囲の中でA3と同じものは2件あるので、「2」と算出することができるわけです。


こうすることで、COUNTIF関数で「1」以外のところが複数回登場しているということがわかります。

よって、「〃(同じ)」と表示させることができます。


データベースでは、「〃(同じ)」としてはダメですが、帳票として入力したい時には、IF+COUNTIF関数の組み合わせで対応することができます。