回答No1,2です。
関数で処理することよりもマクロで処理することの方が楽ですね。
例えばシート1にお示しの元の表が有るとしてシート2にはA1セルからG1セルに日付から価格までの項目名を入力します。
そこでシート1に戻ってシート見出しでシート1を右クリックして「コードの表示」を選択します。
表示の画面には下記のコードを入力します。
Sub 表の作成()
Set WS1 = Worksheets("Sheet1")
Set WS2 = Worksheets("Sheet2")
Dim m, i, n As Long
m = 2
For i = 3 To WS1.Range("A65536").End(xlUp).Row
For n = 3 To 28 Step 5
If WS1.Cells(i, n) <> "" Or WS1.Cells(i, n + 1) <> "" Or WS1.Cells(i, n + 2) <> "" Or WS1.Cells(i, n + 4) <> "" Then
WS2.Cells(m, "A") = WS1.Cells(i, "A").Value
WS2.Cells(m, "B") = WS1.Cells(i, "B").Value
WS2.Cells(m, "C") = WS1.Cells(1, n).Value
WS2.Cells(m, "D") = WS1.Cells(i, n).Value
WS2.Cells(m, "E") = WS1.Cells(i, n + 1).Value
WS2.Cells(m, "F") = WS1.Cells(i, n + 2).Value
WS2.Cells(m, "G") = WS1.Cells(i, n + 4).Value
m = m + 1
End If
Next
Next
End Sub
これで終了です。
マクロを実行するのには「開発」タブの「マクロ」から表の作成を選んで「実行」をクリックします。
お礼
迅速なご回答をありがとうございます。あっという間にできて本当に助かりました。また、宜しくお願い致します。