Excel初心者です。

画像

Excel75閲覧xmlns="http://www.w3.org/2000/svg">500

ベストアンサー

0

その他の回答(2件)

0

セル位置が書いてありません。画像のような表とします。 Sheet2 1行目を―ワークエリアに使います。目障りなら非表示にして下さい。 B1: =IF(Sheet1!B1="","",A1+COUNTA(Sheet1!B:B)-2) Sheet1の列数分右へコピペ。 A3: 1 B3: =OFFSET(Sheet1!A$2,0,A3) C3: =OFFSET(Sheet1!$A3,-INDEX($1:$1,A3),A3) A4: =A1+COUNTA(Sheet1!B:B)-2 B3:C3 をB4へコピペ。 A4:C4 を纏めて下へコピペ。 必要データより下へコピペすると、 最終No+1、0 0 が表示されます。 0 はセルの書式設定、ユーザー定義「#」 で見えなくできます。

画像
0

元データの表を「Sheet1」に添付図のような位置関係で作成されているとします。 同様に整形した表を「Sheet2」に添付図のような配置とします。 Sheet2にフォームコントロールのボタンを配置しています。 このボタンに下記プログラムを作成し、実行させます。 2,000件以上とのことですので、行方向、列方向で約5,000件に対応できるようにしています。 Sub Sheet2_ボタン1_Click() With Worksheets("Sheet1") For n0 = 3 To 5000 If .Cells(3, n0).Value = "" Then Exit For Else For n1 = 5 To 5000 If .Cells(n1, n0).Value = "" Then Exit For Else For n2 = 5 To 5000 If Cells(n2, 2).Value = "" Then Cells(n2, 2).Value = .Cells(3, n0).Value Cells(n2, 3).Value = .Cells(4, n0).Value Cells(n2, 4).Value = .Cells(n1, n0).Value Exit For End If Next End If Next End If Next End With End Sub

画像