複数行のデータを1行にする

下の行の値を右に移動する

状況をうまく説明できませんが、どこかから持ってきたデータが下の様なの状態だった場合このままでは、不都合なことも多いでしょう。

linrup

3行ワンセットで1行目から

商品番号
商品名
価格

となっているものが複数セットあります。エクセルでデータベースのように商品番号から商品名や価格などを引っ張り出すために利用するにはこの形では使いにくくて仕方ありませ。

1行に1データの形で

A列 商品番号
B列 商品名
C列 価格

linrup_1

のように変更したいです。

関数か何かで1回でうまくいくものがれば良いのですが、無いようですので、効率の良い手作業で処理したいと思います。

まず元の表のB列に1,2,3 1,2,3と商品番号は1、商品名は2、価格は3となるように番号を振ってみます。

まずは各セルに1,2,3と入力し入力した3つのセルをまとめて選択してから右下のフィルハンドルをダブルクリックでB列に数値を埋めます。

linrup_2

このままではただの連番になってしまうのでB列のコピーされたセルの一番下のセルの右端のオートフィルのオプションをクリックしてセルのコピーをクリックします。

linrup_3

元が1,2,3と入力したものなので1,2,3の繰り返しになりました。linrup_4

次にC1のセルにはA2のセルの値が来るように数式を入力します。

linrup_5

同様にD1のセルにはA3のセルの値が表示されるように式を入れます。linrup_6

そしてセルC1とセルD1の式をフィルハンドルでコピーします。そうすると3行ごとに必要なデータが現れます。2行目、3行目などは意味のないデータです。このとき必要な行はB列で1の値が入った行になります。linrup_7

そこでB列を基準に昇順で並べ替えを行いたいのですがC列とd列のデータは1行下のA列の値、2行下のA列の値になっているので並べ替えをすると再計算されてデーターの内容が変更されてしまいます。

C列とD列を選択しコピーします。

linrup_8

セルC1を選択し右クリックし貼り付けのオプションで値貼り付けを選択します。linrup_9

これでC列D列は数式ではなく値そのものになりました。

linrup_10

これで並べ替えを行ってもC列D列は変更されなくなりました。セルB1を選択し並べ替え昇順をクリックします。

linrup_11

1行目から必要なデータだけ(後でB列は削除してください)が並びました。下の方にある不要なを削除したら出来上がりです。必要により1行目に行を挿入し見出しセルを作成してください。linrup_12

意外と面倒な気がしますが、データが沢山あるときは便利ですし、完全手作業によるセルの移動ミスも防げます。理屈を知ってしまえばいつでも使えます。ぜひ活用してください。

 

コメントを残す

メールアドレスが公開されることはありません。