• 締切済み

Excelについて

添付画像の上部のExcelがあり、 それを下部のような図にしたいのですが、 どのような関数を使用すればよろしいでしょうか? 販売週は、第何週まであるか不明確です。 また、続けて販売していない場合もあるため、 販売していないときは下部の図には取り出したくないです。

みんなの回答

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

こんばんは! データの配置は↓の画像の上側(Sheet1とします)のようになっているとして、 下側のSheet2の2行目以降に表示するとします。 VBAになってしまいますが、一例です。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, j As Long, lastRow As Long, wS As Worksheet Set wS = Worksheets("Sheet1") With Worksheets("Sheet2") lastRow = .Cells(Rows.Count, "A").End(xlUp).Row If lastRow > 1 Then Range(.Cells(2, "A"), .Cells(lastRow, "E")).ClearContents End If For i = 2 To wS.Cells(Rows.Count, "D").End(xlUp).Row Step 2 For j = 5 To wS.Cells(1, Columns.Count).End(xlToLeft).Column If wS.Cells(i, j) <> "" Then With .Cells(Rows.Count, "A").End(xlUp).Offset(1) .Value = wS.Cells(i, "C") .Offset(, 1) = wS.Cells(i, "A") .Offset(, 2) = wS.Cells(1, j) .Offset(, 3) = wS.Cells(i, j) .Offset(, 4) = wS.Cells(i + 1, j) End With End If Next j Next i .Range("B:B").NumberFormatLocal = "000" .Range("E:E").Style = "Percent" End With End Sub 'この行まで ※ 関数でないので、データ変更があるたびにマクロを実行する必要があります。m(_ _)m

関連するQ&A