ここから質問投稿すると、最大4000ポイント当たる!!!! >>

Excelで、A列に入っている文字がB列にあるかないかを調べるにはどうすればいいでしょうか。

データ例

A B
算 漢
国 画
理 文
社 国
図 社
画 画

となっているときに

Bの画、国、社、画を見つける方法です。

以前、Bが二文字だった場合に
=IF(COUNT(1/MATCH("*"&$A$1:$A$6&"*",B1,0)),"あり","なし")
という関数を教えていただいたのですが、

応用がうまくできずわからなかったので教えていただけないでしょうか。
$A$1:$A$6が必要な範囲を示すことはわかって、それは実情に合わせたのですが…

例は6個ですが、Aは41、Bは55あります。

また、上記とは別に
Bの例の場合、
画が2回だ、など出てくる回数(3回以上出てくるようなケースもあり)も分かる方法があれば
それも教えていただけると助かります。

このQ&Aに関連する最新のQ&A

A 回答 (8件)

No.5です!


余計なお世話を焼いてしまったみたいですね!

B列を判断したいわけですよね?
単純にあるか?ないか?というだけであれば
↓の画像のような方法もあります。

数式で処理する場合は
C1セルに
=IF(COUNTIF(A:A,B1),"○","×")
という数式を入れオートフィルで下へコピー!
これでA列にあれば「○」、なければ「×」が表示されます。

他の方法としては条件付書式を使ってあればセルに色を付ける方法はどうでしょうか?

当方使用のExcel2003の場合ですが
B列すべてを範囲指定(列番号の「B」のところでクリック) → メニュー → 書式 → 条件付書式
→ 「数式が」を選択 → 数式欄に
=COUNTIF(A:A,B1) として → 書式 → 塗りつぶしのパターンで「赤」を選択しています。

これでB列にあるものは赤になると思います。

参考になれば良いのですが
これも的外れならごめんなさいね。m(__)m
「Excelで、A列にある文字がB列にある」の回答画像6
    • good
    • 0
この回答へのお礼

そうです!
「=IF(COUNTIF(A:A,B1),"○","×")」こそ私の求めていたものです!

なぜ皆さんそんな難しく考えてしまわれるのでしょうか…
なにか呼び水になるようなことを書いたでしょうか。

ともかくこれ以上私がわからないがために
ムダになってしまうご回答をいただかないように、BAを入れたいと思います。

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

お礼日時:2011/01/21 01:07

単一のエクセル通常(配列数式以外と言うこと)関数では出来ないとおもう。


その配列数式だが
=SUM(IF(NOT(ISERROR(MATCH(A1:A8,$B$1:$B$8,0))),1,0))
と入れてSHIFT+CTRL+ENTERキーの3つを同時押しする。
例データ
A列  B列
as
bt
cl
dd
eb
sx
re
fg

結果
4(b,d,e,sの4セル)
A列に、もし同じ文字が2箇所あると上記一致回数回数が増えてしまうが。
ーー
この結果が1以上だと同じ文字が両列で存在するということになる。
ーー
関数では関数を繰り返す仕組みは配列数式しかないので上記を考えた。
ただ難しくて直ちに断言できないが、SUMPRODUCT関数を使うと、配列数式でなくても同じことをやれる可能性はあると思う。(日頃配列数式とSUMPRODUCTの双対(そうつい)性を感じるので)
VBAで考えても、A列の行ごとのくり返しをするロジックは避けられないと思う。
VBAを使って見かけ上はユーザー関数をつくり、1関数化は出来るが。
    • good
    • 1
この回答へのお礼

>単一のエクセル通常(配列数式以外と言うこと)関数では出来ないとおもう。

よくわかりませんが

=IF(COUNTIF(A:A,B1),"○","×")

が私の求めていた内容を示してくれました。

たくさんご説明していただきましたが正直全く分かりませんでしたし
「下記より簡単なものを…」と何度もお願いしているのに、
そんな難しいことを書き込まれても…
お礼を言うべきなのか少し悩んでしまいますが

お時間をとっていただいたことに感謝します、ありがとうございました。

お礼日時:2011/01/21 01:11

あるかないかだけの判定ならたとえば以下のような配列数式で判定できます。


A列のデータ範囲とB列のデータ範囲を大きめに設定して、それぞれ「A列のデータ」「B列のデータ」と名前を付けてください(もちろん絶対参照の数式でもOKです)

=IF(COUNT(1/COUNTIF(A列のデータ,B列のデータ)),"重複あり","なし")

配列数式ですので、入力後Ctrl+Shift+Enterで確定してください。

どのようなデータが重複しているか表示するなら、以下のような数式になります(Excel2007以降の場合)。

=IFERROR(INDEX(A列のデータ,SMALL(IF(ISNUMBER(MATCH(A列のデータ,B列のデータ,0)),ROW(A列のデータ),""),ROW(A1))),"")

上記の式も配列数式ですので、同様に入力後Ctrl+Shift+Enterで確定して下方向にオートフィルしてください

そのデータのB列の個数は以下の式になります。

=IF(E2="","",COUNTIF(B:B,E2))
「Excelで、A列にある文字がB列にある」の回答画像7

この回答への補足

申し訳ありません。お礼欄に「バージョンも2003と私は書いていますし…」と
書いてしまいましたが、今回書いておりませんでした。
質問時に書いていたつもりでした。大変失礼致しました。
他の方にも、不明瞭な質問となってしまい、申し訳ありませんでした。

補足日時:2011/01/21 15:40
    • good
    • 0
この回答へのお礼

なるほど!ありがとうございます。

でも先に書いていただいた形より長いので残念。
バージョンも2003と私は書いていますし…
やはりニーズにこたえてくださった方をBAとしますね。

お礼日時:2011/01/21 01:14

こんにちは!


横からお邪魔します。

こういうことですかね?

C1セルに
=IF(A1="","",IF(COUNTIF($B$1:$B$55,A1),COUNTIF($B$1:$B$55,A1)&"回あり","なし"))
という数式を入れ、オートフィルで下へコピーではどうでしょうか?

もっとシンプルな数式をお望みなら、エラー処理なし・範囲限定なしで
=IF(COUNTIF(B:B,A1),COUNTIF(B:B,A1)&"回あり","なし")
という数式でも良いかと思います。

失礼しました。m(__)m
    • good
    • 0
この回答へのお礼

ありがとうございます。質問の仕方が悪かったのかもしれません。

いや、あの…
皆さんがお答えくださっているのが、
「上記とは別に…」以下の
回数を求める内容の数式ばかりなんですが、シンプルに


あるか、ないか



だけがわかる式こそ知りたいと思っていて
最初に書いたんですね。

「○」「×」とかそういうのでよくって。2回とか、分かるのはついでにわかるかな程度だったので…

私の質問の仕方悪いんでしょうか。。。

お礼日時:2011/01/20 17:16

一例です。


文字の有無は、=IF(SUMPRODUCT(COUNTIF(B1:B50,A1:A41)),"あり","なし")
文字の出現数は、仮にC1に=COUNTIF($B$1,$B$50,A1)として下方向にコピー
    • good
    • 0
この回答へのお礼

ありがとうございます。
有無だけでも結構複雑な関数になってしまうのですね。
それなら、以下の方の結果で利用する方が楽なのかなあと思いました。

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

お礼日時:2011/01/20 16:43

これでどうでしょう


=COUNTIF(A:A,B1)*COUNTIF(B:B,B1)

例の場合ですと上から0,2,0,1,1,2となります

この回答への補足

素早いご回答ありがとうございます。
シンプルに「あるかないか」を知る方法も知りたいです。
もっと簡単な関数だとありがたいです。

補足日時:2011/01/20 14:59
    • good
    • 0
この回答へのお礼

ありがとうございました!
こちらも役立てたいと思います。

お礼日時:2011/01/21 01:17

C1に


=IF(COUNTIF(A:A,B1)>0,COUNTIF(B:B,B1),"")
と入力して、下にコピペ。

この回答への補足

素早いご回答ありがとうございます。
シンプルに「あるかないか」を知る方法も知りたいです。
もっと簡単な関数だとありがたいです。

補足日時:2011/01/20 14:59
    • good
    • 0
この回答へのお礼

ありがとうございました!
こちらも役立てたいと思います。

お礼日時:2011/01/21 01:17

多重ループで検索せよ。

    • good
    • 0
この回答へのお礼

すみません、検索してみましたがよくわかりませんでした。
ご回答ありがとうございます。

お礼日時:2011/01/20 15:00

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QエクセルでB列の数値がA列(A1:A10)の範囲に存在するかどうかを知りたい

こんばんは。
エクセルでこのようなことができるのかどうか分からないので、教えてください。

B列の数値がA列(A1:A10)の範囲に含まれる数値なら○、含まれない数値なら×と、C列に表示したいのですが、エクセルでそのようなことはできるのでしょうか。
できるのであれば方法を教えていただけますでしょうか。
よろしくお願いいたします。

<<最終的な結果は以下のように表示したいです>>

  A B C

1 12 19 ○

2 15 20 ○

3 19 28 ○

4 20 30 ×

5 23 34 ○

6 28 35 ×

7 32 38 ×

8 34 39 ○

9 39

10 40

Aベストアンサー

セル C1 に式 =IF(COUNTIF(A:A,B1),"○","×") を入力して、此れを下方にズズーッと複写

QB列の値がA列にあるかを調べる関数

excel2010を使っています。
題名の通りなのですが、B列にある値がA列にあるかを関数を使って求めたいと思います。

B列に290個、A列に259個の値が入力されていて、

・B列にあってA列にないもの
・A列にあってB列にないもの

の両方を見つけ出したいのですが、よい関数を教えてください。exact関数ではダメでした。

Aベストアンサー

C1セルに
=IF(COUNTIF(B:B,A1),"","このAはAにあってBに無い")
以下コピー
D1セルに
=IF(COUNTIF(A:A,B1),"","このBはBにあってAに無い")
以下コピー

とそれぞれ埋めて検査します。

Qエクセルで値があるかないかをチェックする

質問させていただきます。

例えば
A列に仕入れ値 B列に売値の値を入れるとします。

C列には、A列に値が入力されていればC列に○、入力されておらず空白ならばC列も空白としたいのです。
D列は、B列を上記と同じようにします。

if関数かなと思ったのですが、なかなかうまくいかず困っています。宜しくお願い致します。

Aベストアンサー

一例です。
=IF(A1<>"","○","")
(""は空白、<>は不一致の意味です)

Q【EXCEL】別シートに同じ番号がある、なしの調査

タイトルの件

下記、画像をご覧下さい。

sheet1のA列に管理番号が並んでいます。
Sheet2のA列にも管理番号が並んでいます。

やりたい事は、Sheet1のB列に関数を入れて、sheet2にsheet1のA列と同じ管理番号
があるものには、【ある】と表示。無いものには、【なし】と表示したいです。

実際は、1,000件ほどの数字が、順不同で並んでいます。

ご存知の方、いらっしゃましたら、宜しくお願いします。






【エクセルバージョン:2002】

Aベストアンサー

 Sheet1のB2セルに以下のどちらかの関数を入力してから、Sheet1のB2セルをコピーして、Sheet1のB3以下に貼り付けて下さい。

=IF($A2="","",IF(COUNTIF(Sheet2!$A:$A,$A2),"あり","なし"))

或いは

=IF(INDEX($A:$A,ROW())="","",IF(COUNTIF(Sheet2!$A:$A,INDEX($A:$A,ROW())),"あり","なし"))

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QExcelで[表1]にあって、[表2]にないものを抽出する関数

Excelで[表1]にあって、[表2]にないものを抽出する関数

例)[表1]   [表2]
   A社     A社
   D社     D社
   R社     P社
   P社     R社
   D社
   F社
   F社

上記は簡単に書きましたが、表1に重複するものも含め、300社程度あるなかで
表2にリストアップされていない会社を見つける関数やその他方法論があれば
ぜひ教えてください!
(例でいえば、F社を見つける方法です。)

抽出するのは別シートでも、同じシートでも構いません。

Excel2003でも対応できるものであれば、なお嬉しいです。

よろしくお願いします。

Aベストアンサー

Countif関数で同じものがいくつあるか数えさせます。
   A   B        C
  [表1]表2にある数   [表2]
   A社          A社
   D社          D社
   R社          P社
   P社          R社
   D社
   F社
   F社
だとして
B列に =Countif(C:C,A2)
と入れて下までコピィすれば 表2に同じものがいくつあるか出ますので
0 がないものです。

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Qエクセル【A列とB列の不一致を知りたいです】

初めまして。
お忙しい中、大変申し訳ございませんが、下記に関して、ご指導のほど、宜しくお願い致します。

***************
【例】
A列    B列

あめ    チョコ
ガム    ポテトチップス
チョコ   あめ
       ガム


という列があり、A列はA1000まで続き、B列はB3000まで続きます。
必ずしも、A列の横に同じお菓子名があるわけではありません。

そこで、A列とB列を比較し、B列にしかないもの(上記「例」ではポテトチップス)のセルに色づけ、もしくはC列に、不一致するものだけ「NG」等が記載される数式を教えてください。

お忙しい中、大変申し訳ございませんが、
何卒宜しくお願い申し上げます。

Aベストアンサー

条件付書式で、B列のセルに
「数式が」
=ISERROR(VLOOKUP(B1,A:A,1,FALSE))
で書式を設定し下にコピーすると、無いものだけが書式変更されます。

同じように、B列の隣のC列に
=IF(ISERROR(VLOOKUP(B1,A:A,1,FALSE)),"NG","")
として下にコピーしても隣にNGと表示できます。

QExcelであり・なし判断

添付のworksheetで、DとF列は文字データです。
D列のそれぞれがF列にあるかを暗算で判定したのがB列です。
B列と同じ結果を得る関数を教えて下さい。
マクロではなく、=if(…,"あり","なし")のような簡単な式を期待しています。
なお、Excelは2012です。

Aベストアンサー

こんばんは!

画像の配置の場合では
B2セルに
=IF(COUNTIF(F:F,D2),"あり","なし")
という数式を入れフィルハンドルで下へコピーしてみてください。m(_ _)m

Q2つのシート間での重複データのチェック

Excelについて教えてください。
以下の2つのシートがあります。

Sheet1
すずき 03-0000-0000
やまだ 03-1111-1111
たなか 03-2222-2222

Sheet2
03-1111-1111
03-4444-4444
03-0000-0000
03-2222-2222

Sheet1には名称と電話番号、Sheet2には別所から抽出した電話番号のみのデータがあります。
Sheet1のデータの中からSheet2に電話番号があるものだけを知りたいのですが、たとえばSheet1の 各行のC列 に Sheet2に一致する番号があった場合は●等付けるにはどうすればよいでしょうか。

よろしくお願いします

Aベストアンサー

シート1のC列に式を入れます。
=IF(ISNA(VLOOKUP(B1,Sheet2!A:A,1,FALSE))=TRUE,"-","●")

【式の説明】
シート1のセルB1の値が、シート2のA列に、存在する場合は●を、存在しない場合は-をセット。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング