• ベストアンサー

エクセルで特定のセルの条件の行を抽出

エクセルで A  B  C  D… 1 OK  100  30  20 2 ダメ 50   20 30 3 20 10 30 4  OK     3   2 5 良い 3   5   50  と、いうような表があります。 これから、A列がOK又はダメの行だけを抽出して、 別のSheetに A  B  C  D… 1 OK  100  30  20 2 ダメ 50   20 30 3  OK     3   2 と、いうように抽出したいのですが… よろしくお願いします。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

◆関数による方法です ◆Sheet2のA1の式です(少し、長いですが) =IF(ROW(A1)>SUMPRODUCT((Sheet1!$A$1:$A$100="OK")+(Sheet1!$A$1:$A$100="ダメ")),"",INDEX(Sheet1!A$1:A$100,SMALL(INDEX(SUBSTITUTE(((Sheet1!$A$1:$A$100="OK")+(Sheet1!$A$1:$A$100="ダメ")),0,10^5)*ROW($1:$100),),ROW(A1)))) ★右と下にコピー ★Sheet1で空欄は「0」表示します ★表示形式で、0;-0; にしてください

その他の回答 (3)

回答No.4

No1さんと少し似ていますが・・ オートフィルタではなく、フィルタオプションと言う手もあります。 1.元表の1行目にタイトルをつけておきます。   2.同一シートの空いた部分に抽出したい項目のタイトルと内容を  書き出します。  例)B列を 「判定」とタイトルをつけて、元表がG列までで  H列が空いていたら  H1に「判定」 H2に 「OK」 H3に 「ダメ」と入力 3.データ→フィルタ→フィルタオプションの設定  抽出先・・・指定した範囲内  リスト範囲・・・$A:$G  検索条件範囲・・・$H1:$H3  抽出範囲・・・・J1 これでOKをクリックしたら条件に該当するものがJ1を基点に 書き出されます。 残念ながら書き出しは同一シート内しか対応出来ないので、 J~P列全体を別シートに切り貼りすればOKです。 フィルタ→オートフィルタでは1項目に対して条件を2つまでしか 設定出来ませんが、この方法だと同じ項目で検索条件が3件以上の時 J列に書いておいて、3の 検索条件範囲・・・$H1:$H3のセルを 書き換えるだけで対応出来ます。

noname#95859
noname#95859
回答No.3

こんなのも手かと思います----並べ替え 別シートに、全情報をコピーし、単純に、A列で並べ替えを実行する。 「OK」、「ダメ」が集まりますから、後は、どうとでも・・・・ 少し考えなければいけないのは、先頭に「スペース」があったりすると きちんと並ばないので、予め、trimで処理しておきます。 具体的には、右となりにカラムを追加し、 B1に =trim(A1) を入力し、 B1セルの右下の黒点をダブルクリック して、縦方向に反映。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

オートフィルタで行けそうに思います。 ただし、一行目に見出しを付けたほうが良いかも。 1)範囲全体を選択 2)メニューのデータ>フィルタ>オートフィルタを選択 3)列Bの▼(逆三角)をクリックし、オプションを選択 4)[ ] と等しい の[  ]の中に OK を入力 5) and or があるので or を選択 6)下の段の[ ]の中に ダメ を入力し、条件を と等しい を選択 7)OKボタンをクリック 8)表示された結果全体を選択し、コピー(Ctrl+Cか右クリックしてコピーなど) 9) 別シートに貼り付け。 もしも余分にコピーされるなら、8)に続いて 10)メニューの編集>ジャンプをクリックし、セル選択ボタンをクリック 11)可視セル(Y)を選択し、OKボタンをクリックしてから、コピー 12)別シートに貼り付け。 でどうでしょう?

関連するQ&A