• ベストアンサー

エクセルでこんな関数ありますか?

ある文字列から特定の文字を含んだものを抽出したいのです。 例えば、品名が ABCDE ABCDD ABBDE BCBCD の場合、「CD」を含んだものを抽出する場合、 IF(セル="*CD*","有","無し") のような式で出せると思ったのですが、うまくいきません。 要は「フィルター機能」の「オプション」の「○○を含む」機能と同等の関数がないかと。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 SEARCH関数だと、アルファベットの大文字と小文字の区別が出来ません。 大文字と小文字を区別したい場合は、FIND関数を使用します。 =IF(ISNUMBER(FIND("CD",A1)),"有","無し") なお、今回の場合だと、ISNUMBERとISERRORはちょうど反対の判定結果になります。 ちなみに、No.2の方の回答にあるように、 「ISERROR()=FALSE」 とすると、判定を1回余分に行うことになります。 (まあ、たいしたことではないんですが。)

その他の回答 (5)

回答No.6

No.5です。 もし、No.5 の方法を試されるのであれば、 B2 に入れる数式を↓に変更してください。 --------------------------------------- =IF(AND($D$1<>"", ISNUMBER(FIND($D$1,A2))),ROW(A1),"") --------------------------------------- 以下、B50までオートフィルでコピーしてください。 (↑ B列を作業列として使い、品名データが50行以内に収まるとして)

回答No.5

こんにちは。 >「フィルター機能」の「オプション」の「○○を含む」機能と同等の関数 …というのは、 たとえば、D1に CDと入力すれば、"CD"という文字列を含む品名が D3以下に表示される、 というような意味でしょうか? もしそうであれば、以下のようにしてみてください。 *** ※D1に検索文字列を入れると、D3以下に該当する品名を抽出します。 ※品名が A列にあり、1行目が見出し、データはA2:A50の範囲内にあるとします。 作業列を使う方法です。 ここではB列を使います。 B列にすでにデータがある場合は、列を挿入してください。 ※あとでB列を非表示にすればいいのですが、  別に作業列はどの列でもかまいません。  たとえば P列とかQ列とかでも。 *** B2 に↓を入れ、以下オートフィルでコピー --------------------------------------- =IF(ISNUMBER(FIND($D$1,A2)),ROW(A1),"") --------------------------------------- ROW(A1) の A1 は、作業列を何行目から始めるかに関係なく、 先頭のセルは、必ず A1 にしておいてください。 D3 に↓を入れ、以下、A列のデータ数分、オートフィルでコピー -------------------------------------------------------------- =IF(COUNT(B:B)<ROW(A1),"",INDEX($A$2:$A$50,SMALL(B:B,ROW(A1)))) -------------------------------------------------------------- 上に同じく、先頭のセルは、ROW(A1) のままにしておいてください。 *** D1 に CD と入力すると、 D3セル以下に CDという文字列を含む品名が抽出されます。 データ範囲、セル位置は実際の表に合わせて変更してください。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

IF(COUNTIF(セル,"*CD*"),"有","無し") それとも IF(COUNTIF(セル,"*CD*"),セル,"")

  • puzou
  • ベストアンサー率35% (102/284)
回答No.2

=IF(ISERROR(SEARCH("CD",A1)))=FALSE,"有","無し") でできますよ。 SEARCH関数は特定の文字列を指定範囲から探し出す関数。 (もし見つからない場合は#VALUE!を返します) ISERROR関数はエラーかどうかを判別する関数です。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

以下の関数では如何でしょうか。 =IF(COUNTIF(範囲,検索値),”有”,”無”)

関連するQ&A