• 締切済み

エクセルデータにランク付けしたい

データ一覧には、品目コード(数百あり)、所属名(50程度あり)、数量が入っていますがそれぞれの品目コード毎に数量の多い所属順にランク付けしたいのですが、RANK関数を使うと品目コード毎に範囲指定が必要になりますよね? また、品目コード、数量(降順)でソートをかけて順位を付けても、品目コード毎に1~の順位は付けられません。これってエクセルでは無理ですか。困っています教えてください。

みんなの回答

  • yohsshi
  • ベストアンサー率55% (369/665)
回答No.2

VBAが記述できるという前提ですが、以下のような記述を行う方法を思い付きましたので記載いたします。 1.現在のデータベースから、所属コード別のデータベース(SheetまたはBook別に管理)にデータを移行するVBAを記述 2.所属コード別のデータベースから品目毎の数量を計算して一覧表に貼付するVBAを記述 3.一覧表をデータ別に並べ替えてランキングを出すVBAを記述 言うのは簡単ですが、実際にやることの方が困難だと思います。私の管理しているのは、1000程度の商品と20名の人間毎ですから、それほど困難ではないと思いますが、それでもVBA制作に1ヶ月くらいを要しました。

kita335
質問者

お礼

回答ありがとうございました。 残念ながらVBAの知識がありません。今後、勉強(年齢的に無理?)が必要になります。重ねて御礼。

  • yohsshi
  • ベストアンサー率55% (369/665)
回答No.1

理論的には可能だと思いますが、取り扱いデータが余りのも多いのでそこをどうクリアーするかがが問題となるでしょう。 1.『データー』→『ピポットテーブル レポート』機能を使い、品目コード毎の所属名毎の数量一覧を出します。 2.上記を決められたシートに貼るようにして、その結果から品目コードの毎の所属名ランキングを出します データベースの形状などにより困難かもしれませんが、やってやれなくはないと思います。但し、気になるのは品目コードと所属名の種類が多いことで、これが少なければもっと簡単な方法もあると思います。

kita335
質問者

お礼

回答ありがとうございます。教えられたことを研究してみます。

関連するQ&A

  • ランク付けについて

    ラリー結果、設定時間に近い順にランク付けしたいのですが、設定時間に対し早い人や遅い人がいるため、RANK関数では順位が間違ってしまいます。(画像添付しています) 良い方法があったら教えてください。よろしくお願いします

  • Rank付けについて

    エクセルでRank付け(順位)を考えています。 Rank関数で処理しようと考えたのですが,A列のコード番号が一定ではないため、処理に困っています。場合によってはマクロも考えています. どなたかアドバイス頂けないでしょうか。 A列にコード番号,B列に数値,C列に順位を入れます. 例えば、A2~A4まで1、A5~A6まで2とあり,A2~A4とA5~A6にはそれぞれおなじ数値が入ります。A列コードは3行分だったり2行分だったりと不規則に下に続いていきます。ただし,まとまたコード番号で固まっています. そのA列の同じコード番号全てに対して、B列の値を元にC列に順位を入力したいのです. コード    数値     順位 1       10       3 1       14       1 1       12       2 2       10       2 2       40       1 5       18       3 5       12       2 5       10       1 5       20       4

  • RANK関数の基本?

    教えてください。 順位をつける表があります。(元の問題は、「合計点をもとに成績の順位を求めましょう」です) RANK関数をつかったのですが、=Rank(数値、セル範囲、順序)と なりますよね。 で、答えを見ると順序が、省略されています。(0は省略できますよね) 問題には、昇順とか、降順は全く表示されていません。 これは、順位をつける関数は、順序は降順(点数(数値)の高い順でつける)でつけるのが当たり前という概念に基づいているからなんでしょうか。 宜しくお願いいたします。

  • Excelで条件付でランク付けをするには

    エクセルでRank関数を条件付で使うための数式を教えてください。 ゴルフの打数を昇順にしたいのですが、同順位の場合年齢が若い人の場合は後(降順)にするようにする数式を教えてください。

  • RANK関数で順位付けする方法

    お世話になります。Oracle初心者です。RANK関数による順位付けについて悩み、検索してもわからず困っております。 次のような表tbがあります。 数値,順 70 10 30 この「順」のカラムに順位を付けて 数値,順 70,3 10,1 30,2 としようとしています。SELECTなら SELECT 数値,rank() over (order by 数値 desc) from tb; が成功します。これでupdateする場合、 (rank() over (order by 数値 desc))をした値を update tb set 順= とすればよいと思うのですが、うまくいきません。 PL/SQLを使わず、SQLでRANK関数を使って順位付けするにはどのようにしたらよろしいでしょうか。 勉強不足だと思い、申し訳なく思います。何卒よろしくお願いいたします。

  • 配列のランク付け

    配列のランク付けをしたいのですが方法が分からず困っています。 例えば、 $a = array("1", "5", "3", "2", "3", "1", "1")という配列があったら $b = array("5", "1", "2", "4", "2", "5", "5")といったように値が大きい順に ソートせずランク付けして新しい配列を作れたらと考えています。 アドバイスをお願い致します。

    • ベストアンサー
    • PHP
  • 【エクセル】重複項目内でのみのrankは・・・

    エクセルでのrank関数について教えてください! 下のような表になっています。   A   B    (理想の結果) 1 あ  30    2 2 あ  50    1 3 あ  10    3 4 い  60    1 5 い  15    2 6 う  38    1 とあります。ここで、単純にrank関数を使って順位を 示すのではなく、A列の「あ」の中での順位、 「い」の中での順位・・・といった結果にしたいのです。 重複データを抽出・・・といった関数の組立方が さっぱりわかりません。 手動でrank範囲を指定するのには膨大なデータで、 気が遠くなりました。 お手数ですがよろしくお願いします。 

  • Excel 複数範囲で順位付け

    MS-Excelで、複数の範囲において、それぞれの値の順位を調べようと思い、AVERAGE関数やMAX関数などと同様に、RANK関数でも複数の範囲を指定してしようとしたのですが、範囲をカンマで区切るのはできないようです。 たとえば、 範囲:A1:A5,C1:C5 調べたい数値が入っているセル:A1 のときに、 RANK(A1,A1:A5,C1:C5) とすると、RANK関数の書式は、 RANK(数値,範囲,[順序]) なので、C1:C5が順序扱いとなり、エラーになってしまいます。 複数範囲に名前をつけて、範囲に名前を指定してみましたが、それでもエラーになりました。 どうすれば、複数の範囲において順位を調べられるのでしょうか? RANK関数にはこだわっていません。 マクロでも構いません。 よろしくお願いします。

  • エクセルの関数でランク付けをしたい

    順位ではなく、ランク付けをしたいです。 0ポイント・・・初級 1~3ポイント・・・中級 4~7ポイント・・・上級 8ポイント以上・・・達人 という関数を知りたいです。ご存知の方教えてください。

  • よみがな順でランク付け(RANK関数のようなもの)を行いたい

    EXCELでRANK関数というのがありますが RANK関数では、数値しか扱えません RANK関数のように、読み仮名順に順番を付けることはできないでしょうか?   A     B 1 やまだ   2 いいだ 3 つぼい 4 たなか 5 おだ 「B1」セルに「=RANK(A1,$A$1:$A$5,1)」と入れB2~B5まで コピーするようなイメージです。 (B1セルではなくても良いですし、途中に計算過程を入れる セルを挟んでも問題ありません) 読み仮名を一文字づつ分解し、文字コードに変換(CODE関数)→ 連結(&)→数字に変換(VALUE関数)という事をやり、その結果で RANK付けという作業をしたのですが、数字が大きすぎになってしまい 10文字目くらいまでしか有効になりませんでした。 何か良いアイディアなどお持ちの方がいらっしゃいましたら ご教授ください、お願いします。