
エクセルで、人ごとに1行に並んだデータを、関数を使用して以下のようにするにはどうすればいいでしょうか。
項目数は50ほど、600人ほどのデータがあります。
急ぎの質問です、すみません。
<元データ>
A列 B列 C列 D列 … N列 O列 P列 Q列 …
1 氏名 項目1 4月 5月 … 3月 項目2 4月 5月 … 3月 …
2 A氏 基本給 10円 10円 … 12円 ○手当 5円 6円 … 8円 …
3 B氏 基本給 12円 12円 … 16円 ○手当 8円 8円 … 9円 …
・
・
・
<並び替え後>
A列 B列 C列 D列 … N列
1 氏名 項目 4月 5月 … 3月
2 A氏 基本給 10円 10円 … 12円
3 A氏 ○手当 5円 6円 … 8円
…
51 B氏 基本給 12円 12円
52 B氏 ○手当 8円 8円 … 9円
何卒宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
こんばんは
>項目数は50ほど、600人ほどのデータがあります。
人数は不定でも良いですが、項目数が不明だと計算式にしようがありませんね。
基本的には単純な並び替えなので、「並び替え後」のシートに「元データ」シートの何行目、何列目を参照すればよいかという式を作成すれば良いだけですけれど。
後は、A列だけ必ず氏名(=元データの1列目)を参照するように特別扱いしておけばよさそうですね。
以下は、元データをA:AA列(=2項目と仮定)とした場合の参照式の例です。
並び替え後シートのA2セルに
=INDEX(元データ!$A:$AA,INT(ROW(A4)/2),COLUMN(A1)+(COLUMN(A1)<>1)*MOD(ROW(A2),2)*13)
を入力して、右方。下方にフィルコピーすれば、元データの1行(A:AA列の範囲)が2行ずつに並び替えられます。
式中の INT(ROW(A4)/2) の部分が参照したい行を示しています。
例示の場合には、下方にフィルコピーすると2、2、3、3・・・のように、2行ずつ繰り返すようになります。
これを項目数分同じ行の参照を繰り返すようにすれば良いです。
同様に MOD(ROW(A2),2)*13 の部分が参照する列に加算する部分です。
1項目当たり13セルなので、1行進むと13列ずつずらしてゆく勘定です。
上記の行番号、列番号を計算する部分を、質問者様のシートの項目数に合わせて調整すれば、ご希望の並べ替えになると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
「段」と「行」の違いがよくわ...
-
LEFT関数とIF関数の組み合わせ...
-
Excelの行数、列数を増やしたい...
-
エクセルのソートで、数字より...
-
VLOOKUPの列番号の最大は?
-
vba マージエリアの行数を非表...
-
エクセルで最初の行や列を開け...
-
VBA 指定した列にある日時デー...
-
列方向、行方向の定義
-
横軸を日付・時間とするグラフ化
-
土日の列幅の自動変更を教えて...
-
エクセルでセル12個間隔で合...
-
CSVファイルの「0落ち」にVBA
-
Excel VBA マクロで複数列が共...
-
Excel文字列一括変換
-
エクセル 重複 隣の列 一番...
-
ListViewで列を指定して表示さ...
-
Alt+Shift+↑を一括で行うには、...
-
Excel 区切り位置指定ウィザー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
vba マージエリアの行数を非表...
-
VLOOKUPの列番号の最大は?
-
列方向、行方向の定義
-
LEFT関数とIF関数の組み合わせ...
-
VBA 指定した列にある日時デー...
-
Excelの行数、列数を増やしたい...
-
エクセル マクロ 範囲指定で...
-
エクセルのソートで、数字より...
-
VBAで結合セルを転記する法を教...
-
エクセルで最初の行や列を開け...
-
横軸を日付・時間とするグラフ化
-
VBAで別ブックの列を検索し、該...
-
Excel文字列一括変換
-
最近急にVBAの処理速度が遅くな...
-
csvデータの列の入れ替えができ...
-
データシートビューのタイトル...
-
エクセルマクロPrivate Subを複...
-
CSVファイルの「0落ち」にVBA
おすすめ情報