エクセルで自動でできませんかね。 空白の行を追加して、それぞれの項目を10行ごとにしたいです。 例の図で、元が左の表のイメージ、これを右の表のようにしたいです。

画像

Excel44閲覧

ベストアンサー

0

2.A列は、昇順または降順にソートされていること は以下の間違いです。 2.A列同種データは必ず連続していること 連続していればソートされてなくても構いません。

ThanksImg質問者からのお礼コメント

皆さまご回答ありがとうございました。 やりたいことに最も近かったのでBAにいたしました。

お礼日時:7/25 9:51

その他の回答(4件)

0

一つの項目が10行を超えたときは添付図のようにします。 ※罫線も引きます(10行の境には太罫線) Sub test() Dim i As Long, j As Long, k As Long, s As Long, e As Long, rng As Range With Cells(1, 10).Resize(, 7) .Value = Cells(1, 1).Resize(, 7).Value .Borders.LineStyle = True End With s = 2 k = 2 For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row j = j + 1 If Cells(i, 1) <> Cells(i + 1, 1) Or j = 10 Then Set rng = Range(Cells(s, 1), Cells(i, 7)) Cells(k, 10).Resize(rng.Rows.Count, 7) = rng.Value Cells(k, 10).Resize(10, 7).Borders.LineStyle = True Cells(k, 10).Resize(, 7).Borders(xlEdgeTop).Weight = 3 k = k + 10 s = i + 1 j = 0 End If Next End Sub

画像
0

下の図のようなことで、H列を作業列に使い、 ①H2セルには、 =IF(A2="","",IF(A2=A1,SUM(H1)+1,INT(SUM(H1)/10)*10+10+COUNTIF(A$2:A2,A2)-1)) の式を入れ、下にオートフィル(フィルコピー)し、 ②J2セルには、 =IFERROR(INDEX(A:A,MATCH(ROW(10:10),$H:$H,0)),"") の式を入れ、右と下にオートフィルしています。

画像
0

1)H/I列を作業列にして、 2)H2=A2&COUNTIF(A$2:A2,A2) 3)下にコピー 4)I2=CHOOSE((ROW(A1)-1)/10+1,"ア","イ","ウ")&MOD(ROW(A1)-1,10)+1 5)下にコピー 6)J2=IFERROR(INDEX(A:A,MATCH($I2,$H:$H,0)),"") 7)右と下にコピー

画像
0

複数行を追加したいときはその追加したい分だけ追加する場所の下の行を選択して行追加すればできるので、それで頑張るしかないですね、、、