プロが教えるわが家の防犯対策術!

Excelの関数についての質問です。

(列A)    (列B)   (列C)
相原久美子   相原久美子  ○
高橋 聡子   上田かなえ  ○
上田 かなえ  竹中聡美
武田 良子

列Bにデータを入力した際、列Aに同じものがあれば○を、
そうでなければ何もしないという関数を作成したいと思います。

今のところはCOUNTIF関数を使い、
=IF(COUNTIF($A$1:$A$4,B1)>0,"○","")
のように組んでいますが、氏名の間に空欄を含んだ場合の処理が
うまくいきません。

何か良い方法はありませんでしょうか。よろしくお願い致します。

A 回答 (3件)

こんにちは


作業用セル列Dを作って列Aの空白を処理する例です。
D列に以下の関数を入れて空白を取り除きます。
=SUBSTITUTE($A1," ","")

C列に質問者さんの式を変形して入れます。
=IF(COUNTIF($D$1:$D$4,B1)>0,"○","")
    • good
    • 16
この回答へのお礼

ありがとうございました。
シンプルで分かりやすく、いちばん最初に回答いただいたことに
感謝しております。

こちらに書いていただいたことをアレンジしてやったところ
うまくいきました!

お礼日時:2009/02/18 15:05

式の中では=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でも組んで、チェック項目を増やすより他ない。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/02/18 15:09

      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)),"","〇")}
  (配列数式)
「Excelで条件が一致する場合、○印で表」の回答画像2
    • good
    • 0
この回答へのお礼

画像までつけていただき、ありがとうございます。

いちばん的確で、入り組んだ処理も可能であり
実用性が高い回答だと感謝しています。

私の知識不足で、記載していただいたC1のMATCH関数の引数で、
最初に「ASC(B11)」としている意味がよく分からずにいます。
回答していただいたのち、懸命に勉強していますが・・・


ありがとうございました!

お礼日時:2009/02/18 15:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています