- ベストアンサー
エクセルで出来ますか?
エクセルで以下の集計は出来ますか? _ (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さん と表示する事は可能でしょうか。 知恵がないので教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 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)
>知恵がないので教えてください。 知恵は考えることを繰り返さないと身に付きません。 サンプルデータの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列ですが、これも数値の表示形式で"本"を付加してあります。
- passers-by
- ベストアンサー率40% (40/98)
SUMIF関数という関数を使えばできると思います。 ただし、集計するわけですから、Cセルは数値で入力し、書式で「○本」と表示させるようにしておく必要があります。
補足
助言ありがとうございます。 わがままなお願いですが、SUMIF関数の使い方が解りません。 具体的にどのように使うのか教えて頂けると助かります。 御願いいたします。