- 締切済み
関数で簡単に
以下のような表をExcelで作って関数で一番営業成績のよかった人の名前を出したいのですが、一番簡単に出す方法はどんな方法があるでしょうか?(簡単じゃなくても良いですが) B列に日付 C列に担当者名 D列に商品名 E列に価格 F列に売上げた個数 G列に総売上額(価格*個数) 上の方のセルに『営業成績の一番よかったのは「●●(担当者の名前)」です。頑張りましたね!』 と入れたいのですが、関数などを使って出せる方法はありますか? 自分でも関数を組み合わせていろいろやってみたのですが、今一つうまくいきません。 仕方ないので集計を出して自分の目で確認した人の名前を入れています。 こうなると表の数字を変えると結果が変わってしまうので表の数値が変わっても連動して名前が変わるようにしたいのです。 ちなみにExcel2003です。 よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- MackyNo1
- ベストアンサー率53% (1521/2850)
数式は簡単ではありませんが、以下のような配列数式でG列(売上金額がG2セル以下に入力)の集計値が多いC列の名前を表示させることができます。 =INDEX(C2:C100,MATCH(MAX(SUMIF(C2:C100,C2:C100,G2:G100)),SUMIF($C$2:$C$100,C2:C100,G2:G100),0)) 配列数式ですので、Ctrl+Shift+Enterで確定してください。
- ASIMOV
- ベストアンサー率41% (982/2351)
- tom04
- ベストアンサー率49% (2537/5117)
No.1です! たびたびごめんなさい。 投稿した後で間違いに気づきました。 担当者が何度も出ることがあるはずですので、 全てのデータを集計しないといけませんね! まったく考慮していませんでした。 前回の方法は無視してください。 もう一度画像をアップします。 ↓の画像で作業用の列を3列使わせてもらっています。 作業列I3セルに =IF(OR(C3="",COUNTIF($C$3:C3,C3)<>1),"",ROW(A1)) J3セルに =IF(COUNT($I$3:$I$100)<ROW(A1),"",INDEX($C$3:$C$100,SMALL($I$3:$I$100,ROW(A1)))) K3セルに =IF(J3="","",SUMIF($C$3:$C$100,J3,$G$3:$G$100)) として、I3~K3セルを範囲指定し、K3セルのフィルハンドルで下へコピーします。 そして、結合したB1セルに ="『営業成績の一番よかったのは「"&INDEX($J$3:$J$100,MATCH(MAX($K$3:$K$100),$K$3:$K$100,0))&"」さんです。頑張りましたね!」" という数式を入れています。 以上、参考になればよいのですが・・・ 何度も失礼しました。m(__)m
- mshr1962
- ベストアンサー率39% (7417/18945)
ピボットテーブルを使えばいいのでは? データ範囲をB:G列 日付(月単位を設定)をページ 担当者名(並べ替えを総売上額降順に指定)を行に項目表示 総売上額をデータに合計表示 表の数値が変わった場合は、ピボットテーブルの更新を実行すればいいです。 ピボットテーブルの開設してるサイトです。 http://www11.plala.or.jp/koma_Excel/pivot_menu.html
- tom04
- ベストアンサー率49% (2537/5117)