• 締切済み

エクセルで範囲内のデータを別シートにうつしたい

エクセルで特定の範囲内の数値にあてはまるデータを別のシートに新たな表として作成したいのですが、簡単な方法があれば教えてください。 例えば Sheet1   A   B     C  1 25  ミカン   3000 2 30  リンゴ   4500 3  5  メロン   9800 4 17  ブドウ   1800 5 50  バナナ  1000 このようなデータを次のような表にしたいのです。 A列の数値が10~30のみ行ごと抜粋する Sheet2   A   B     C  1 25  ミカン   3000 2 30  リンゴ   4500 3 17  ブドウ   1800  よろしくお願いいたします。

みんなの回答

noname#223623
noname#223623
回答No.2

いろんなやり方があってそれぞれ正解なんだろうけど、自分だったらこうするというのを回答します。 1. とりあえずシートをコピー(仮に Sheet1 を Sheet2 にコピーとする) 2. Sheet2 の左端に列を挿入(元のA列はB列になる) 3. A列に連番挿入(質問文のサンプルなら 1~5) 4. B列で並べ替え 5. 範囲外(B列の数値が10より小さい、または30より大きい)の行を削除 6. A列で並べ替え(昇順) 7. A列を削除 こんな感じ。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! >簡単な方法があれば教えてください。 というコトであれば、コツコツ手を動かしてみます。 ↓の画像のように1行目は項目行になっているという前提です。 Excel2007以降のバージョンをお使いだとすると Sheet1のA1セルを選択 → データ → フィルタ → A列の下向き▼をクリック → 「数値フィルタ」 → 「指定の範囲内」 → 「10」を入力 → 下の欄に 「30」を入力しOK あとは表示されているデータのみをSheet2にコピー&ペースト → オートフィルタを解除して完了です。 他の方法 ↓の画像は関数で表示しています。 Sheet2のA1セルに○以上の数値、B1セルに○以下の数値を入力します。 そしてA4セルに =IFERROR(INDEX(Sheet1!A$1:A$1000,SMALL(IF((Sheet1!$A$1:$A$1000>=$A$1)*(Sheet1!$A$1:$A$1000<=$B$1),ROW($A$1:$A$1000)),ROW(A1))),"") 配列数式になりますので、Ctrl+Shift+Enterで確定! この画面からコピー&ペーストする場合は 上記数式をドラッグ&コピー → Sheet2のA4セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) Ctrl+Shiftキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 最後にA4セルのフィルハンドルで列・行方向にコピー! これで画像のような感じになります。 ※ 極端にデータ量が多い場合、配列数式はPCにかなりの負担をかけ 計算速度が遅くなりますので、おススメではありません。 (数式は1000行まで対応できるようにしていますが、3000行程度までは大丈夫だと思います) 作業用の列を設けるなど他の方法を考える必要があります。m(_ _)m

runyan_2015
質問者

お礼

早速のご返答ありがとうございます! 月曜以降になりますが、データ量は多くないので関数を使う方法でやってみます(*^_^*)

関連するQ&A