• ベストアンサー

エクセルで月間で売れた商品(販売個数)ベスト10を出したい

エクセルで月間で売れた商品(販売個数)ベスト10を出したいのですが、毎日エクセルで売れた商品を集計しています。 その集計データをもとに売れた商品の販売個数でランク付け(トップ10)を出す方法を教えてください。よろしくお願いします。

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

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

回答No2です。後から次々と新たな注文が出てくる形はできるだけ避けてください。もう一度はじめから考え直す必要があるからです。 ところでご質問の件ですが次のようにすることでその月にダブって商品が入力されている場合でも対応することができます。 シートの条件はNo2と同じですが作業列や式については次のようにします。 シート1では作業列を増やして対応します。目障りでしたらのちほど列を非表示にすればよいでしょう。 E2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(OR(A2="",Sheet2!A$1=""),"",IF(MONTH(A2)=MONTH(Sheet2!A$1),B2,"")) F2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(OR(E2="",COUNTIF(E$2:E2,E2)>1),"",IF(MONTH(A2)=MONTH(Sheet2!A$1),SUMIF(E:E,E2,C:C),"")) G2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(F2="","",IF(RANK(F2,F:F)>=10,"",RANK(F2,F:F)+COUNTIF(F$2:F2,F2)*0.001)) シート2ではA2セルに次の式を入力してC2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(ROW(A1)>COUNT(Sheet1!$G:$G),COLUMN(A1)>3),"",INDEX(Sheet1!$A:$F,MATCH(SMALL(Sheet1!$G:$G,ROW(A1)),Sheet1!$G:$G,0),IF(COLUMN(A1)<=2,COLUMN(A1),6)))

doublemac
質問者

お礼

>後から次々と新たな注文が出てくる形はできるだけ避けてください。もう一度はじめから考え直す必要があるからです。  ごもっともです。申し訳ございません。 とんでもないわがままな質問にも丁寧な回答をいただき感謝しております。 検証に時間がかかり、連絡が遅れました。やりたかったことがばっちり解決できて胸がすっとしております。

その他の回答 (4)

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

No.3です! たびたびごめんなさい。 前回の方法では販売個数が同じ商品があった場合一番上の行の商品しか拾い出しできませんので、 もう一度お邪魔しました。 ↓の画像のようにSheet1にもう一列作業列を追加してください。 E2セルに =IF(D2="","",COUNTIF($D$2:$D$1000,">"&D2)+COUNTIF($D$2:D2,D2)) としてオートフィルで下へコピーします。 (これで累計が同数の場合は上側の商品が上位のランクになります) そして、Sheet2のB3セルに =IF(COUNT(Sheet1!$E$2:$F$1000)<ROW(A1),"",INDEX(Sheet1!$B$2:$B$1000,MATCH(ROW(A1),Sheet1!$E$2:$E$1000,0))) C3セルは =IF(B3="","",INDEX(Sheet1!$D$2:$D$1000,MATCH(B3,Sheet1!$B$2:$B$1000,0))) としてオートフィルで下へコピーしてみてください。 これで同順位の場合でも対応できると思います。 どうも何度も失礼しました。m(__)m

doublemac
質問者

お礼

ありがとうございます。 関数の奥深さに感心し、解決できたことに深く感謝いたします。 わかりやすい画像まで入れていただきありがとうございました。

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

こんばんは! 横からお邪魔します。 参考になるかどうか判りませんが・・・ ↓の画像のようにSheet1のデータをSheet2にまとめてみました。 尚、Sheet1のデータは1か月分だとしています。 Sheet1の作業列D2セルに =IF(B2="","",IF(COUNTIF($B$2:B2,B2)=1,SUMIF($B$2:$B$1000,B2,$C$2:$C$1000),"")) としてオートフィルでずぃ~~~!っと下へコピーするか、フィルハンドルの(+)マークでダブルクリックします。 そして、Sheet2のB3セルは =IF(COUNT(Sheet1!$D$2:$D$1000)<ROW(A1),"",INDEX(Sheet1!$B$2:$B$1000,MATCH(LARGE(Sheet1!$D$2:$D$1000,ROW(A1)),Sheet1!$D$2:$D$1000,0))) C3セルは =IF(B3="","",INDEX(Sheet1!$D$2:$D$1000,MATCH(B3,Sheet1!$B$2:$B$1000,0))) として、B3・C3セルを範囲指定し、C3セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、数式はSheet1の1000行目まで対応できるようにしていますが、 データ量によって範囲指定の領域はアレンジしてみてください。 以上、長々と書きましたが参考になれば幸いです。 的外れなら読み流してくださいね。m(__)m

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

シート1には元のデータがあり、ある月間でのベストテンをシート2に表示させる方法です。 シート1ではA1セルに日付、B1セルに商品名、C1セルに販売個数と項目名がありそれぞれのデータが2行目から下方に入力されているとします。なお、日付は2010/2/1のように入力されているとします。 そこで作業列を作って対応することにします。 E2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(OR(A2="",Sheet2!A$1=""),"",IF(MONTH(A2)=MONTH(Sheet2!A$1),C2,"")) また、F2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(E2="","",IF(RANK(E2,E:E)>=10,"",RANK(E2,E:E)+COUNTIF(E:E,E2)*0.01)) 次にシート2に移ってA1セルには2010/1/1のように入力してセルの表示形式ではユーザー定義で m"月" のようにしてセルの表示は1月のように表示させます。この月が表示させたい月ということになります。 A2セルには日付、B2セルには商品名、C2セルには販売個数と項目名を入力します。 A3セルには次の式を入力してC3セルまでオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(ROW(A1)>COUNT(Sheet1!$F:$F),"",INDEX(Sheet1!$A:$D,MATCH(SMALL(Sheet1!$F:$F,ROW(A1)),Sheet1!$F:$F,0),COLUMN(A1))) なお、A3セルから下方のセルの表示形式は日付にします。 これで同じランクの販売個数のデータも表示されますので、10行以上のデータも並ぶこともあるでしょう。 一度、こちらの提案通りに操作を試験してから応用してください。

doublemac
質問者

お礼

ありがとうございます。 すごい!数式が全然理解できませんが、欲を言えば、シート2にシート1で同じ商品が別の日でも売れた場合、シート2でその商品名を複数行ではなく、一行で合計個数を出す方法はありますでしょうか?欲張りでしょうか?

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

集計したデータがどのように並んでいるのか判りませんので、一般的な話になりますが、オートフィルタで、販売個数のトップテンを表示し、更に降順に並び替えれば良いのでは?

doublemac
質問者

お礼

ありがとうございます。 自分で活用するにはおっしゃる内容でことたりますが、集計してほかのデータと一緒に1シート上で、プレゼンする際に見せたいのですが。

関連するQ&A

  • エクセルで10分ごとの売り上げ個数を集計したいと思っています。

    エクセルで10分ごとの売り上げ個数を集計したいと思っています。 データは次のような感じです。 15:13 2 15:15 1 15:15 2 15:17 1 15:19 4 営業時間内の売り上げがあった時間と、そのときの販売個数がお客さんごとに記録されているのですが、このデータを使って10分ごとの客数と販売個数を集計したいと思っています。どのような関数を使えばいいのでしょうか? 上記の5つのデータだと 15:10~15:20の客数(データ数)は5、販売個数は10(2+1+2+1+4)というのを出したいです。 わかる方いたらお教えいただけないでしょうか?

  • エクセル★商品別の合計個数を出したいのですが。

    下記のようなA表があります。データは500以上あります。 今までは、一番右の日付の列がなかったので、データ→集計で簡単に商品別の個数を出すことができたのですが、日付が増えたので、商品別かつ日付別の個数を出したいのですが、簡単に出す方法はありますでしょうか?ちなみに、データ→集計のときのように、各商品名のすぐ下の行に合計個数を出したいです。 よろしくお願いしますm(_ _)m A表 商品コード 商品名      個数    日付 1000011111 シュークリーム 100    12.3.5 1000022222 モンブラン 120     12.3.3 1000033333 チーズケーキ 35     12.9.8 1000044444 アップルパイ 30   12.10.11 1000055555 フルーツタルト 25   12.10.11 1000066666 シブースト 11   12.9.6 1000022222 モンブラン  22   12.3.3 1000055555 フルーツタルト  25   12.10.11 1000011111 シュークリーム  100   12.12.24 1000044444 アップルパイ  30   12.10.11 1000055555 フルーツタルト  25   12.12.12 1000055555 フルーツタルト  99   12.12.12 1000011111 シュークリーム  66   12.3.5 1000044444 アップルパイ  18   12.5.5 1000077777 ナポレオン  26   12.3.3

  • エクセル 塗りつぶししたセルの個数をカウントしたい

    表の集計で、【セルの色を塗りつぶして区別したデータの個数】を、カウントする方法を教えて下さい。 事例ですが、飲食店の月間の宴会データ作成で、売上・客数・組数など集計表に数値で表示されているものは、SUM、COUNT関数で求めています。 質問は、【送迎付きの宴会】データがあり、集計表に数値ではなく【セルの塗りつぶし】で記録されています。目視で数えるのがめんどくさいため、この塗りつぶしの個数をカウントする良い方法がありましたら教えて下さい。

  • Excelで、年間のデータから月間・累月のデータを集計することできますか?

    お世話になります。 「ア」「イ」「ウ」「エ」「オ」という5つの支店で、A、B、C、Dの4種類の商品を売っています。それぞれの支店での商品別の売り上げ個数を集計します。このとき、集計する期間を、年間・月間・今月はじめから今日まで、今年初めから今日まで、といった具合に集計したいのです。データは1枚のシートに、1月1日から日ごとに作成されています。そして、昨年のデータもあります。今日までの売り上げと、昨年の同じ日までの売り上げとも比較したいのです。 特定の日付の売り上げをひっぱってくるところまでは、VLOOKUP関数でできています。 エクセルの数式で、好きな期間の集計データを抽出してくることは可能でしょうか?。 よろしくお願いいたします。

  • エクセルで集計

    エクセルで集計 シート1に1つの列に各支店名、2つ目の列に各商品名、3つ目の列に商品個数がランダム入力されているデータをシート2に自動で整理し集計したいのですが、2つの列の集計は関数SUMIFできるのですが、例えば、「各支店の商品個数の集計」など、「各支店の各商品の個数の集計」などの3つの列の集計方法を分かる方、いましたら教えてください。宜しくお願いします。

  • エクセルで、とある商品の月間出荷数量を集計したい

    エクセルで「ある規格の商品の月間出荷数量を集計したい」です。 作成したい関数を言葉で表現すると: E7の値が42(←これが商品規格)の K6~Z6の期間の中から2010年12月の数量だけを抜粋して AA7の欄にその数量のトータルを明記したい。 上3行の内容をエクセルの関数で表現したいのですが、誰か助けてください。 よろしくお願い致します。

  • ACCESSかEXCELで集計について

    MS AccessとEXCELでの集計をおしえてください。 日付(時間付)、店舗、販売員、区分、商品名(毎日新しいものが計上される)、売上個数のデータが大量にあるとして、日付(時間を除く)毎にそれぞれを集計していきたいのですが、どうすればよいでしょうか? 販売員、商品名が大量にあるため、エクセルではSUMIFなどの関数を使わず一気に集計をしたいのです。 10/1 15:00、大阪、販売員A、イ、商品A、5 10/1 15:05、大阪、販売員A、イ、商品A、10・・・ -------------------------------------------------- 10/1、大阪、販売員A、イ、商品A、15 ・・・としたい AccessとEXCEL、それぞれの方法をおしえていただけませんか。 よろしくお願いいたします。 バージョン:2010 / OS:windows7 アクセスは基本操作(ちょっとアヤシイ・・・)とSQLが若干使える程度です

  • データの個数を数えて、ランク順に並べた

    はじめまして。 Excel(2010)で、データーの個数を数えて、多い順にランク付けしたいのですが どのような方法が考えられますか? (例) 東京 110個 大阪 52個 名古屋 38個 京都 21個 横浜 18個 ・ ・ ・ ・ ・ COUNTIF関数を使えばいいのでしょうが 数百もの都市があり、すべての都市名で 抽出するのも大変です。 よろしくお願い致します。

  • エクセルで個数を数える、グラフにする

    エクセルで以下のようなデータがあるとします。 商品名 個数 りんご 5 みかん 3 メロン 2 いちご 1 パイナップル 2 すいか 3 マンゴー 5 とこれらのデータを 個数 果物の種類 1 1 2 2 3 2 4 0 5 2 のようなデータに変換したいと思っています。 どのようにすればよいでしょうか? グラフにもしたいと思っています。 ちなみに、 実際には100行ぐらいのデータが存在し、 商品名 個数 商品名 個数 りんご 3  さんま  2 みかん 5  あじ   4 のように横にも他のデータが存在しています。 (魚のデータも果物と同じような処理をしたいです)

  • 個数の集計を出したい

    クエリでもテーブルでも可能ならどちらでもいいのですが 図のようなデータの個数の集計を出したいです。 エクセルで言うならば T集計!個数=COUNTIF(Tデータ!籠,T果物名!果物名の1レコード目) みたいなことがしたいのですがどうすればいいのでしょうか? わかりずらくてすいません。 Access2003です。 よろしくお願い致します。

専門家に質問してみよう