Excelの関数について教えてください。画像の右側のデータベースから、売上を集計した左の表を作りたいです。赤枠品名欄に(りんご、バナナ…)を入力することで、上の表にデータが反映される関数などがあれば教えていただきたいです…よろしくお願いいたします。

Excel

1件の回答

回答を書く

1119718

2026-01-12 14:15

+ フォロー

元の表がSheet1とします。数式だと拡張性が低い気がするのでマクロで処理します。



この表はデータベース型ではなく、クロス表になっています。1回この表をデータベース型に変換します(ピボット解除)。

そのうえでSheet2にピボットテーブルを作成します。

レポートフィルタに品名を入れるのでB3セルで品名を選択します。





Sub データベース再構築()

Dim i As Long, j As Long, k As Long, c As Long, r As Long, V

Sheets(\u0026quot;Sheet1\u0026quot;).Select

Columns(\u0026quot;A:E\u0026quot;).Clear

r = Cells(Rows.Count, 12).End(xlUp).Row

c = Cells(3, Columns.Count).End(xlToLeft).Column

ReDim V(1 To (c - 13) * (r - 3) + 1, 1 To 4)

V(1, 1) = \u0026quot;店舗\u0026quot;: V(1, 2) = \u0026quot;品名\u0026quot;: V(1, 3) = \u0026quot;年度\u0026quot;: V(1, 4) = \u0026quot;売上\u0026quot;

k = 2

For j = 14 To c

For i = 4 To r

V(k, 1) = Cells(i, 12)

V(k, 2) = Cells(i, 13)

V(k, 3) = Cells(3, j)

V(k, 4) = Cells(i, j)

k = k + 1

Next

Next

With Range(\u0026quot;B3\u0026quot;)

.Resize(UBound(V), 4) = V

.CurrentRegion.Borders.LineStyle = True

End With

End Sub





Sub ピボットテーブル作製()

Sheets(\u0026quot;Sheet2\u0026quot;).Select

With ThisWorkbook.PivotCaches.Create(xlDatabase, Sheets(\u0026quot;Sheet1\u0026quot;).Range(\u0026quot;B3\u0026quot;).CurrentRegion) _

.CreatePivotTable(Range(\u0026quot;B5\u0026quot;))

.PivotFields(\u0026quot;品名\u0026quot;).Orientation = xlPageField

.PivotFields(\u0026quot;年度\u0026quot;).Orientation = xlRowField

.PivotFields(\u0026quot;店舗\u0026quot;).Orientation = xlColumnField

.PivotFields(\u0026quot;売上\u0026quot;).Orientation = xlDataField

End With

End Sub

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有