• ベストアンサー

エクセルで出来ますか?

エクセルで以下の集計は出来ますか? _ (A)__ (B)___ (C) (1)Aさん  ビール    2本 (2)Aさん  サワー    1本 (3)Bさん  ビール    3本 (4)Bさん  ワイン    1本 (5)Bさん  ウイスキー 1本 (6)Cさん  ワイン    5本 (7)Cさん  焼酎     1本 上記を集計して ____(A)_______ (B) (1)3本   Aさん (2)5本   Bさん (3)6本   Cさん と表示する事は可能でしょうか。 知恵がないので教えてください。

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

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

こんばんは! No.1さんの仰っている通りSUMIF関数で大丈夫だと思います。 この際ですので、A列の氏名も重複なしに表示させてみてはどうでしょうか? (Sheet1のA列並びはバラバラで大丈夫です) Excel2007以降のバージョンをお使いだとして・・・ ↓の画像で左側がSheet1の元データで右側のSheet2に表示させるとします。 まずSheet1に作業用の列を設けます(今回はE列としています) E2セルに =IF(COUNTIF(A$2:A2,A2)=1,ROW(),"") という数式を入れフィルハンドルでずぃ~~~!っと下へコピーしておきます。 そしてSheet2のA2セルに =IF(B2="","",SUMIF(Sheet1!A:A,B2,Sheet1!C:C)) B2セルに =IFERROR(INDEX(Sheet1!A:A,SMALL(Sheet1!E:E,ROW(A1))),"") という数式を入れ A2・B2を範囲指定 → B2セルのフィルハンドルで下へコピー! これで画像のような感じになります。 ※ Sheet1の「数量」の列は「○本」のような入力ではなく、単に数値のみにします。 (文字列では計算できません) どうしても「○本」のように表示させたい場合は Sheet1のC列を範囲指定 → 右クリック → セルの書式設定 → 「表示形式」タブの「ユーザー定義」を選択  → G/標準 となっているところを消去 → 0本 と入力しOK これで数値のみの入力で ○本 と表示されます。m(_ _)m

その他の回答 (3)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.4

>知恵がないので教えてください。 知恵は考えることを繰り返さないと身に付きません。 サンプルデータのAさん、Bさん、Cさんの文字が統一されていませんので、そのままでは集計誤差が出ます。 Sheet2のA1セルに次の数式を入力してください。 Sheet2のB列には重複しない名前を入力されているものとします。 =IF(B1="","",SUMPRODUCT((JIS(Sheet1!A:A)=JIS(B1))*Sheet1!C:C)) または =IF(B1="","",SUMPRODUCT((ASC(Sheet1!A:A)=ASC(B1))*Sheet1!C:C)) JIS関数は半角の英数、カタカナを全角英数、カタカナに変換します。 ASC関数は逆で全角文字を半角文字に変換します。 SUMIF関数では比較対象の文字列をJIS関数やASC関数で前処理するとエラーになりますので使えません。 文字種が統一されていればSUMIF関数で集計できます。 =IF(B1="","",SUMIF(Sheet1!A:A,B1,Sheet1!C:C)) また、単位の"本"は数値の表示形式で文字を付加するようにしないと計算対象の数値として扱えません。 敢えて、文字列のままで集計上するときは数値化するための処理が必要です。 貼付画像のSheet1のC列は数値の表示形式で"本"を付加してあります。 集計結果はSheet2のA列ですが、これも数値の表示形式で"本"を付加してあります。

noname#204879
noname#204879
回答No.3

添付図のようなのは駄目?

回答No.1

SUMIF関数という関数を使えばできると思います。 ただし、集計するわけですから、Cセルは数値で入力し、書式で「○本」と表示させるようにしておく必要があります。

momoko11
質問者

補足

助言ありがとうございます。 わがままなお願いですが、SUMIF関数の使い方が解りません。 具体的にどのように使うのか教えて頂けると助かります。 御願いいたします。