• ベストアンサー

Excelで条件が一致する場合、○印で表示する

Excelの関数についての質問です。 (列A)    (列B)   (列C) 相原久美子   相原久美子  ○ 高橋 聡子   上田かなえ  ○ 上田 かなえ  竹中聡美 武田 良子 列Bにデータを入力した際、列Aに同じものがあれば○を、 そうでなければ何もしないという関数を作成したいと思います。 今のところはCOUNTIF関数を使い、 =IF(COUNTIF($A$1:$A$4,B1)>0,"○","") のように組んでいますが、氏名の間に空欄を含んだ場合の処理が うまくいきません。 何か良い方法はありませんでしょうか。よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.1

こんにちは 作業用セル列Dを作って列Aの空白を処理する例です。 D列に以下の関数を入れて空白を取り除きます。 =SUBSTITUTE($A1," ","") C列に質問者さんの式を変形して入れます。 =IF(COUNTIF($D$1:$D$4,B1)>0,"○","")

leavestom
質問者

お礼

ありがとうございました。 シンプルで分かりやすく、いちばん最初に回答いただいたことに 感謝しております。 こちらに書いていただいたことをアレンジしてやったところ うまくいきました!

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

式の中では=SUBSTITUTE(A1," ","")の結果を引数として使えないので、#1のご回答のようにD列にでもスペースを除いたものをセルに1たん作って固定し、そこを探す列にする。 ーー 半角の場合も除くならE1で =SUBSTITUTE(SUBSTITUTE(A1," ","")," ","")と関数をネストする。 ーー そしてC列(B列の名がA列にあるかないかを出す列)でも =IF(COUNTIF($E$1:$E$100,SUBSTITUTE(SUBSTITUTE(B1," ","")," ",""))=1,"アリ","") 例データ A列       B列     C列    D列   E列 相原 久美子 相原 久美子 アリ 相原久美子 相原久美子 高橋聡子 上田かなえ アリ 高橋聡子 高橋聡子 上田 かなえ 竹中聡美 上田 かなえ 上田かなえ 武田 良子 武田良子 アリ 武田良子 武田良子 ーー 高橋 聡子 アリ ーー 武田 良子 アリ ーー 武田 良子 アリ 関数ではこれ以上の融通は無理で、他はVBAでも組んで、チェック項目を増やすより他ない。

leavestom
質問者

お礼

ありがとうございました。 SUBSTITUTE関数を使うことで、うまく処理できそうです。

noname#204879
noname#204879
回答No.2

      A      B    C 1  相原久美子   相原久美子 〇 2  高橋 聡子   上田かなえ 〇 3  上田 かなえ  竹中聡美 4  武田 良子   高橋聡子  〇 5  後藤 久美子   武田良子  〇 6  石嶺 聡子   後藤久美子 〇 7  平繁  かなえ  石嶺聡子  〇 8  森山   良子 平繁かなえ 〇 9  梅宮  アンナ  森山良子  〇 10         梅宮アンナ 〇 11         梅宮アンナ   〇 C1: {=IF(ISERROR(MATCH(ASC(B11),SUBSTITUTE(TRIM(ASC(A$1:A$9))," ",""),0)),"","〇")}   (配列数式)

leavestom
質問者

お礼

画像までつけていただき、ありがとうございます。 いちばん的確で、入り組んだ処理も可能であり 実用性が高い回答だと感謝しています。 私の知識不足で、記載していただいたC1のMATCH関数の引数で、 最初に「ASC(B11)」としている意味がよく分からずにいます。 回答していただいたのち、懸命に勉強していますが・・・ ありがとうございました!

関連するQ&A

専門家に質問してみよう