こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルの検索・表示機能について

エクセル2000を使用しているのですが、エクセルのシートに時系列で縦に膨大なデータがあるのですが、その中から「ABC」と言う文字と「DEF」という文字両方を含んでいる行だけを表示させ、最終は印刷をしたいのですが、どのようにすればよいのでしょうか?
よろしくお願いします。

投稿日時 - 2007-02-05 01:23:21

QNo.2724654

困ってます

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

関数とオートフィルタで可能です。

印刷範囲をあらかじめ設定しておき、印刷範囲外の列の一行目に下記の関数式を入力します。

 =ISERROR(FIND("ABC",A1,1)+FIND("DEF",A1,1))
A1の部分は文字列を検索する対象セルです。
対象の文字列があればFALSEを返し、
対象の文字列がなければTRUEを返してきます。

次に入力した列を選択し、Ctrlキーを押しながらDキーを押します。
これで関数式を入力した列いっぱいに式が複写されます。
複写された式の行に当たる部分は自動で変更されるので A1 にあたる箇所を修正する必要はありません。

あとは関数式を入力した列にオートフィルタを設定して、【FALSE】のみ抽出してください。

複数の列に検索する文字が散らばっている場合は、上の関数式の A1 を
CONCATENATE(A1,"/",B1,"/",C1)
などに置き換えて文字を繋げてください。
 "/"
は隣り合うセルの文字が直接繋がることを避けるために挿入する適当な文字です。
置き換えることなく、別の列に関数式を記述してその列を参照しても同じ結果を得られます。

使用している関数は
 FIND
 ISERROR
 CONCATENATE
の3つです。
文字列をFIND関数で探しますが、文字列が見つかった場合は数値が帰りますが、みつからなかった場合エラーになります。
エラーでなければ文字列が含まれるのでISERROR関数で判定しています。
CONCATENATE関数は文字を繋げているだけですので、A1&"/"&B1&"/"&C1 と置き換えることもできます。

投稿日時 - 2007-02-05 04:38:44

お礼

回答ありがとうございました。
参考になりました。

投稿日時 - 2007-02-05 22:18:56

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

◆関数とオートフィルタでのよるものに、こんな方法もありますよ
◆=COUNTIF(A1,"*ABC*")*COUNTIF(A1,"*DEF*")
◆「ABC」と言う文字と「DEF」という文字両方を含んでいれば、「1」が、それ以外は「0」になります
◆オートフィルタで、この列を「1」でフィルタしてください

投稿日時 - 2007-02-05 05:06:42

お礼

回答ありがとうございました。
参考になりました。

投稿日時 - 2007-02-05 22:18:31

あなたにオススメの質問