• ベストアンサー

EXCELのオートフィルタで、カンマ区切りデータから特定数値を抽出

一つのセルに、以下のようにカンマ区切りで数値が複数記入されています。 (セルの書式は「文字列」扱い) セル1: 6,10 セル2: 1,9,10,11 セル3: 2,3,11 セル4: 1 これらセルから、オートフィルタを使って"1"が含まれたセルを抽出したいのですが、 オプションを使うと、 「~と等しい」→ セル4しか選択されない 「~を含む」→ セル1~4全部が選択されてしまう となり、また、 プルダウンで"1"を選択 → セル4しか選択されない となります。(EXCEL2003で確認) 希望する動作は、セル2とセル4が選択される状態です。 ちなみに、EXCELは簡単な関数を扱える程度のレベルです。 VBのプログラミング経験はありますが、マクロは組んだことがありません。 よい方法がありましたら、ご教授ください。

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

  • ベストアンサー
回答No.2

フィルタオプションで、条件範囲に a    b -----------     1     1,     ,1, とすると、出来るようです。

noritaro
質問者

補足

回答ありがとうございます。 この方法を試そうとしたのですが、上手くできません。 a    b -----------     1     1,     ,1, [ データ ]メニュー → 「フィルタ」 → 「フィルタオプションの設定」で、 検索条件範囲に、上記のb行(見出しは含まない)を設定するということでしょうか。 このやり方だと、セル1だけが抽出されてしまいます。 ちなみに、この機能は今まで使ったことが無く、挙動がまだよく分かっていません。 お手数ですが、よろしくお願いします。

その他の回答 (3)

回答No.4

>上記のb行(見出しは含まない)を設定するということでしょうか 条件範囲として、bも含みます。bから縦に「1」「1,」「,1,」まで指定します。そうすると、データ範囲の「b」列の中から、条件に叶うものを抽出してくれます。 >この機能は今まで使ったことが無く、挙動がまだよく分かっていません この「フィルタオプション」なら、複数の条件の「and」「or」を組み合わせて抽出できます。「オートフィルタ」のオプションよりも幅広く使えます。ぜひ、トライしてみてください。また「subtotal」関数で、抽出したデータのみの合計も出せます。

noritaro
質問者

お礼

お返事遅くなりましたが、回答ありがとうございました。 かなり苦戦しましたが、なんとかできました。 これは応用範囲が広そうですね。

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

エクセルの検索などは、セルの値の1つ1つを判別します。 ですからカンマ区切りのデーたを、各セルに分けないとダメでしょう。 それはデータ-区切り位置でセルごとに簡単に分離できます。 それから考えてはどうでしょう。フィルタオプションの設定で2列以上から 検索抜き出せます。 文字列の中の、1*、*1.*1*を探す手もあるかもしれませんが、難しいかも。

noritaro
質問者

お礼

お返事遅くなりましたが、コメントありがとうございました。 各セルに分けることも考えてみます。 (が、データを処理するアプリケーションが1セルに複数データという仕様なのが厄介)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

隣のセルにて =","&セル&"," として",1,"を抽出では駄目ですかね。

noritaro
質問者

お礼

お返事遅くなりましたが、コメントありがとうございました。 これは簡単、確実ですね。 EXCELに詳しくない同期には、この方法が評判良かったです。

関連するQ&A

  • エクセルのオートフィルタオプションで抽出ができない

    エクセル2003のオートフィルタオプションについて教えていただけないでしょうか。 データベースに『金額』という見出しを設けて、その直下から列方向へ連続した複数のセルに『3桁区切りと\マーク』を設定した『数値』を入力しています。 見出しの『金額』の▼ボタンをクリックし、オプションを選択→ダイアログボックスの抽出条件の指定で『金額』の白ボックス横の▼ボタンの中から数値(仮に『\10,000』とします)を選択→右隣りの白ボックスには『より小さい』を選択します。10000より小さい数値が抽出されると思いきや、結果的に何も抽出されません。(因みに、『より大きい』・『以上』・『以下』でも抽出できません。) 白ボックスに『10000』と手入力した場合は、該当の数値が抽出されます。 いろいろ試してみたのですが、データベースの数値の書式の『\』を外して、上記のように、白ボックスから数値(3桁区切りのみ設定)を選択してやると該当の数値が抽出できました。 そこで質問なのですが、なぜ『\』が設定されていると抽出できないのでしょうか。 その理由と根拠がわかる方がいらっしゃいましたら、ご教示いただけないでしょうか。 宜しくお願い申し上げます。

  • エクセルのオートフィルタについて・・・

    エクセルのオートフィルタなんですが、 そのオートフィルタにプルダウンメニューができますよね? そのプルダウンで抽出されたメニューの内容の全てを できるだけ簡単にそのままほかのセルにコピーすることはできないでしょうか? 環境は OS:WINXP バージョン:EXCEL2003使用です。

  • オートフィルタは金額の桁カンマがあるとカンマなしの数値で抽出できませんか?

    桁カンマを付けた数値10,000をオートフィルタで10000と入力して抽出することは可能でしょうか? 10,000と入力して抽出すれば10,000は抽出されても10000は無視されます。逆もまた然りです。 何か設定があるのでしょうか? それとも仕様なのでしょうか? 仕様ならあきらめますのでご存知の方がいましたら教えてください。 よろしくお願いいたします。

  • excel 2003 オートフィルタ!

    excel 2003で、オートフィルタがうまくいきません。 A列の2行目から、1~5までの数字がランダムに並んでいるとします。 A1セルをオートフィルタし、 条件を、オプション>3を含む で指定すると、3がフィルタされてほしいのですが 1つも抽出されません。 3で始まるもだめでした・・ フィルタで抽出するマクロをくんでいて 列は、20列以上あり、 列によって、文字や数値があります。 フォームで列を選び、検索文字を入力して Criteria1:="=*" & 検索文字 & "*", Operator:=xlAnd と言う感じでフィルタしています。 文字はできますが、数値ができないのは、なぜでしょうか・・・

  • エクセルフィルタ機能1セルにカンマ区切り複数データ

    エクセルで複数のデータがカンマ区切りで1つのセルに入っている場合のフィルタ方法について教えてください。 例えば    A     B 1 名前    動物 2 たろう    いぬ,ねこ 3 はな     ぞう 4 あき     ぞう,いぬ B列からオートフィルター機能のように'いぬ'を選択していぬを抽出し2と4の行を表示させるにはどうしたらよいでしょうか。エクセル初心者です。どなたか設定方法を教えていただけますでしょうか。

  • Excel2000のオートフィルタで・・・

    皆さんこんばんは。 早速ですが、Excel2000のオートフィルタを使用して、数値を3桁区切りにしてある列でオプション指定をする、例えば1,000だけを呼び出そうとしたとき、1000と入力しても駄目で1,000とカンマを入れて入力しないと出てきてくれないのですが、あたりまえなのでしょうか?Excel97の時はそんなことしなくても良かったように思うのですが、なにか設定があるのでしょうか? よろしくお願いします。

  • EXCEL2003 オートフィルタ オプション 結果が不正

    EXCEL2003 で20 行 10 列の表を作成し、各行には 1 2 3 と数字を入力しておりますが 01 02 という数字も あるため 書式は文字列に設定しています。 これを「オートフィルタオプション」で 2 と等しくないで抽出 すると正しく機能せず すべての数値が表示されます。 セルには [文字列として保存されている数値]のエラーチェックが 働きセル左上が緑色三角マークがついています。 2 が入力されたセルの書式を 一旦[標準]に設定した上で、 再度 2 と入力し直し、また 書式を[文字列]に設定すると セル左上 緑色三角マークがなく、前述の「オートフィルタオプション」が 正しく機能するのですが、このセルの数値を 例えば 3 に変更したり、 セルをダブルクリックすると、エラーチェックが働きセル左上 緑色三角 マークが 表示されます。 結果、「オートフィルタオプション」の 等しくない 抽出が機能しません。 Excelのオプションで[文字列として保存されている数値]のエラーチェック を外しても、「オートフィルタオプション」は正しく機能しません。 「オートフィルタオプション」の 等しくない 抽出を使うには、どの ようにすれば良いか解決をご教示ください。 よろしくお願いします。

  • Excelのオートフィルタについて

    「外部データの取り込み」で取り込んだ日付データ20010401~20050117をオートフィルタのオプションで「20040101以上」とか出したいのですが、うまくいきません。「~と等しい」はできるのですが、他ができません。データのセルの書式設定の表示形式を「数値」や「文字列」にしてもダメです。どなたか宜しくお願いします。

  • エクセルのオートフィルタのオプションがでなくなりました。

    エクセルのオートフィルタのオプションがでなくなりました。 今まで、A1のセルに例えば1という数字を入力しセルの右下の+にあわせて下に引っ張るとすべて1と記入され、オートフィルタが右下にでてきて、 セルのコピー 連続データ 書式のみコピー 書式なしコピー という項目がでてきてそのどれかを選択できていたのに、上記の項目が一切でてきません。 どうしたら直るのでしょうか?

  • マクロでオートフィルターの抽出が出来ない

    下記のデーターをマクロで作成しましたが、2010/03/01は抽出するが、2010/03/02以降は デバッグが発生して上手くいきません。 どの様にすれば解決できるのか、ご教授お願いします。 現状) AファイルのA列のオートフィルタオプションで、抽出条件の指定にBファイルの C6をコピーして、「Ctrl」+「V」で貼り付け抽出すると2010/03/01の24時間分の データーが抽出されます。2010/03/02を抽出するとデバッグが発生する。 データーの詳細) Aファイルに「元データー Sheet」があり、A6~A44647に、 1ヶ月分の日付が記載されてます。 (B6~B44647には、24時間を1分間隔でのデーターがあります) A列の日付は、2010/03/01~2010/03/31のデーターがあり、 「セルの書式設定」を確認すると、「標準」設定で表記されてます。 オートフィルタによりA列の、各1日分のデーターを抽出させます。 Bファイルの「作成日指定 Sheet」のB3に2010/3/1を入力すると C6には「=$B$3」で「2010/03/01」と表示する様に「セルの書式設定」 「ユーザー定義」で「yyyy/mm/dd」を選択してます。(C36まで設定) 以下C7に「=$B$3+1」で、C8には「=$B$3+2」で、C36までで「2010/03/31」 と表示させてます。

専門家に質問してみよう