• ベストアンサー

エクセルであるセルの文字が他のセル内で1文字でも存在するかを知る関数は?

エクセルであるセルの文字が他のセル内で1文字でも存在するかを知る関数はありますか? たとえばA列の値に存在する文字がB列に1文字でもあるかを チェックすることができるのでしょうか。 A列    |   B列    |   C列 -------+----------+---------- ABCD  |  XYZB   |  ○ --> Bがある XY    |  ABSCE  |  X --> XもYもない HD     |  XUDM  |  ○ --> Dがある マクロ(VBA)でなく関数で表したいのですが このような関数はありますか? 関数のヘルプを調べたのですが、出来そうで出来ません。 どうぞよろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です。C1に貼り付ける式を訂正します =IF(MIN(INDEX(FIND(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),B1&A1),))>LEN(B1),"×","○")

mitmat
質問者

お礼

返信が遅くなり大変申し訳ありませんでした。 早速、やってみたところ回答どおりの関数でできました。ありがとうございました。

その他の回答 (2)

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

VBAはイヤということだが (1)ユーザー関数を作る方法がある。 VBAコードを考える、という以外は通常関数と同じ。 (2)配列関数 これも関数というのでしょうから。 例データ A列   B列     C列 ABCD XYZBC 2 AC XYZB 0 BZ XYZB   2 X XYZB   1 XB XYZB   2 CV XYZB   0 CX XYZB   1 C列は =SUM((MID(A1,ROW($A$1:$A$10),1)<>"")*IF(ISERROR(FIND(MID(A1,ROW($A$1:$A$10),1),B1)),0,1)) と入れて、SHIFTとCTRLとENTERを同時押しする。 $A$10の10はA列文字数を10以下としている10です。 C列は共通文字数なので 本質問用には、0はX、1以上は○にする部分を加えればよい。=IF(SUM(・・)=0,"✕","○") (3)普通の関数 既に回答が出ている。

mitmat
質問者

お礼

返信が遅くなり大変申し訳ありませんでした。 早速、やってみたところ回答どおりの関数でできました。ありがとうございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

C1セルに以下の式を貼り付けます  =IF(MIN(INDEX(FIND(MID(A1,ROW(INDIRECT("A1:A"&LEN(A1))),1),B1&A1),))>LEN(A1),"×","○") C1セルを下方向にコピーしてください

関連するQ&A

  • 関数内のセルの範囲を他のセルから取得する方法

    教えてください。 関数内のセル名を他のセルから取得することはできるのでしょうか? 例えば、B列の合計を求めるSUM関数であれば A1セルに関数を記述 =SUM($B$x:$B$y) A2セルに範囲(上記式のx)を指定  1 A3セルに範囲(上記式のy)を指定  10 これにより、B列のB1~B10の合計を求める。 といった感じです。 ※実際に使用したい関数は、SUMではありません。 よろしくお願いします。

  • 【至急】エクセルの関数で

    例えば、 セルA1~A3に Rev001X=589 Rev001Y=69 Rev001Z=50000 となっています。セルB列にセルA列の=以降の文字のみを取り出す関数を教えてください。 完成例(B列) 589 69 50000 よろしくお願いします!

  • 表示されている文字列を取得するエクセル関数

    例えば、 A1セル「平成28年1月5日」(シリアル値で入力) A2セル「H28.1.5」(シリアル値で入力) A3セル「12345」(数値) と入っている場合に、 関数を使って、 B1セル「平成28年1月5日」(文字列) B2セル「H28.1.5」(文字列) B3セル「12345」(文字列) と表示させることはできるでしょうか? 形式を選択して貼り付け、とか、VBAでできるのはわかるのですが、 関数だけで(しかも、できれば汎用的な形の関数で) 実現できるのかが知りたいです。

  • エクセル関数とVBA関数で意味が違うのは多いのか

    エクセル関数とVBA関数で意味が違うのは多いのでしょうか? セルA1に「A」と入れ、 B1に「=ASC(A1)」と入れると B1は「A」になります。(半角) VBE画面で Sub test() Debug.Print Asc("A") End Sub を実行すると、-32160 になります。 ヘルプより エクセルでは=全角 (2 バイト) の文字を半角 (1 バイト) の文字に変換します。 VBAでは=指定した文字列内にある先頭の文字の文字コードを返す変換関数です。 となっていますが 同じ関数でも全く意味違うのでびっくりしています。 こういうことは頻繁にあるのでしょうか? (VBAのASC関数のかわりのエクセル関数は、CODE関数でした。)

  • エクセル関数 ひとつのセルに含まれる、指定した文字の数を知りたい

    初めての質問になります。 ひとつのセルの中に、指定した文字がいくつ入っているかを確認できる関数を探しています。 たとえば、ひとつのセルの中に 『AABCDAADBCA』 といった文字列があったとき、その中で『A』はいくつ含まれているかをいうのを即座に知りたい のですが、それを調べる関数がどうしてもわかりません。 ヘルプで調べてみたのですが、結局わかりませんでした。 どなたかわかる方がいたら、ご教授願えませんでしょうか? ポイントは、『指定した文字が含まれているセルの個数』ではなく、 『ひとつのセルの中に、指定した文字がいくつ含まれるか』 です。 よろしくお願いします。

  • Excelマクロ 別セルの文字列を関数の条件部分に代入したい

    Excelで、マクロを使い以下のようなことをしようとしていますが 煮詰まってしまい困っております。どなたかお助けいただけないでしょうか。 初心者ですので、勉強不足で申し訳ございません。 1. A列にずらりと語句が並んでいる(B列は数値のデータ) 2. C列にマクロでSUMIF関数を自動的に入れていく 3. 2のSUMIF関数の「条件」に、A列の語句を代入していく 4. 3の語句の前後にはワイルドカード「*」を入れる 5. 2~4を繰り返し、A列の語句の数だけB列に作成 具体的に申しますと、下記のような関数なのですが、 =SUMIF($A$1:$C$100,"*中央区*",$B$1:$B$100) この例で言いますと、"中央区"の部分のみをA列から 一つずつ拾ってきたいのです。 ワイルドカードを使う必要がなければマクロは不要(セルのアドレスを 予め設置しておけばOKのはず)だと思いますが、 どうしてもワイルドカードでデータを拾う必要が生じています。 文字列を取ってきて組合わせていくマクロが存在するのでしょうか、 リファレンスや検索エンジンで一週間ほど調べましたがどうにも解決しませんでした。 どうかよろしくお願いいたします。

  • EXCEL関数にて、他のセルの条件により文字表示を変えたい

    スミマセン。 EXCEL関数にて、他のセルの条件により文字表示を変えたいのです。 EXCEL 2000 SP-3です。 関数について教えていただければ幸いです。 A,B,Cの三つのセルがあります A,bの内容次第でcに ”良”と表示したいのです。 a,b共に空欄なら、Cも空欄 aに文字列が入ったら Cは”良”と表示 a、bに文字列が入ったら Cは空欄 内容はいずれも文字列です。 どうしても関数で行いたいのですが、時間ばかり掛かって 作成することが出来ませんでした。 どなたかアドバイスをお願いいたします。

  • Excel VBA   %の入ったセル

    困りました、、、 VBAを使って A×30%+15000 これが入ったセルB2と たとえば250000が入ったセルB2を掛け算したいのですが (B2の数字は固定ではなくいろいろな数字が入ります) 文字列が入っていることにより うまくいきません 今は仕方なくMid関数で数字を抜き出して使っているのですが なにかよい方法はないでしょうか よろしくお願いします<m(__)m>

  • excelで指定文字間の繰り返し抽出の方法

    excelの文字列でる特定の文字と文字(この場合、カンマ「,」)の間に存在する 文字だけを抽出する方法が分かりません。 シートAとシートBが存在します。 シートA セルA セルB 売上番号 商品名 0001 A,B,C,D,E 0002 A,B,E 0003 AAA 0004 ブランク=(NULL) 0005 xyz  : シートB セルA セルB 商品番号 商品名 0001 A 0002 B 0003 C 0004 AAA 0005 E 0006 BBB 0007 D  : そこで、シートAのセルBにある商品名が、シートBのセルBの商品名に 存在するかを検索し、すべて存在したらシートAの該当する行のセルC に、”〇”か”×”を設定したい。 関数での方法があればどなたか教えてください。 関数が無理でしたら、マクロ、vbaなどで教えてください。 よろしくお願いします。

  • エクセルでA1のセルの文字とB1のセルの文字をくっつける方法

    たとえばA1のセルに「田中」という文字が入力されていて、B1のセルに「太郎」という文字が入力されているとします。 これをC1のセルに、A1セルとB1セルの文字をくっつけて「田中太郎」という文字を表示させたいのですが、関数か何かを使用してこういったことはできませんでしょうか? ちなみに、A列及びB列セルに文字が200個くらい入力されているので、コピーペーストでは辛いんです。

専門家に質問してみよう