• ベストアンサー

Excelのデータ並べ替え

Excelで以下の様なデータ(任意の行数、2列固定)を例の様に並べ替える方法はあるのでしょうか? ご存知の方、教えてください。よろしくお願いします。 【並べ替え前】 1 1000 2 1200 3 1400 4 1600 ↓ 【並べ替え後】 1 1000 2 1200 3 1400 4 1600

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

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

こんにちは! 色々やり方はあると思います。 一例です。 元データはA列・B列の1行目からあるとして・・・ 表示したいセルに =OFFSET($A$1,INT((ROW(A1)-1)/2),MOD((ROW(A1)-1),2),1) という数式を入れオートフィルで下へコピーではどうでしょうか? ※ このような並び替えは列・行合わせ(規則性)が把握できれば他の関数でも当然可能です。 参考になりますかね?m(_ _)m

eliteyoshi
質問者

お礼

ご回答ありがとうございます。 教えていただいた方法でできました!

その他の回答 (3)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

同じシートの例えばC列でもよいでしょう。次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>COUNTA(A:A)*2,"",INDEX(A:B,ROUNDUP(ROW(A1)/2,0),MOD(ROW(A1)-1,2)+1)) データがシート1に有ってシート2に表示させるのでしたら次の式を入力して下方にドラッグすればよいでしょう。 =IF(ROW(A1)>COUNTA(Sheet1!A:A)*2,"",INDEX(Sheet1!A:B,ROUNDUP(ROW(A1)/2,0),MOD(ROW(A1)-1,2)+1))

eliteyoshi
質問者

お礼

ご回答ありがとうございます。 教えていただいた方法でできました! いろいろな方法があるのですね。

回答No.2

方法は様々ありそうですが、この程度なら、数式を書いちゃうのが手っ取り早いかな?その数式もいろいろなのを書けそうですが、例えば次のような感じで。 C1 =(row()-1)/2+1 C2 =vlookup(c1,a:b,2,) 入力後、C1:C2のセル範囲をコピーし、そのまま、名前ボックス(数式バーの左隣りのボックス)をクリック。「c3:c100」などを適当に入力してキーボードでEnterしたら、そのまま、Ctrl+Vなどで貼り付け。

eliteyoshi
質問者

補足

ご回答ありがとうございます。 教えていただいた方法でできました!

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.1

キーボードマクロで操作を記録して 記録されたvbaを見て勉強してください 相対セル記録で B1を選択、コピー 左に1列移動、 下に1行移動 行挿入 ペースト 下に1行移動、 右に1列移動 を記録すれば、1回分の移動が記録されます。 f4キーで複数回やってもよいですし、loopで複数回おこなっても良いと思います。

eliteyoshi
質問者

お礼

ご回答ありがとうございます。 教えていただいた方法でできました!

関連するQ&A