• ベストアンサー

エクセルで項目ごとに集計するには?

エクセルで下の表を作ったのですが 部署毎に点数を集計して表示できるようにしたいのですが、どういう数式を使えばよいのでしょうか?宜しくお願いいたします。  A   B   C 1名前 部署 点数 2あ   1  50 3い   3  100 4う   2  150 5え   3  75 ・・・

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

  • ベストアンサー
  • hitoshi38
  • ベストアンサー率50% (5/10)
回答No.3

式を使って自由度のある表を作りたい場合は、SUMPRODUCT関数を使います。 データがSheet1にあり、集計表をSheet2に作りたい場合は、A1からA3に部署名の1~3を入力し、B列に点数合計を表示する例です B1には =SUMPRODUCT((Sheet1!$B$2:$B$5=A1)*(Sheet1!$C$2:$C$5)) B2には =SUMPRODUCT((Sheet1!$B$2:$B$5=A2)*(Sheet1!$C$2:$C$5)) B3には =SUMPRODUCT((Sheet1!$B$2:$B$5=A3)*(Sheet1!$C$2:$C$5)) をそれぞれ入力して下さい

その他の回答 (3)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

次のような方法もありますね。 シート1のD2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,MAX(D$1:D1)+1,"")) シート2のA列には部署名をB列には部署ごとの合計を表示させるためにはA2セルに次の式を入力します。 =IF(COUNTIF(Sheet1!D:D,ROW(A1))=0,"",INDIRECT("Sheet1!B"&MATCH(ROW(A1),Sheet1!D:D,0))) B2セルには次の式を入力します。 =IF(A2="","",SUMIF(Sheet1!B:B,A2,Sheet1!C:C)) 最後にA2セルとB2セルを選択して下方にオートフィルドラッグします。

  • hitoshi38
  • ベストアンサー率50% (5/10)
回答No.2

こんな場合は、ピボットテーブルを使うと便利です。 1.A1~C**(最終行)を選択します 2.メニューから「データ」⇒「ピボットテーブルとピボットグラフレポート」を選択 3.ウイザード1/3が表示されるので、「次へ」ボタンを押す 4.ウイザード2/3が表示されるので、「次へ」ボタンを押す 5.ウイザード3/3が表示されるので、「レイアウト」ボタンを押す 6.レイアウト画面に変わるので、行の欄に右側の「部署」ボタンをドラッグ&ドロップ 7.同じくデータの欄に「点数」ボタンをドラッグ&ドロップ 8.OK」ボタンでウイザード3/3に戻るので、「完了」ボタンを押す これで表が完成します 元データが変更になった場合は、表示された表のところでマウスの右ボタンメニューで更新を選択すればOKです。

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

こんにちは! 色々方法はあるかと思いますが・・・ 一例です。 今回は名前は無視して、部署毎の集計で良い訳ですね? 一応そういうことだとしての回答です。 ↓の画像でSheet1の元データをSheet2に部署毎に集計するようにしてみました。 Sheet1に作業ようの列を使わせてもらっています。 作業列が目障りであれば数式を入力後、非表示にしてもOKかと思います。 まず、Sheet1のA2セルに =IF(COUNTIF($C$2:C2,C2)=1,ROW(A1),"") としてオートフィルで下へコピーします。 (Sheet2の数式が1000行まで対応できるようにしていますので、1000行くらいまでコピーしても構いません) そして、Sheet2のA2セルに =IF(COUNT(Sheet1!$A$2:$A$1000)<ROW(A1),"",INDEX(Sheet1!$C$2:$C$1000,SMALL(Sheet1!$A$2:$A$1000,ROW(A1)))) B2セルに =IF(A2="","",SUMIF(Sheet1!$C$2:$D$1000,A2,Sheet1!$D$2:$D$1000)) という数式を入れ、A2・B2セルを範囲指定し、B2セルのフィルハンドルで 下へコピーすると、画像のような感じになります。 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。 どうも長々と失礼しました。m(__)m

関連するQ&A