ピボットテーブルなどの操作をすることなく関数を使って別のシートに結果を表示させるとして、次のようにします。
なお、品名についてはC店のみで処理されたものであれば半角カタカナもやむを得ないのですが他の店で同じ品名のものが取り扱われていた場合にはひらがなの品名ですべてが処理されます。
お示しのデータがシート1のA列からD列に有って1行目は項目名で2行目から下方にデータが入力されているとします。
シート1には作業列を設けます。
E2セルには次の式を入力して下方にオートフィルドラッグコピーします。
=IF(COUNTIF(A$2:A2,A2)=1,INT(MAX(E$1:E1)/1000)*1000+1000+IF(COUNTIF(D$2:D2,D2)=1,MOD(MAX(E$1:E1),1000)+1,MOD(INDEX(E$1:E1,MATCH(D2,D$1:D1,0)),1000)),IF(COUNTIF(A$2:A2,A2)>1,INT(INDEX(E$1:E1,MATCH(A2,A$1:A1,0))/1000)*1000+IF(COUNTIF(D$2:D2,D2)=1,MOD(MAX(E$1:E1),1000)+1,MOD(INDEX(E$1:E1,MATCH(D2,D$1:D1,0)),1000)),""))
F2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(E2="","",ROW(A1)*1000)
次に結果の表示ですが例えばシート2のA1セルには品名、B1セルにはA店、C1セルにはB店、D1セルにはC店、もっと店が増える場合にはさらに横の列についかしていきます。
シート2のA2セルには次の式を入力して下方にオートフィルドラッグコピーします。
=IF(COUNTIF(Sheet1!E:E,SMALL(Sheet1!E:F,RANK(Sheet1!F2,Sheet1!E:F,1)+1))=0,"",INDEX(Sheet1!B:B,MATCH(SMALL(Sheet1!E:F,RANK(Sheet1!F2,Sheet1!E:F,1)+1),Sheet1!E:E,0)))
また、B2セルには次の式を入力して1行目に店名があるところの列まで横にオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。
=IF($A2="","",SUMIF(Sheet1!$E:$E,ROW(A1)*1000+COLUMN(A1),Sheet1!$C:$C))
最後の列はSUM関数で対応します。
一度こちらの提案通りで試験してみてください。成功を祈ります。
お礼
ご回答ありがとうございます。 添付のデータは見えづらく、申し訳ありませんでした。 早速、教えてくださった方法で試してみたところ、希望通りの表が出来ました!! 本当にすごいです。 大変助かりました。感謝しております。 ありがとうございました。