[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ひとつの行のデータをふたつの行に並べ替えたい』(グラン)
【元々、下記のようなデータがあるのですが、】
A列 B列 C列 D列 E列
1 国名 男A 男B 女A 女B
2 日本 10 15 20 25
3 米国 20 30 15 20
4 中国 25 20 20 35
【上記を、下記のように変えたいと思っています】
A列 B列 C列 D列
1 国名 性別 A B
2 日本 男 10 15
3 日本 女 20 25
4 米国 男 20 30
5 米国 女 15 20
6 中国 男 25 20
7 中国 女 20 35
本当はデータ(行)がもっと山ほどあるため、ひとつひとつ手で動かしたく
ありません。
何か簡単にできる方法があれば教えて頂きたいです。
宜しくお願い致します。
< 使用 Excel:Excel2010、使用 OS:unknown >
'Sheet1をSheet2に変える Dim c As Range With Sheets("Sheet2") .Cells.ClearContents .Range("A1:D1").Value = Array("国名", "性別", "A", "B") For Each c In Sheets("Sheet1").Range("A2:A" & Rows.Count).SpecialCells(2) .Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 4).Value = Array(c.Value, "男", c.Offset(, 1).Value, c.Offset(, 2).Value) .Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 4).Value = Array(c.Value, "女", c.Offset(, 3).Value, c.Offset(, 4).Value) Next c End With End Sub (mm) 2020/02/07(金) 17:32
↑
ここまでは出来るのですが、E2:F2をC3:D3(以下、E4:F4をC5:D5、・・・)へ
まとめて移す手段は無いでしょうか?
(グラン) 2020/02/07(金) 17:54
A列 B列 C列 D列 1 国名 性別 A B 2 日本 男 3 日本 女 4 米国 男 5 米国 女 6 中国 男 7 中国 女
この部分が出きているのなら、 C2 =VLOOKUP($A2,Sheet1!$A$1:$E$4,MATCH($B2&C$1,Sheet1!$1:$1,0),0) (BJ) 2020/02/08(土) 02:45
上の部分が出来無いというのなら、手動だけど
元の国名だけ別シートにコピー 隣のB列に連番を振る。
日本 1 米国 2 中国 3 タイ 4 インド 5 イギリス 6
これをコピーして最下部へ貼り付け
日本 1 米国 2 中国 3 タイ 4 インド 5 イギリス 6 日本 1 米国 2 中国 3 タイ 4 インド 5 イギリス 6
B列をキーにして並べ替え。
日本 1 日本 1 米国 2 米国 2 中国 3 中国 3 タイ 4 タイ 4 インド 5 インド 5 イギリス 6 イギリス 6
A列をコピーして、メイン?シートに張り付け。
男 女
と入った2セルをコピー 先ほどメイン?シートに張り付けた物と同等の数のB列を選択して貼り付け。
日本 男 日本 女 米国 男 米国 女 中国 男 中国 女 タイ 男 タイ 女 インド 男 インド 女 イギリス 男 イギリス 女 (BJ) 2020/02/08(土) 11:14
[A] [B] [C] [D] [E] [1] 国名 男A 男B 女A 女B [2] 日本 10 15 20 25 [3] 米国 20 30 15 20 [4] 中国 25 20 20 35
1)A1セル選択
2)Ctrlキー + Shiftキー + :キー を押下
3)Ctrlキー + Cキー 押下
4)H1セル選択
5)Ctrlキー + Vキー 押下
ここまでやると、
[A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [1] 国名 男A 男B 女A 女B 国名 男A 男B 女A 女B [2] 日本 10 15 20 25 日本 10 15 20 25 [3] 米国 20 30 15 20 米国 20 30 15 20 [4] 中国 25 20 20 35 中国 25 20 20 35
こうなると思います。
[A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [1] 国名 男A 男B 女A 女B 国名 男A 男B 女A 女B [2] 日本 男 10 15 20 25 日本 女 10 15 20 25 [3] 米国 20 30 15 20 米国 20 30 15 20 [4] 中国 25 20 20 35 中国 25 20 20 35
6)列をそれぞれ挿入して、
7)男と女を入れます。
8)B2セルを選択したらセルの枠が太く強調されると思います。
で、その右下に黒い■があると思います(新しいバージョンは色が違うかも?)
それをダブルクリックでフィルコピー出来ると思います。
(■に合わせるとマウスカーソルが十字になると思います。)
9)J2セルも同様にフィルハンドルをダブルクリック
10)左の表の女A女Bの列を削除
11)右の表の男A男Bの列を削除
[A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [1] 国名 男A 男B 国名 女A 女B [2] 日本 男 10 15 日本 女 20 25 [3] 米国 男 20 30 米国 女 15 20 [4] 中国 男 25 20 中国 女 20 35
12)E1セルに1、E2セルに2と入れてE1:E2の範囲を選択
13)またフィルハンドルをダブルクリック
14)そのまま、Ctrlキー + Cキー でコピー
15)K1セルを選択して、Ctrlキー + Vキー で貼付
[A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [1] 国名 男A 男B 1 国名 女A 女B 1 [2] 日本 男 10 15 2 日本 女 20 25 2 [3] 米国 男 20 30 3 米国 女 15 20 3 [4] 中国 男 25 20 4 中国 女 20 35 4
16)H1セルを選択し Ctrl + Shift + :
17) Ctrl + C
18) A1セルを選択して、Ctrlキー + ↓矢印キー 押下
19)一つ下のセルを選択して、Ctrl + V
[A] [B] [C] [D] [E] [1] 国名 男A 男B 1 [2] 日本 男 10 15 2 [3] 米国 男 20 30 3 [4] 中国 男 25 20 4 [5] 国名 女A 女B 1 [6] 日本 女 20 25 2 [7] 米国 女 15 20 3 [8] 中国 女 20 35 4
20)E1セルを選択して、昇順で並び替え
[A] [B] [C] [D] [E] [1] 国名 男A 男B 1 [2] 国名 女A 女B 1 [3] 日本 男 10 15 2 [4] 日本 女 20 25 2 [5] 米国 男 20 30 3 [6] 米国 女 15 20 3 [7] 中国 男 25 20 4 [8] 中国 女 20 35 4
21)2行目を削除して
22)1行目を書き直す
23)E列を選択して値をクリア
[A] [B] [C] [D] [E] [1] 国名 性別 A B [2] 日本 男 10 15 [3] 日本 女 20 25 [4] 米国 男 20 30 [5] 米国 女 15 20 [6] 中国 男 25 20 [7] 中国 女 20 35
で、意図した結果になると思います。
手順が長いですが、
「ひとつひとつ」よりは楽かなと。
(※表の中に空白行、空白列が無い前提です)
「エクセル ショートカットキー」
「フィルハンドル」
を調べてみてください。
あと、作業列(作業用に仮に順番や数式を入れておいて、後で消す列)に
順番を入れておいて
並び替えるテクニックも覚えておいて損はないかと思います。
(まっつわん) 2020/02/08(土) 21:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.