商品名や支店名、日付までも自動で表示させるようにするためには、シート1の集計元表にはいくつかの作業列を設けることが必要です。
元の集計表がA1セルに商品名、B1セルに支店名、C1セルに日付、D1セルに売上数の項目名が有り、各データがそれぞれの下行にあるとします。その際にA列が第一優先での並べ替えがあり、B列が第二優先での並び替えが行われているものとします。
そこでE2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,MAX(E$1:E1)+1,INDEX(E$1:E1,MATCH(A2,A:A,0))))
F2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,MAX(F$1:F1)+1,INDEX(F$1:F1,MATCH(B2,B:B,0))))
G2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(E2="","",IF(COUNTIF(A$2:A2,A2)=1,MAX(G$1:G1)+5,IF(AND(E2=E1,F2<>F1),MAX(G$1:G1)+1,"")))
H2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(G2="","",IF(COUNTIF(G:G,G2-1)=0,G2-2,""))
I2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(A2="","",A2&B2&C2)
そこでお求めの商品名ごとの集計ですがシート2に作成するとしてA3セルには次の式を入力して下方にオートフィルドラッグします。
=IF(OR(ROW(A3)<3,ROW(A3)>MAX(Sheet1!$G:$G)+1),"",IF(COUNTIF(Sheet1!$H:$H,ROW(A3))>0,"集計表",IF(OFFSET(A3,-1,0)="集計表","",IF(COUNTIF(Sheet1!$G:$G,ROW(A3))>0,INDEX(Sheet1!$B:$B,MATCH(ROW(A3),Sheet1!$G:$G,0)),IF(OR(OFFSET(A3,2,0)="集計表",ROW(A3)=MAX(Sheet1!$G:$G)+1),"合計","")))))
B3セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。
=IF(ROW(A3)<3,"",IF(AND($A3="集計表",COLUMN(A3)=1),INDEX(Sheet1!$A:$A,MATCH(ROW(A3),Sheet1!$H:$H,0)),IF(AND(OFFSET($A3,-1,0)="集計表",COLUMN(A3)<MAX(Sheet1!$C:$C)-MIN(Sheet1!$C:$C)+2),TEXT(MIN(Sheet1!$C:$C)+COLUMN(A3)-1,"m/dd"),IF(AND(OFFSET($A3,-1,0)="集計表",COLUMN(A3)=MAX(Sheet1!$C:$C)-MIN(Sheet1!$C:$C)+2),"合計",IF(OR(AND($A3="合計",B$4="合計"),AND(B$4="合計",COUNTIF(Sheet1!$G:$G,ROW(A3))>0)),SUM(A3:$B3),IF(ISERROR(IF(COUNTIF(Sheet1!$G:$G,ROW(A3))>0,INDEX(Sheet1!$D:$D,MATCH(INDEX(Sheet1!$A:$A,MATCH(ROW(A3),Sheet1!$H:$H,1))&$A3&DATEVALUE(INDEX($4:$4,COLUMN(A3)+1)),Sheet1!$I:$I,0)))),"",IF(COUNTIF(Sheet1!$G:$G,ROW(A3))>0,INDEX(Sheet1!$D:$D,MATCH(INDEX(Sheet1!$A:$A,MATCH(ROW(A3),Sheet1!$H:$H,1))&$A3&DATEVALUE(INDEX($4:$4,COLUMN(A3)+1)),Sheet1!$I:$I,0)),IF(AND($A3="合計",COLUMN(A3)<MAX(Sheet1!$C:$C)-MIN(Sheet1!$C:$C)+2),SUM(INDEX(B:B,INDEX(Sheet1!$G:$G,MATCH(ROW(A3),Sheet1!$H:$H,1))):OFFSET(B3,-1,0)),""))))))))
これでお望みの表がシート2に表示されます。