• ベストアンサー

エクセル フィルタオプションで 特定の文字列を含む行を全て抽出する方法がわかりません

エクセル2002を使用しています。 エクセルフィルタオプション設定で、特定の文字列を含む行を全て抽出する方法がわかりません。 たとえば sheet1    A    B    C    1 項目1 項目2 項目3  2  あ   い    う    3  う        あ    4  え        い 5      う       Sheet2   A         B         1 抽出文字列 2 あ  3   4 (計算式) 5 (以下抽出結果)   上記のようなデータがあり、sheet2!a5以降に「あ」が該当する行を全て抽出するといった式を組みたいのですが、 Sheet2 a2に抽出文字を入力し、a4に「=or(sheet1!a2=a2,sheet1!=a2,sheet1!=a2)」といった検索条件式を組み、フィルタオプションで、 ・リスト範囲 Sheet1!$a$1:$c$5 ・検索条件範囲 $a$3:$a$4 ・抽出範囲 $a$5  と指定するのですが、うまく抽出できません。 ちなみに抽出対象が文字列でなく数字なら(たとえばSheet1のデータの文字をあ→1 い→2のように全て数字に置き換えてSheet2!a2に1を入力)抽出できるのですが・・・ 文字列をセル参照して条件式を組む場合に何か気をつけることがあるのでしょうか?文章が長くなってしまい申し訳ありません。良い方法があればご教授お願いします。

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

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

Sheet1でデーターフィルターフィルタオプションを始めると、エラーが出て実現できない。Sheet2側で行うのがこつ。 それと条件のかき方に注意が要る。 質問では「含む」となっているが、とりあえず「あ」完全一致で回答。 さらに望むなら、ワイルドカード*を使って出来ないか自分で勉強をすること。 ーー 例データ Sheet1のA1:C10 項目1 項目2 項目3 あ い う う あ え い う え え あ ダ ふ あ か か か あ ーーー Sheet2に行ってD1:F3に 条件を設定するセルとして 項目1 項目2 項目3 あ ー ー ー あ ー ー ー あ ーは回答で左に詰められないように入れていて、本当は空白セルですからよろしく。 行をずらして指定すると、OR条件になる。 質問は文章で書けば「A、B、C」列どれかに「あ」があれば抜き出す と言うことになる。 質問文に、こういうことが文章で明記されて無い、ことが質問文として不完全なんだ。 ーーー 操作は データーフィルターフィルタオプションの設定 抽出先 指定した範囲 リスト範囲 セル範囲指定のためのボックスの斜め矢印をクリック      Sheet1タブをクリックしてSHEET1のA1:C10を範囲指定。      Sheet1!A1:C10となる(正確には絶対番地指定となる) 検索条件範囲 セル範囲指定のためのボックスの斜め矢印をクリック      Sheet2のD1:F4を範囲指定      D1:F4となる(正確には絶対番地指定となる) 抽出範囲 セル範囲指定のためのボックスの斜め矢印をクリック      抽出した行を入れるセル範囲を指定。      A5:C14を範囲指定。      Sheet2!A5:C14となる(Sheet2がでない場合もある) OK 結果 Sheet2のA5:C10 項目1 項目2 項目3 あ い う う あ え え あ ー    - あ ー あ ーは前記と同じく本当は、空白を示す。

hatabou2
質問者

お礼

ありがとうございました。 解りづらい質問文の中でも回答いただき感謝しています。 OR条件の設定は解っていましたが、 項目1 項目2 項目3 あ ー ー ー あ ー ー ー あ といったような並べ方の発想がありませんでした。 色々勉強になりました。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

フィルタオプションを行う場合には同一のシート内でのみ行うことができます。シート1にデータがあってシート2で目的の文字列を含む行を表示させるには全く別の方法をとることが必要です。 シート1のA列を対象に、ある文字列の行を抽出する場合には作業列としてたとえばE2セルに次の式を入力して下方にオートフィルドラッグします。 =IF(A2=Shee2!$A$2,MAX(E$1:E1)+1,"") これはシート2のA2セルに検索する文字列を入力し、その文字列の行に上から番号を付ける操作です。 シート2ではA2セルに文字列を入力します。 シート2の5行目から下方に該当のデータを並べるのでしたら、A5セルには次の式を入力しD列まで横のオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$E:$E,ROW(A1))=0,"",INDEX(Sheet1!$A:$D,MATCH(ROW(A1),Sheet1!$E:$E,0),COLUMN(A1)))

hatabou2
質問者

お礼

ありがとうございました。何とか思っている形になりそうです。 計算式を理解するのに結構時間がかかってしまい、勉強不足である事を痛感しています。

関連するQ&A