

RANK関数で求めた結果が同じだった場合、別のフィールドを見に行って順位を同じにしない方法はわかりました。
RANK関数とSUMPRODUCT組み合わせすればいいんですね。
今回は条件が2つあります。
ゴルフの順位を求めたい。
まず結果にて順位を求めました。同じ順位だった場合「IN」の数字を見に行きます。そこでも同じだった場合(「OUT」が違えばありえますよね?)
次に見に行くのが年齢を見に行くそうです。
RANKにSUMPRODCTを2つ組み合わせてみたのですがうまくいきませんでした。
よろしくお願いします
No.1ベストアンサー
- 回答日時:
私はゴルフをしないので、スコア等間違っているかもしれませんが、
A B C D E F ←列
1 氏名 in out 計 年齢 順位
2 a 15 13 28 18 4
3 b 15 13 28 25 3
4 c 13 15 28 32 2
5 d 16 12 28 27 5
6 e 13 13 26 20 1
↑
行
(1)スコアが少ない人が上位
(2)同スコアの場合INのスコアが少ない人が上位
(3)さらに同スコアの場合年齢が多い人が上位
の様な感じでよいのでしょうか?
RANK関数は使っていませんが、
=SUMPRODUCT(($D$2:$D$6<D2)+(($D$2:$D$6=D2)*(($B$2:$B$6<B2)+($B$2:$B$6=B2)*($E$2:$E$6>E2))))+1
でどうでしょう?
(1)自分より「計」が少ない人
(2)「計」が同じでInがすくない人
(3)「計」・「In」が同じで年齢が多い人
が何人いるか計算し、その次の順位(+1)にします。
間違っていたらすみません。
この回答への補足
早々のお返事ありがとうございました。
自分のデータに置き換えてやってみたのですが、
「1位」がなくなって「2位」の人が2人できてしまいました。
(元々1位が2名いました)
何が原因かおわかりになりますでしょうか?
No.6
- 回答日時:
こんばんは
ご質問の記載範囲では、条件不足と思うのですが
通常ゴルフの順位は(プロでもない限り)
1)ネットスコアー(グロス - ハンディキャップ)が低い方が上位
これに対して、そちらのローカルルールの
第2条件の IN と OUT のスコアーですが
これはグロスのことでしょうか?
それとも、IN - ハンディキャップ/2 として
ハーフのネットに対してでしょうか?
次に年齢は高い方が上位でしょうか?
No.5
- 回答日時:
質問に正面から答えていないこと、過去に質問があったらしいが見ていないことで申し訳ないですが、難しい方法に
固執しているように思います。
こう言う場合、ソートキーを
第1キー トータルスコア 昇順
第2キー INスコア 昇順
第3キー 年齢 降順
としてソートして、処理してきました。「来ました」とはエクセルを使わない(使えない当初の)時代や、世界(ビジネスシステム業務など、またパソコン以外でマイクロソフト以外のOSでのシステム)でのことです。
エクセルは便利で優れたソフトですが、エクセルからコンピュタ利用を始めると、エクセルに拘りすぎが出てくる場合が見られます。昔のコンピュタ処理(オフラインバッチ処理)はソートを常(多)用しました。
Rank関数も内部ではソートをしていることと察します。
そういう経験から、ソートを使うというのはどうでしょうかという感想を持ちました。
No.4
- 回答日時:
#2のfeverです、どうも(^^ゞ
G2=D2*10000+B2*100-E2
G3=D3*10000+B3*100-E3
・
・
・
のように、Dに掛ける数字を1000から10000にして頂いてもよろしいでしょうか。
これでなら、結果が上手くと思うのですが(^^ゞ
駄目でしょうか?
順位の決定方法を
第一条件:TOTAL(D列)の少ない方が上位
第二条件:TOTALが同じならばIN(B列)の少ない方が上位
第三条件:更に同じならば年齢が多い方が上位
と解釈したのですが、宜しかったでしょうか?
第一条件>第二条件>第三条件としたいので
D列には10000を、B列には100を掛けます。
RANK関数で少ない順に順位を付けるので、年齢は多い方が上位となるよう、単純に引きました。
No.3
- 回答日時:
どんなデータが入っているのか分かりませんので、推測での回答ですが、
空白の行も参照していますか?
例えば、#1の表で、
=SUMPRODUCT(($D$2:$D$7<D2)+(($D$2:$D$7=D2)*(($B$2:$B$7<B2)+($B$2:$B$7=B2)*($E$2:$E$7>E2))))+1
となっていると、空白の行が1位になってしまいます。
(7行目が空白行)
=IF(D2="","",SUMPRODUCT(($D$2:$D$7<>"")*($D$2:$D$7<D2)+(($D$2:$D$7=D2)*(($B$2:$B$7<B2)+($B$2:$B$7=B2)*($E$2:$E$7>E2))))+1)
とすれば、できると思います。
そういう事ではないですか?
No.2
- 回答日時:
A1="氏名"
B1="IN"
C1="OUT"
D1="TOTAL"
E1="年齢"
F1="順位"
だとします。
G2=D2*1000+B2*100-E2
G3=D3*1000+B3*100-E3
・
・
・
F2=RANK(G2,$G$2:$G$≪必要な行を指定≫,1)
F3=RANK(G3,$G$2:$G$≪必要な行を指定≫,1)
・
・
・
これでどうでしょうか?
ただし、TOTAL・IN・年齢が全て同じだと同率になってしまいます。
この回答への補足
ありがとうございます。
上記の計算を行ってみたところ、あきらかに順位が違うものが出てきてしまいました。なぜこのような計算をするのかなど、もしよろしければ教えていただけますか?
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
表計算ソフトでの様式の呼称
-
vba テキストボックスとリフト...
-
エクセルのVBAで集計をしたい
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
【マクロ】元データと同じお客...
-
【マクロ】左のブックと右のブ...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
【マクロ】【配列】3つのシー...
-
Office2021のエクセルで米国株...
-
【マクロ】【相談】Excelブック...
-
エクセルでフィルターした値を...
-
【画像あり】【関数】指定した...
-
エクセルのリストについて
-
エクセルに写真が貼れない(フ...
-
エクセルのライセンスが分かり...
-
エクセルの複雑なシフト表から...
-
【関数】=EXACT(a1,b1) a1とb1...
-
エクセルシートの見出しの文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報