• ベストアンサー

エクセルで、異なる列のデータも一緒に並べ替えたいのですが

エクセルの並べ替えについての質問です。 同じシート内に、データの入ったセル(重複なし) が大量にあるのですが、一気に並べ替える方法が わからず困っています。 例えば  4 1 2 5 3 6 7 4 9 8 のように3列あるデータを、  1 2 3 …のように縦1列一緒にしてソートしたいのですが、 方法がわかりません。 どなたか教えていただけると助かります。 よろしくお願いいたします。

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

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

データと行番号を混同しますので、例データを変えますが、    A B C D  1 h a b  2 e c f  3 g d i と並んでいるとして―― 1.次のように入力します。    D1:'=A1    D2:'=B1    D3:'=C1  ※ 'を忘れないように! 2.D1:D3 を選択し、D列下方に必要行までドラッグコピーします。 3.D列範囲が選択状態で、[データ]-[区切り位置]-[完了]。 以上の操作でデータがD列に並びます。 以前にどこかで仕入れたワザですが、これにソートをかければよいでしょう。

rin1833
質問者

お礼

早速ありがとうございます! 名簿など、他にも応用できそうですね。 また試していませんが、何とか出来そう です。助かりました。 本当にありがとうございます!

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • endorin
  • ベストアンサー率60% (3/5)
回答No.5

ランダムなセルに入力された値を同じ縦の1列に書き出すというマクロを作りました。 もし、マクロに抵抗がなかったら参考にしてはいかがでしょうか? 【処理】 ・A1~E5までのセルにランダムに数字が入っていることを想定しています。 ・A1~E5までのセルを一つずつ順に読み込んでいきセルの内容がブランクでなかっ  たらまったく関係のない行にその数値を書き出していきます。 ・最後にエクセルのソート機能を利用してご自分でソートしてください。 ↓これをツール⇒マクロ⇒Visual Basic Editorの標準モジュールに  コピーして実行してください。 ☆ここからが処理☆  Sub 並べ替え() Dim Celpos As Integer 'セル横の位置 Dim Rowpos As Integer 'セル行位置 Dim cnt As Integer '書き出しカウント cnt = 1 '書き出し 初期値 '行をループさせる。 For Rowpos = 0 To 4 '  列をループさせる。 For Celpos = 0 To 4 'セルの内容が空白ではなかったら書き出しの処理をおこなう。 If Cells(Rowpos + 1, Celpos + 1) <> "" Then Cells(cnt, 8) = Cells(Rowpos + 1, Celpos + 1) '書き出しの位置に1を増やす cnt = cnt + 1 End If Next Next End Sub

rin1833
質問者

お礼

早速ありがとうございます。 実はマクロは手をつけたことがないので、 くらくらしてしまったのですが…。 勉強だと思って頑張ってみます!

すると、全ての回答が全文表示されます。
回答No.4

#3の補足です。 ソートをかける前に、D列を同じD列に値形式でコピーしてください。

rin1833
質問者

お礼

こちらもありがとうございます。

すると、全ての回答が全文表示されます。
  • k-family
  • ベストアンサー率34% (180/523)
回答No.2

やはり面倒ですが、A列の下にB列の内容を、さらにその下にC列の内容を移動してから並べるのが良いかと思います。 3列だけならそれほどの手間ではないと思いますが。

rin1833
質問者

お礼

早速ありがとうございます。 実は74列×350行もあるので…方法が全くない ようならばあきらめて手作業するつもりです。 また何かありましたら宜しくご教示下さい。

すると、全ての回答が全文表示されます。
  • sydneyh
  • ベストアンサー率34% (664/1947)
回答No.1

Ecelの並べ替えは、同列/同行での整列しか出来ません。 列と行両方を元にした並べ替えは出来ません。

rin1833
質問者

お礼

早速ありがとうございます。 また何かありましたら宜しくご教示下さい。

すると、全ての回答が全文表示されます。

関連するQ&A