細かすぎて使えないかもしれないExcel Tips(1列データを複数列に簡単に並べ替える)

エクセルでデータ解析などしていると、
データをいろいろと並べ替えて見たいなぁという要求が出てきます。
ただこのデータの並び替え、エクセルで簡単にできるかというと、
結構手間になるパターンが多いのが現状で、
なんだか痒いところに手が届かない感じがします。


1次元のデータを2次元に並べ替え

あまり一般的には出会う場面ではないかもしれませんが、
↓こんなデータ(1列に並んだデータ)を、
excel_sort_20130328-01.png

↓こんなふうに(規則正しく複数列に)並べ替えたいと思ったことありませんか?
excel_sort_20130328-02.png

これが結構面倒なんですよね。
データ解析やってると、案外とこうなる場面が多い。。
データ数が少なければ、ちまちまと並べ替えをしますが、
データ数やシート数が多くなってくると、
嫌になってきます。

並べ替えのTips

そこで、こんな方法。
当然VBA使えば簡単にできると思いますが、
VBAを使わなくても、手軽に出来ます。

まずは、例えばA列にデータ数が120個あり、20行6列のデータにしたい場合、
B1のセルに、「=A21」と入れます。
excel_sort_20130328-03.png
(A列の一列のデータの21番めを、次の列へ(リンクで)コピーする)。
すると、↓こうなります。
excel_sort_20130328-04.png

B1の式をB2からB120 のセルまでコピーする(※B20 までではない)
excel_sort_20130328-05.png

これで、A21 ~A140(A121 ~A140まではデータが無いですが)のデータが、B1~B120に入ることになります。

B1~B120をコピーし、C1(C1~C120)に貼り付ける
excel_sort_20130328-06.png

すると、C1~C120には、B21~B140(Aと同様にB121~B140にはデータが無い)のデータが入ることになる。

 ②の1列コピーを欲しい列分繰り返す。
excel_sort_20130328-07.png

※この場合は欲しい列が6列なので、F列までで良い。(G列に入るデータが無いので0が入る)
すると、以下の様になります。
excel_sort_20130328-08.png
で、欲しかった20行6列のデータが、A1~F20に入っている。
ここからコピーして、適当なところに貼り付けます。

このとき注意するのが、貼り付け時には、「形式を指定して貼り付け」を選び、「値」として貼り付けること。
そのまま単純なペーストだと、数式が貼り付けられるので、でたらめなデータになってしまいます。

どういうこと?

どういうことになっているかというと、
A1~A120の1列のデータのうち
21番め以降をB列に(リンク)コピーしています。
さらにB列の21番目以降をC列にコピーすることで、C列にはA列の41番め以降が入力されている。
という感じになります。
以降繰り返すことで、ここでは20個ずつデータが各列に並ぶ、という寸法です。

ちょっとややこしいかもしれませんが、
慣れると非常に便利な並べ替えです。

問題点として、必要な部分以外のデータが余分に作られるので、
データ数があまりに多いと、動かなかったり、動きが重くなったりしてしまいます。
並べ替えたら、必要な部分を抜き取って、後は消してしまうほうがよいかと思います。


関連記事