プロが教えるわが家の防犯対策術!

エクセルで、人ごとに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円
 
何卒宜しくお願い致します。

A 回答 (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列ずつずらしてゆく勘定です。

上記の行番号、列番号を計算する部分を、質問者様のシートの項目数に合わせて調整すれば、ご希望の並べ替えになると思います。
    • good
    • 0
この回答へのお礼

項目数を固定しデータを作成することができました。ありがとうございました。

お礼日時:2024/01/29 01:33

ひとりを基本給と手当てに分けたいって事ですか。


A氏ひとりを2、3行に当てたら
B氏は50、51行目にくると思うのですが
行数は項目によって変化するんですか
    • good
    • 0
この回答へのお礼

項目は48項目で変化無しでした。解決できました。ありがとうございました。

お礼日時:2024/01/29 01:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A