EXECLでフィルタを使った抽出について

このQ&Aのポイント
  • エクセルで数字をフィルタを使って抽出する方法を教えてください。
  • データが入力されたセルから特定の数字を抽出する方法を教えてください。
  • フィルタを使用せずにエクセルで数字を抽出する方法を教えてください。
回答を見る
  • ベストアンサー

EXECLでフィルタを使った抽出について

始めまして。仕事で作業をする上で困っていることがあり、質問させて頂きました。 仕事の中で、エクセルに入力された数字をフィルタを使って抽出する作業が発生するのですが、その際簡単に抽出できる仕方を御存知の方がいらっしゃいましたら、教えていただきたいのですが。 具体的には、 "1,2,11,12,21,33""1,5,7""2,3,17"・・・等と、 エクセルのセルにデータが入力されていたら、「1」でフィルタをかけた場合、最初の2つのデータのみを抽出して欲しいのですが、3つ目のデータも"17"が入っているので、引っ張ってきてしまいます。 いつもは、隣の列に印をつけたり、目で確認したりしているのですが、 100件以上データがある場合など、時間もかかり間違いもおきやすく困っています。 上記のような場合、どういった方法が手っ取りばやいでしょうか。 もし、フィルタを使わない方法がありましたら、そちらの方法でも構いませんの教えていただきたいです。 宜しくお願い致します。

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

  • ベストアンサー
noname#41511
noname#41511
回答No.3

""は「」の意と思ったのですがデータなのですね。でしたら単純に"を,に置換して,1,でフィルタする。またはNo1様のようにFIND関数を使って =FIND("""1,",対象セル) =FIND(",1,",対象セル) =FIND(",1""",対象セル) で、"1, か ,1, か ,1" を検索、いずれもエラーにならない箇所をチェックする。でしょうか。

kentaman
質問者

お礼

御返答頂きありがとうございます。 実際に作業をしてみたところ、「"」を「,」に変換して 「,1,」で検索で問題ありませんでした。 どうもありがとうございます。 おかげで作業が楽になりました。なんで、気付かなかったのでしょう・・・^^;

その他の回答 (3)

noname#41511
noname#41511
回答No.4

>いずれもエラーにならない箇所をチェックする。 いずれかにヒットする項目をチェックするの間違いです。

noname#41511
noname#41511
回答No.2

詳しいほうではないですが。 データ全体が,で区切られているのなら、,を区切り文字としたデータとして開いたほうが良いのでは? または隣接列に,を挿入し、(たとえばA列が,でB列がデータ) &で結合させて(=A1&B1) 「,1,」でフィルタ。などでしょうか。 詳しくないので詳しい方お願いします。

kentaman
質問者

お礼

お返事遅くなってすまいません。 回答頂きありがとうございます。   確かに、「,1,」でフィルタならば、抽出できることはできますね。 実際、作業をする際には、「"」を「",」(前の")と「,"」(後ろの") に置換しないといけないのですが。。。 後ろの「,"」が出来ないような気もしますが。 「" "」は、データを入力した際に、マルチ回答の場合、自動的に集計ソフトを実行すると、ついてしまうのでその辺が「,1,」で上手く対応出来るか微妙なところです。

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

補足要求です フィルタで抽出するならデータは同じ列に縦方向に入っているはずですが、実際にはある列の各行にどのようなデータが入っているか示していただけませんか。 また >3つ目のデータも"17"が入っているので、引っ張ってきてしまいます。 の意味がよく分かりません。フィルタのオプションで「1を含む」にしているのでしょうか。この点も補足お願いします。 最後に >最初の2つのデータのみを抽出して欲しいのですが についても説明をお願いします。 つまるところセル内の二番目の「,」より前に「1」がある行を抽出したいという意味なのでしょうか。単純に二番目の「,」より前に「1」があるかどうかを判断するなら =IF(FIND("1",A1&"1")<FIND("@",SUBSTITUTE(A1,",","@",2)),"○","×") セル内のカンマで区切られた1番目または2番目のフィールドが「1」から始まることを条件にするなら =IF(OR(LEFT(A1,1)="1",MID(A1,FIND(",",A1&" ,")+1,1)="1"),"○","×") でもよいかもしれません。

kentaman
質問者

補足

ご返事遅くなってすみません。 早速ですが、ご質問について補足をしていきたいと思います。 >フィルタで抽出するならデータは同じ列に縦方向に入っているはずですが・・・ 実際、色々な数字が入っていることがあるのでなんとお答えしていいのか迷うのですが、例えば、上記の例のようの感じで A列の1行目から順に"1,2,11,12,21,33""1,5,7""2,3,17"が入っているとお考えください。 あくまでも仮ですので、3つしかデータないなら、目で見て判断すればいいじゃんってのは「なし」です。実際は、100個以上データがあることも多々あります。 >3つ目のデータも"17"が入っているので、引っ張ってきてしまいます。 に、ついては、ご指摘の通り「1を含むにしています」。 「1と等しい」としてしまうと、セルに"1"しか入っている場合しか抽出できないからです。 >最初の2つのデータのみを抽出して欲しいのですが データは元々、アンケート結果なので、「1」を選択した人を抽出したいと思ったときに、フィルタで「1を含む」にしてしまうと、上記にあげたような例ですと"17"を含んだ3つめのデータも抽出されてしまうという事です。 もし、ご不明な点がありましたら、再度ご質問していただけると幸いです。 宜しくお願いいたします。

関連するQ&A

  • Excel2003 でオートフィルターの動きがおかしい

    Excel2003 SP2を使っています オートフィルタでは(1)ドロップダウンリストから抽出したいデータを指定する方法と、(2)直接抽出したいデータの入っているセルを選択してツールバーのオートフィルタのボタンを押す方法があります。 (1)の方法で指定した場合には問題ないのですが、(2)の方法でやると、たまに指定した列ではない別の列にフィルターがかかってしまう場合があります。たとえばE12のセルを選択してオートフィルボタンを押すと隣のF列にフィルタがかかり、F列のフィルタオプションを見るとE12のデータが指定されていたりします。いつもおこるわけではなく、またいつも隣の列とは限らず2つ隣の列にフィルターがかかるときもあります、データ量の多いファイルのときに起き易いようなきがします。 これはExcelのバグなのでしょうか、それとも操作方法になにか問題があるのでしょうか、よろしくお願いします。

  • オートフィルタの抽出速度を上げるには?

    エクセルで、データを抽出する際よく「データ」→オートフィルタ」を使うのですが、データ量が増えるにつれデータ抽出するのに5秒ぐらいかかるときがあります。 それが、別のエクセルファイルで、私がよく使うファイルよりもはるかに重いものがあるのですが、そのファイルで「オートフィルタ」を使ってもデータ抽出するのに5秒もかかりません。 もしかして、セル入力に「リスト」を使うのと「直接入力」とでオートフィルタの抽出速度の差が出てるのかなと思ったりもしたのですが、どうなんでしょうか? いろいろ調べたのですが、わからないので、アドバイスを下さい。

  • エクセルで複数行のセルからフィルタ抽出する方法

    エクセルで複数行のセルからフィルタ抽出する方法 エクセルで、何日に誰が日直、当直に入ったかをまとめている表があります。平日は当直4人.土日は日直と当直が各4人ずつです。 aさん 1| 2|8|15|31 bさん1|5|9|14 cさん1|6|24|30 dさん2|1|4 . . . 縦棒はセルの区切りです。(数字ごとに1つずつのセルに入力しています。) 日直日誌(紙媒体)から手入力をしているので、最後に2人で読み合わせをしています。複数の列をまとめてフィルタ掛けして、例えば1日(1と入力している)で絞ると、aさんbさんcさんしか出てきません(一番左の列からしか引っ張れず、dさんが引っ張られない) どの行、どの列のセルの数字も対象にして、フィルタがけして引っ張る方法はありませんでしょうか?

  • Excel2010 フィルタで抽出できない

    Excel2010(WindowsXP)のフィルタ機能で抽出できない場合があるようなのですが そういうものでしょうか? 以下のような10000行以上の重複しない14桁のデータで 10000行目の前後に空白セルがある場合 フィルタでB列の「10000000010003」以降のデータが抽出できません。 左からA列、B列 a b 1 (空白セル) 2 10000000000002 3 10000000000003 4 10000000000004 5 10000000000005 (この間も連続データ) 9997 10000000009997 9998 10000000009998 9999 10000000009999 10000 10000000010000 10001 10000000010001 10002 10000000010002 10003 10000000010003 10004 10000000010004 10005 10000000010005 10006 10000000010006 10007 (空白セル) 10008 10000000010008 10009 10000000010009 10010 10000000010010 ---

  • Excel VBAでオートフィルタで抽出したデータの一部だけ貼り付けるには(第2弾)

    今週質問タイトルの件で回答いただき解決したのですが、更なる操作を希望したく質問させていただきました。内容は Sheet2にあるデータに複数条件でソートをかけ、ある数字(1から18まで)を入れたら、オートフィルタでE列のデータの選択部をSheet1のある部分に1行貼り付けるという作業です。以下のInputBoxに数字を入れるところからです。 (ソート後、どの数字を入れるか判断) ↓ InputBoxにある数字"○"(1から18まで)を入れる ↓ オートフィルタE列「"○-"で始まる」or「"-○"で終わる」 ↓ 抽出されたデータの右隣のF列(1列だけ)のデータ(上から17個分)を選択 ↓ 選択部をコピー ↓ Sheet1を選択。Sheet1の"K5"セルに行列を入れ替えて貼り付け というものでしたが、これはできました。ここから先です。 Sheet1のU5セルに先ほどインプットした数字"○"(1から18までのどれか)を入れる ↓ Sheet2にてオートフィルタE列「"○-"で始まる」or「"-○"で終わる」によって抽出されたデータの一番上の文字列から「"○-"」もしくは「"-○"」を除いて残った数字(○を除く1から18までの数字)をSheet1のW5セルに(先ほどのセルとは1個飛ばして)入れる ↓ 以下抽出されたデータの上から2番目の文字列を同様に操作し、1個飛ばしのセルY5に入れる。これがBC5セルまで続く というものです。難しいとは存じますが、どなたか教えていただけませんか? よろしくお願いいたします。

  • エクセルでフィルター抽出したセルを効率良く数えるには?

    恐縮ですが質問させて頂きます。 エクセルで膨大なデータの中からある条件でフィルター抽出したセルを数えるにはどうしたらいいんでしょうか? 例えばまったくフィルターをかけていない状態であればマウスで範囲を選択しようとすると左上の名前ボックスに自動的に列や行の数字が出ますよね? ただフィルターで抽出したデータは行が“飛んでいる”ことがあるので表示されていないセルの数まで数字が入ってしまいます。 念のため例を挙げると・・・  A,B,Cの設問に回答されたデータがあるとします。 1行目の鈴木さんはAと回答、2行目の佐藤さんはBと回答、3行目の高橋さんはAと回答。フィルターでAと回答した人を抽出すると2行目の佐藤さんのセルは表示されないのですが、表示上連続して見える鈴木さんと高橋さんのセル(計2行)の範囲を選択すると3R(行)とでます。これだと数百件から数千件あったりするとすごく数えにくいんです。お教えいただけると大変助かります。よろしくお願いします。

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

    エクセルのオートフィルタについてですが、一番取り扱いに困っている所は、社員の給与リストとかで、ある特定のデータ、例として事務員(一つの行の例えば一つのセルに名前、一つ横のセルに給与の数字(数値データ)がはいっている)を抽出した場合(事務員の記号がどこか同じ行にはいっているとして)数値の列を開いているセルで関数処理したい場合、表示されている数字だけを処理する場合と隠れている(多分)データも処理してしまう場合があり大変戸惑っています。なんとかどちらかに統一したいのですが、自分なりに調べましたが分かりません。どなたかご存知ないでしょうか。また、このオートフィルタで特定の数字や文字を抽出しようとしてもうまくいく時とそうでない時があります。なぜなのでしょうか。これはバグと考えても?

  • Excelでフィルタをかけた状態でオートフィルタで連番を振りたい

    Excelでオートフィルタを設定し、抽出したデータがあります。(ですので表示範囲があります)その抽出したデータのある列に連番を振りたいのですが、非表示ににゅうりょくされてしまうためうまくできません。 またオートフィルタで抽出した範囲の可視セルをコピーすることはできても、再度貼り付けることもうまくできません。 何か方法はないでしょうか。

  • オートフィルターを使い1個上の数値を抽出したい

    横8列 縦100列の表で各列の数字の中からオートフィルタを使い各列の1個上の数字を抽出する方法をお教えていただければ幸いです。   1 |2|3 |4|5|6|7|8| 5 4 6 7 8 9 10 13 ←この列は無視 2 2 4 7 8 8 7 6 3 5 5 6 9 6 8 6 1 2 3 4 5 6 7 8 2 3 4 5 6 7 8 9 1 2 3 4 5 5 5 5 4 5 5 4 5 6 7 8 3 6 7 8 9 9 5 4 2 3 3 4 5 8 8 9 Excelソフトはあまり使えず簡単な方法をお願いします。

  • エクセルのオートフィルタでのデータ抽出&カウント

    エクセルのローデータでのオートフィルタでのデータ抽出&カウントで困っています。 A列にNo.、B列にデータB、C列にデータC、D列にデータDがあるとします。 それぞれの列に1~9までの数字があり、 それぞれの列、 データの一番下(正確には1行開けて)にはSUMやCOUNTIFなどの関数(計算式)が入っています。 で、これをフィルターにかけ抽出した際、この抽出したデータのみで計算の値を表示したいのですが、 やってみると 全データの計算の値で表示されてしまいます。 どうすればよいのでしょうか? 大変困っています。 よろしくお願いいたします。

専門家に質問してみよう