DTPでよく使うエクセル関数の使い方を丁寧に紹介【COUNTIF関数・OR関数・IFS関数】

はじめに

顧客リストの「顧客名」に、会社名と個人名が混在している場合が多いと思います。

大抵は「顧客名」に敬称は追記していないと思います。

ですが、このリストを使ってDMや年賀状などの宛名を印字する場合、敬称が無いと失礼ですね。

では、手で一つ一つ入力していきますか? 非常に時間と手間がかかりますよね。

顧客名が個人の場合は「様」を、法人の場合は「御中」を判別して、自動的に追加したい。

でも会社名と個人名が混在していて、どう判断して追加すれば良いのか。

また法人の場合、株式会社や有限会社だけでなく、一般社団法人や財団法人などもあります。

また、(株)や(有)、(一社)、(財)など略称で記述されている場合もあります。

今回は、それらを考慮した関数を紹介いたします。

目次


COUNTIF関数―条件に合うかどうかを判断

1 つの検索条件に一致するセルの個数を返します。

また、1 つの検索条件に一致するかどうかを判断する場合にも使用します。

=COUNTIF(範囲, 検索条件)
範囲 必ず指定。検索の対象とするセルやセルの範囲が指定できます。
検索条件 必ず指定。数値、式、セル範囲、または文字列で指定できます。
参照:COUNTIF 関数 - Office サポート
例1:「会社」の付く法人名の個数
=COUNTIF(A2:A5,"*会社*")
結果:2

OR関数

いずれかの引数が TRUE と評価された場合は TRUE を返し、すべての引数が FALSE と評価された場合は FALSE を返します。
=OR(論理式1[,論理式2],...)
参照:OR 関数 - Office サポート

IFS関数―複数の条件を一括で

最新版のExcelを所持している場合、こちらも使用可能です。

IFS 関数は、1 つ以上の条件が満たされているかどうかをチェックして、最初の TRUE 条件に対応する値を返します。 IFS は、複数のネストした IF ステートメントに置き換えることができるため、複数の条件を読み込むのがより簡単です。

=IFS(条件1がTrueであれば, 条件1の処理を行う,条件2がTrueであれば,条件2の処理を行う,…,条件127がTrueであれば,条件127の処理を行う)
IFS 関数では、最大 127 個のさまざまな条件をテストすることができます。
参照:IFS 関数 - Office サポート
例2:
B2:千葉県
=IFS(B2="千葉県","千葉市",B2="神奈川県","横浜市",B2="埼玉県","さいたま市")
結果:千葉市

会社には「御中」、個人名には「様」を追加する

まず、「顧客名」に「会社」が含まれているかどうかを判別します。

それにはCOUNTIF関数を使用して、

=COUNTIF(A2,"*会社*")

とします。

検索条件にあるワイルドカード(*)は「任意の文字列」という意味で、「"*会社*"」は「会社」の前後は何でも良い文字で「会社」が含まれていることを指定しています。

これで「セルA2に「会社」が含まれている」を意味します。

次に、「セルA2に「会社」が含まれている」場合、顧客名に「御中」を追加する、を関数で表現します。(顧客名と「御中」の間に半角アキも挿入します)

「〜する場合」はIF関数を使用します。

=IF(COUNTIF(A2,"*会社*"),A2&" 御中")

顧客名に「御中」を追加するを意味する「A2&"御中"」は、以前に紹介したテキスト連結演算子を使用しています。CONCATENATE関数を使用しても構いませんが、作りたい関数がごちゃごちゃするので今回は使用しません。

これで一応完成ですが、IF関数は条件に合わない場合の答えも記述できます。

条件に合わないのは、「顧客名」に「会社」が含まれていない場合、つまりは個人名の場合です。

その時は、顧客名に「様」を追加することになります。(顧客名と「様」の間に半角アキも挿入します)

先程のIF関数に追記すると、

=IF(COUNTIF(A2,"*会社*"),A2&" 御中",A2&" 様")

となります。



会社以外の法人にも「御中」を追加する

「御中」を追加するのは、「会社」の付く顧客名だけではありません。

「法人」の付く顧客名にも「御中」を追加しますよね。

では、「「会社」または「法人」の付く顧客名」を関数で表すには、OR関数を使用します。

=OR(COUNTIF(A2,"*会社*"),COUNTIF(A2,"*法人*"))…A

Aを、前項で作成した

=IF(COUNTIF(A2,"*会社*"),A2&" 御中",A2&" 様")

の「COUNTIF(A2,"*会社*")」と差し替えると、「「会社」または「法人」の付く顧客名」の時に「御中」を追加することができます。

=IF(OR(COUNTIF(A2,"*会社*"),COUNTIF(A2,"*法人*")),A2&" 御中",A2&" 様")

括弧がややこしくなりますので注意してください。



(株)(財)などの略称のある顧客名にも「御中」を追加する

「株式会社」「財団法人」が(株)(財)と略称になっている顧客名にも「御中」を追加したい場合、前項で作成した関数に追記します。

OR関数は、論理式を最大255個まで追加できますので、OR関数内に、COUNTIF(A2,"*(株)*"),COUNTIF(A2,"*(財)*")を追加します。

=IF(OR(COUNTIF(A2,"*会社*"),COUNTIF(A2,"*法人*"),COUNTIF(A2,"*(株)*"),COUNTIF(A2,"*(財)*")),A2&" 御中",A2&" 様")

となります。


IFS関数でまとめて処理する方法

前項で作成した関数

=IF(OR(COUNTIF(A2,"*会社*"),COUNTIF(A2,"*法人*"),COUNTIF(A2,"*(株)*"),COUNTIF(A2,"*(財)*")),A2&" 御中",A2&" 様")

は、IFS関数でも記述できます。

IFS関数は、

=IFS(条件1,処理1,条件2,処理2,…)

と、各条件に対する各処理をまとめてしまえて、OR関数を使用することなく、

=IFS(COUNTIF(A2,"*会社*"),A2&" 御中",COUNTIF(A2,"*法人*"),A2&" 御中",COUNTIF(A2,"*(株)*"),A2&" 御中",COUNTIF(A2,"*(財)*"),A2&" 御中",TRUE,A2&" 様")

とすることが出来ます。



IFS関数を使用する時の注意事項は、すべての条件が合わない時はエラーになってしまうことです。

これは、IF関数のように条件に合わない場合の処理を記述出来ないためです。

ですが、IFS関数でも全ての条件に合わない場合の処理をするTIPSがあります。

それが、上記関数の最後にある、「TRUE,A2&" 様"」です。

つまり、最後に残るものは「様」を付けるものだけですので、正しいを意味する論理値「TRUE」を書き、その時の処理を記せば良いのです。

注意としては、IFS関数は、最新のExcelでないと使用できません。

(株)(財)などの略称を正式名称に置き換えながら「御中」を追加する

前々項で一度作成しましたが、それから説明するとややこしいので、「会社以外の法人にも「御中」を追加する」で作成した関数

=IF(OR(COUNTIF(A2,"*会社*"),COUNTIF(A2,"*法人*")),A2&" 御中",A2&" 様")…B

まで戻ります。

(株)(財)などの略称を正式名称に置き換えるには、SUBSTITUTE関数を使用して、

=SUBSTITUTE(A2,"(株)","株式会社")
=SUBSTITUTE(A2,"(財)","財団法人")

となります。

条件は各々
=COUNTIF(A2,"*(株)*")
=COUNTIF(A2,"*(財)*")

ですので、

セルA2に(株)が含まれる場合、(株)を株式会社に置き換えながら「御中」を追加する
=IF(COUNTIF(A2,"*(株)*"),SUBSTITUTE(A2,"(株)","株式会社")&" 御中",●)

セルA2に(財)が含まれる場合、(株)を財団法人に置き換えながら「御中」を追加する
=IF(COUNTIF(A2,"*(財)*"),SUBSTITUTE(A2,"(財)","財団法人")&" 御中",■)

そうして、(財)のIF関数を(株)のIF関数のその他の処理の箇所(上記●の箇所)に入れ子にして、

=IF(COUNTIF(A2,"*(株)*"),SUBSTITUTE(A2,"(株)","株式会社"),IF(COUNTIF(A2,"*(財)*")&" 御中",SUBSTITUTE(A2,"(財)","財団法人")&" 御中",■))

これを、上記関数Bの「A2&" 様"」と置き換えます。

=IF(OR(COUNTIF(A2,"*会社*"),COUNTIF(A2,"*法人*")),A2&" 御中",IF(COUNTIF(A2,"*(株)*"),SUBSTITUTE(A2,"(株)","株式会社")&" 御中",IF(COUNTIF(A2,"*(財)*"),SUBSTITUTE(A2,"(財)","財団法人")&" 御中",■)))

そして最後に、■の箇所に「A2&" 様"」を入れて完成です。

=IF(OR(COUNTIF(A2,"*会社*"),COUNTIF(A2,"*法人*")),A2&" 御中",IF(COUNTIF(A2,"*(株)*"),SUBSTITUTE(A2,"(株)","株式会社")&" 御中",IF(COUNTIF(A2,"*(財)*"),SUBSTITUTE(A2,"(財)","財団法人")&" 御中",A2&" 様")))






Comments

よく読まれている記事

CSSボタンでテキストを天地中央に揃えるとき、なぜボタン高と行高を一緒にするのか

FullCalendarの導入からカレンダー毎の色指定まで

FacebookページのフィードURLを取得しウォールを自サイトに表示

Bloggerテンプレートのちょっとしたカスタマイズのまとめ

document.write() 複数行の記述方法