こんにちわ
Excelで同じ数ごと列を増やしたいです。
この左側にあるデータを、右側のようにしたいです
連続する数字を増やすやり方はでてくるのですが、
連続しないで、参照させて同じ数ずつ行を増やすにはどうしたらよいでしょうか?
よろしくお願いいたします。
みなさまたくさんの回答ありがとうございました!
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
回答4件
0
ベストアンサー
方法1:シート上の操作で処理
少し面倒ですが、以下手順で目的の形にすることができます。
①元データに連番をつける
例:C列に連番列を作成
列A, B, C ------------ 1,ああ,1 65,いい,2 8,うう,3 48,ええ,4
②連番列まで含めてデータ範囲をコピー
上記例ではA1~C4をコピー
③貼り付けたい列に貼り付ける
例:E列に貼り付け
列A, B, C, D, E, F, G ---------------------- 1,ああ,1, , 1,ああ,1 65,いい,2, ,65,いい,2 8,うう,3, , 8,うう,3 48,ええ,4, ,48,ええ,4
④貼り付けたデータの下にさらに貼り付け(x2)
例:E列に貼り付け
列A, B, C, D, E, F, G ---------------------- 1,ああ,1, , 1,ああ,1 65,いい,2, ,65,いい,2 8,うう,3, , 8,うう,3 48,ええ,4, ,48,ええ,4 , , , , 1,ああ,1 , , , ,65,いい,2 , , , , 8,うう,3 , , , ,48,ええ,4 , , , , 1,ああ,1 , , , ,65,いい,2 , , , , 8,うう,3 , , , ,48,ええ,4
⑤貼り付け先の連番列で並べ替え
例:E~G列をG列で並べ替え
列A, B, C, D, E, F, G ---------------------- 1,ああ,1, , 1,ああ,1 65,いい,2, , 1,ああ,1 8,うう,3, , 1,ああ,1 48,ええ,4, ,65,いい,2 , , , ,65,いい,2 , , , ,65,いい,2 , , , , 8,うう,3 , , , , 8,うう,3 , , , , 8,うう,3 , , , ,48,ええ,4 , , , ,48,ええ,4 , , , ,48,ええ,4
⑥連番列をクリア
例:C列・G列をクリア
列A, B, C, D, E, F, G ---------------------- 1,ああ, , , 1,ああ, 65,いい, , , 1,ああ, 8,うう, , , 1,ああ, 48,ええ, , ,65,いい, , , , ,65,いい, , , , ,65,いい, , , , , 8,うう, , , , , 8,うう, , , , , 8,うう, , , , ,48,ええ, , , , ,48,ええ, , , , ,48,ええ,
これでできあがりです。
方法2:VBAで処理
VBAの場合、以下のような処理手順のマクロを組めば実現できます。
①出力行の変数を初期化
lRow = 1
②対象行をループ処理
For Each rng In sht.Range("A1:A4") ~ Next
③(②ループ内)1行ごとにさらに3回ループ
For iCnt = 1 To 3 ~ Next
④(③ループ内)対象行の内容を、出力先にコピー
sht.Cells(lRow, 4) = sht.Cells(rng.Row, 1) '取得行・A列のセル内容を、出力行・D列にコピー
⑤(③ループ内)出力行をカウントアップ
lRow = lRow + 1
以上のような処理を行うコードを作成すれば目的の結果が得られると思います。
コード全体は提示しませんが、頑張ってみてください。
投稿2016/09/15 02:53
総合スコア3021
0
まだ上がってない手法ということで式と関数を使って。
INDIRECT関数を使う方法
INDIRECT()という、文字列で指定されたセルの参照を行う関数があります。
以下の2つの式は、いずれもA1セルに入っている内容を参照します。
//通常のセル参照 =A1 //INDIRECTを使ったセル参照 =INDIRECT("A1")
この「1」の部分を現在の行を取得するROW()関数と、切り上げを行うROUNDUP()関数を組み合わせて動的に変動させていけば、期待通りの結果になるかと思います。
=INDIRECT("A" & ROUNDUP(ROW()/3, 0))
関数の意味がわかれば式の内容は単純な計算なので、詳しい仕組みは実際にデータを入れて確かめて下さい。
投稿2016/09/15 05:38
総合スコア408
0
手動でやることを前提に記載します。
1:C列に順番を追加して、丸ごとコピー
列A B C ------------ 1 ああ 1 65 いい 2 8 うう 3 48 ええ 4
2:必要回数分コピー(例:3回)
列A B C ------------ 1 ああ 1 65 いい 2 8 うう 3 48 ええ 4 1 ああ 1 65 いい 2 8 うう 3 48 ええ 4 1 ああ 1 65 いい 2 8 うう 3 48 ええ 4
3:C列をメインにフィルターもしくは並べ替え機能で昇順にしてC列削除
列A B ------------ 1 ああ 1 ああ 1 ああ 65 いい 65 いい 65 いい 8 うう 8 うう 8 うう 48 ええ 48 ええ 48 ええ
EXCELを活用するならこうやるかなーと思いました。
参考になれば幸いです。
投稿2016/09/15 05:12
総合スコア247
0
投稿2016/09/15 01:21
編集2016/09/15 01:23総合スコア5405
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
関連した質問
Excelで同じ数ごと列を増やしたい


