• 締切済み

エクセルの関数を使ってランキングをつけています

ある表を元に、ランキングをつけています 元になる表は B列 C列 D列 E列 担当者名 本日売上 今月累計 先月累計 Aさん 10000円 100000円 90000円 Bさん 9000円 90000円 80000円 Cさん 8000円 80000円 70000円 ~続く という風になっています ランキングの表は S4セルに「10」と入力し、書式設定で上位10位までを表示としています R列 S列 T列 順位 担当者 今月累計 1 Aさん 100000 2 Bさん 90000 3 Cさん 80000 4 5 6 7 8 9 10 となっています それぞれのセルに関数が入っていて、 R列には、=IF($S$4>=ROWS(R$7:R7),ROWS(R$7:R7),\"\") S列には、=IF($R7<=$S$4,OFFSET($B$3,MATCH(T7,$D$4:$D$54,0),0),\"\") T列には、=IF(R7<=$S$4,LARGE($D$4:$D$54,$R7),\"\") となっています これで今まではうまくいっていたんですが、 同じ数値がある場合に、ランキングの表に 同じ名前の人が2つ表示されたりしてしまいます。 原因を調べているのですが、わからなくて、 さらにIF関数を入れて何かしら指示をしなければいけないのかなと 思っているのですが、、すみません、 急いでいるので意味のわからない文章になっているかもしれませんが、 どなたか「これでは?」というひらめきがありましたら お手数ですがご指導お願い致します。

みんなの回答

  • survey
  • ベストアンサー率26% (17/65)
回答No.1

関数で処理しようとすると、ご質問のような現象が避けられないのでは?本来、こういったものは、データベース(クエリー)を利用するのが非常に簡単なんですけどね。 どうしてもエクセルでということであれば、  (1)ランキング表を地道に並べ替える  (2)元の表をリスト化する   →表範囲を右クリック、リストの作成  (3)マクロで処理する (2)なら並べ替えが簡単です。 回答になってなくてすいません。

komugi1107
質問者

お礼

ありがとうございます。 リスト化というのを試してみて ダメならVBAをやってみようと思います。 関数で出来ればいいなと思ったんですが、やはり難しいですよね。。 頑張ってみます!

関連するQ&A