• ベストアンサー

excelでの集計方法

質問させてください。 excel2007で次のような表を集計しています。 111   A商品 30g 111   A商品 20g 111   A商品 20g 112   A商品 20g 113   B商品 20g 条件としては、 「商品名・内容量(g)が同じ ただし、左の番号が同じものは、”1”とカウントする」 よって A商品 30g→1 A商品 20g→2 B商品 20g→1 としたいのです。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • turuzou
  • ベストアンサー率33% (15/45)
回答No.6

No.3です。 例えば(元シートSheet1)補助列を1列追加して、 商品名&グラムの列を、作成すれば、SUMIF で結果を表示できます。 SUMPRODUCT より、動作が軽くなると思われます。 補助列を使用します。(Sheet1) D1へ =A1&B1&C1 を、オートフィルで下へ E1へ =IF(COUNTIF(D$1:D1,D1)=1,1,0) を、オートフィルで下へ F1へ =B1&C1 を、オートフィルで下へ 結果を表示したいセルへ(Sheet2) A商品の30g =SUMIF(Sheet1!F$1:F$5,"A商品30g",Sheet1!E$1:E$5) A商品の20g =SUMIF(Sheet1!F$1:F$5,"A商品20g",Sheet1!E$1:E$5) B商品の20g =SUMIF(Sheet1!F$1:F$5,"B商品20g",Sheet1!E$1:E$5)

その他の回答 (5)

  • turuzou
  • ベストアンサー率33% (15/45)
回答No.5

No.3です。 例えば(元シートSheet1)補助列を1列追加して、 商品名&グラムの列を、作成すれば、SUMIF で結果を表示できます。 SUMPRODUCT より、動作が軽くなると思われます。 補助列を使用します。(Sheet1) D1へ =A1&B1&C1 を、オートフィルで下へ E1へ =IF(COUNTIF(D$1:D1,D1)=1,1,0) を、オートフィルで下へ F1へ =B1&C1 を、オートフィルで下へ 結果を表示したいセルへ(Sheet2) A商品の30g =SUMIF(Sheet1!F$1:F$5,"A商品30g",Sheet1!E$1:E5) A商品の20g =SUMIF(Sheet1!F$1:F$5,"A商品20g",Sheet1!E$1:E6) B商品の20g =SUMIF(Sheet1!F$1:F$5,"B商品20g",Sheet1!E$1:E7)

  • turuzou
  • ベストアンサー率33% (15/45)
回答No.4

No.3です、失礼しました。 C列がg表示でしたら下記へ変更してください。 補助列を使用します。 D1へ =A1&B1&C1 を、オートフィルで下へ E1へ =IF(COUNTIF(D$1:D1,D1)=1,1,0) を、オートフィルで下へ 結果を表示したいセルへ A商品の30g =SUMPRODUCT((B$1:B$5="A商品")*(C$1:C$5="30g")*E$1:E$5) A商品の20g =SUMPRODUCT((B$1:B$5="A商品")*(C$1:C$5="20g")*E$1:E$5) B商品の20g =SUMPRODUCT((B$1:B$5="B商品")*(C$1:C$5="20g")*E$1:E$5)

mimomosan
質問者

お礼

すみません。自己解決です。 もう一度範囲を指定し直したら、できました。 ありがとうございました!!

mimomosan
質問者

補足

ご回答有難うございます。 上記で、参照シートが違う場合、 =SUMPRODUCT((Sheet1!F$1:F$2000=C1)*(Sheet1!G$1:G$2000=D1)*Sheet2!B$1:B$2000) (検索基準値はC1とD1) ですと、きちんと計算されません。 Sheet2が反映されていないようです。 原因がわかりません。。。

  • turuzou
  • ベストアンサー率33% (15/45)
回答No.3

補助列を使用します。 D1へ =A1&B1&C1 を、オートフィルで下へ E1へ =IF(COUNTIF(D$1:D1,D1)=1,1,0) を、オートフィルで下へ 結果を表示したいセルへ A商品の30g =SUMPRODUCT((B$1:B$5="A商品")*(C$1:C$5=30)*E$1:E$5) A商品の20g =SUMPRODUCT((B$1:B$5="A商品")*(C$1:C$5=20)*E$1:E$5) B商品の20g =SUMPRODUCT((B$1:B$5="B商品")*(C$1:C$5=20)*E$1:E$5)

  • avam-efsf
  • ベストアンサー率23% (223/940)
回答No.2

それでしたらピポッとテーブルを使うのが速いですね。 ツール→ピポットテーブルとピポットグラフレポート を選択して、 次へ次へ・・・と選び完了すると 図のような画面になるので、項目を数字の順番で 矢印の場所にドラッグ&ドロップしてください。

mimomosan
質問者

お礼

ご回答、ありがとうございます! 元データが膨大なので、ちょっと重くなるかな・・・と。 関数でも重いんですがねぇ。 しかも、一つ発見。 ピポットって、同じ要素、二回使えるんですね。。。 知りませんでした! 有難うございました。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.1

SUMPRODUCT関数で 画像の場合で G2に =SUMPRODUCT(($B$1:$B$6=E2)*($C$1:$C$6=F2)) 下方にオートフィル

mimomosan
質問者

補足

ご回答、ありがとうございます。 画像まで頂いて、恐縮です。 しかし、A商品 20gは、カウント”2”にしたいのです。 (番号が一緒のものは、1つと数えたいので・・・)

関連するQ&A

専門家に質問してみよう