DTPでよく使うエクセル関数の使い方を丁寧に紹介【COUNTIF関数・OR関数・IFS関数】
はじめに
顧客リストの「顧客名」に、会社名と個人名が混在している場合が多いと思います。大抵は「顧客名」に敬称は追記していないと思います。
ですが、このリストを使ってDMや年賀状などの宛名を印字する場合、敬称が無いと失礼ですね。
では、手で一つ一つ入力していきますか? 非常に時間と手間がかかりますよね。
顧客名が個人の場合は「様」を、法人の場合は「御中」を判別して、自動的に追加したい。
でも会社名と個人名が混在していて、どう判断して追加すれば良いのか。
また法人の場合、株式会社や有限会社だけでなく、一般社団法人や財団法人などもあります。
また、(株)や(有)、(一社)、(財)など略称で記述されている場合もあります。
今回は、それらを考慮した関数を紹介いたします。
目次
- COUNTIF関数―条件に合うかどうかを判断
- OR関数
- IFS関数―複数の条件を一括で
- 会社には「御中」、個人名には「様」を追加する
- 会社以外の法人にも「御中」を追加する
- (株)(財)などの略称のある顧客名にも「御中」を追加する
- IFS関数でまとめて処理する方法
- (株)(財)などの略称を正式名称に置き換えながら「御中」を追加する
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&" 様")))
コメント
コメントを投稿