• 締切済み

Excelで、ある検索値(X)が、検索範囲に存在する場合、Xを出力するには?

ある検索値(A列の1つのセル)が、ある検索範囲(B列)に存在する場合、 C列には“検索値があればブランク、検索値がなければ、検索値を出力する”という結果を出力する場合、何か良い式の作り方はないでしょうか? 現在は =IF ( COUNTIF($B$1:$B$3,A1) >=1, "" , A1 ) という式で行っているのですが、他に何かよい方法があれば知りたいと想い、お知恵をお借りしたく質問させて頂きました。 ※A列:検索するセルの値 ※B列:検索範囲 ※C列:検索値が、検索範囲に存在していれば、ブランク、存在しなければ、検索値を表示する。 A列   B列    C列 ----------------------------------- 1あああ あああ   ブランク 2いいい いいい   ブランク 3ううう  えええ   ううう ※検索値"ううう"は、検索範囲B列に存在しないため、C列の式が埋め込まれたセルに"ううう"と出力される。 ----------------------------------- ということが実現できる方法を探しています。 用途としては 「Aの情報とBの情報の同一データ(文字)の削除」が目的であり、最終的に出力されるCの情報には 「Aがもっていて、Bがもっていない情報と、Bがもっていて、Aが持っていない情報の結合」 を行いたいと考えています。 今のところExcelでの実現を考えているのですが、もしExcel以外の他にも実現方法をご存知の方がおられましたらお知恵を貸してください、よろしくお願いいたします。

みんなの回答

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

こんにちは >「Aがもっていて、Bがもっていない情報と、Bがもっていて、Aが持っていない情報の結合」  例えば、ある行のA列セルにB列にないデータがあり、同じ行のB列セルにもA列にないデータがある可能性があるので、結局A列からB列を調べた結果とB列からA列を調べた結果を足さないと正しい結果が得られません(1行に2つの情報が発生する)。  ということですよね。

Guno-this
質問者

お礼

こんにちは、ええ、そういうことです。 申し訳ありません、結合という書き方(伝え方)がまずかったのかもしれません。 差分に当たるものかと・・・。(イメージとして、結合という言葉を使っていたもので。) 「情報A」と「情報B」の情報が混雑しており、 情報Aと情報Bのデータを調べた結果として、 データ自体は1行単位からなるものであるため、 C列には、1行1行ずつ、 あああ というデータがあるか? → ある → ブランクを設定 いいい というデータがあるか? → ある → ブランクを設定 ううう というデータがあるか? → ない → 「ううう」を設定 という風にすることで、 >「Aがもっていて、Bがもっていない情報と、Bがもっていて、Aが持っていない情報の結合(チェック)」ができると思いまして。 ※ややこしくてすみませんが、結合と書いていたのは、文字列連結させたいという結合ではなく、AとBの情報の中からの差分「Aがもっていて、Bがもっていない情報と、Bがもっていて、Aが持っていない情報を抽出する、といった意味合いでです。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

>「Aがもっていて、Bがもっていない情報と、Bがもっていて、Aが持っていない情報の結合」 という事は、A列とB列の同じ行のセルの両方に、その列にしか無い情報が入力されている場合には、A列の情報とB列の情報を結合したデータを、C列のセルに表示させるのでしょうか。  例えば、御質問文中の例では、C3セルには うううえええ と表示させれば良いのでしょうか。  それならば、以下の方法で良いと思います。  今仮に、検索範囲の最終行を99だとした場合の方法を述べさせて頂きます。  まず、C1セルに =IF(COUNTIF($B$1:$B$99,A1)=0,A1, "")&IF(COUNTIF($A$1:$A$99,B1)=0,B1, "") と入力します。  次に、C1セルを、C2~C99の範囲のセルにコピーします。  以上で完了です。

Guno-this
質問者

お礼

※A列:検索するセルの値 ※B列:検索範囲 ※C列:検索値が、検索範囲に存在していれば、ブランク、存在しなければ、検索値を表示する。 A列   B列    C列 ----------------------------------- 1あああ あああ   ブランク 2いいい いいい   ブランク 3ううう  えええ   ううう ※検索値"ううう"は、検索範囲B列に存在しないため、C列の式が埋め込まれたセルに"ううう"と出力される。 ----------------------------------- は一応完成のアウトプットではあるのですが この結果を求めるのに、他に何か簡単な方法があればと思っていたのです。 自分で作っておいてなんですが・・・ どうにも効率が良くなさそうな気がしたもので・・・。

Guno-this
質問者

補足

申し訳ありません、結合という書き方(伝え方)がまずかったのかもしれません。差分に当たるものかと・・・。(イメージとして、結合という言葉を使っていたもので。) 「情報A」と「情報B」の情報が混雑しており、 情報Aと情報Bのデータを調べた結果として、 データ自体は1行単位からなるものであるため、 C列には、1行1行ずつ、 あああ というデータがあるか? → ある → ブランクを設定 いいい というデータがあるか? → ある → ブランクを設定 ううう というデータがあるか? → ない → 「ううう」を設定 という風にすることで、 >「Aがもっていて、Bがもっていない情報と、Bがもっていて、Aが持っていない情報の結合(チェック)」ができると思いまして。 ※ややこしくてすみませんが、結合と書いていたのは、文字列連結させたいという結合ではなく、AとBの情報の中からの差分「Aがもっていて、Bがもっていない情報と、Bがもっていて、Aが持っていない情報を抽出する、といった意味合いでです。 Excelの関数を勉強しだしたところですので =IF(COUNTIF($B$1:$B$99,A1)=0,A1, "")&IF(COUNTIF($A$1:$A$99,B1)=0,B1, "") の分も参考になりました、ありがとうございます。

関連するQ&A