• ベストアンサー

エクセルで指定回数だけ別セルに繰り返す方法

色々検索してみたのですが同じ例が見つけられませんでしたのでどなたかに伺いたいです。 sheet1に   1 A 13 B 14 C 15 というデータがあります。 作成したいのは、別のシートに Aを縦に13回別のセルに、(セルA1~A13すべてに"A"が記入されている状態) Bを縦に14回別のセルに、(セルA14~A27すべてに"B"が記入されている状態)  ・・・ と表示されるシートなのですが、普通の数式、もしくはマクロをつかってできますか? どうぞよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

最初の「1」って、特に説明も無いので意味はないとしてスルーします。 手順: シート1のA1に「累計」、B1に「項目」、C1に「回数」と記入する B2以下にA,B,C C2以下に13,14,15 をそれぞれ記入 A2に =IF(C1="","",SUM(C$1:C1,1)) と記入してA5以下までコピーする シート2のA1に =LOOKUP(ROW(),Sheet1!A:B)&"" と記入して以下沢山コピーする。 #回答した通りに作成します。勝手に違う事をすると出来ません。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! VBAでの一例です。 「1」が何を意味しているのか判らないので、↓の画像のようにSheet1の2行目以降にデータがあるとします。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, wS1 As Worksheet, wS2 As Worksheet Set wS1 = Worksheets("Sheet1") Set wS2 = Worksheets("Sheet2") wS2.Range("A:A").ClearContents On Error Resume Next For i = 2 To wS1.Cells(Rows.Count, "A").End(xlUp).Row wS2.Cells(Rows.Count, "A").End(xlUp).Offset(1).Resize(wS1.Cells(i, "B")) = wS1.Cells(i, "A") Next i wS2.Range("A1").Delete shift:=xlUp End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

関連するQ&A