- ベストアンサー
エクセルで特定のセルの条件の行を抽出
エクセルで 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 と、いうように抽出したいのですが… よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
◆関数による方法です ◆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)
- p-applepie
- ベストアンサー率53% (156/290)
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のセルを 書き換えるだけで対応出来ます。
こんなのも手かと思います----並べ替え 別シートに、全情報をコピーし、単純に、A列で並べ替えを実行する。 「OK」、「ダメ」が集まりますから、後は、どうとでも・・・・ 少し考えなければいけないのは、先頭に「スペース」があったりすると きちんと並ばないので、予め、trimで処理しておきます。 具体的には、右となりにカラムを追加し、 B1に =trim(A1) を入力し、 B1セルの右下の黒点をダブルクリック して、縦方向に反映。
- bin-chan
- ベストアンサー率33% (1403/4213)
オートフィルタで行けそうに思います。 ただし、一行目に見出しを付けたほうが良いかも。 1)範囲全体を選択 2)メニューのデータ>フィルタ>オートフィルタを選択 3)列Bの▼(逆三角)をクリックし、オプションを選択 4)[ ] と等しい の[ ]の中に OK を入力 5) and or があるので or を選択 6)下の段の[ ]の中に ダメ を入力し、条件を と等しい を選択 7)OKボタンをクリック 8)表示された結果全体を選択し、コピー(Ctrl+Cか右クリックしてコピーなど) 9) 別シートに貼り付け。 もしも余分にコピーされるなら、8)に続いて 10)メニューの編集>ジャンプをクリックし、セル選択ボタンをクリック 11)可視セル(Y)を選択し、OKボタンをクリックしてから、コピー 12)別シートに貼り付け。 でどうでしょう?