gooポイントが当たる質問投稿キャンペーン>>

EXCELのRANK関数についてですが。

下記の点数の数値にランク付けをしたとき、重複する点数が複数あるときは、重複個数分跳んで次のランク順位が表示されますが、

今回のニーズとして、重複しても跳ばずにランク表示を1.2.3.4と表示させたいのですが何か方法はありますか?

具体的には下記です。

100
100
90
72
72
60
60
50

の点数郡に対して
=RANK(A1,$A$1:$A$8)の関数を使うと
このようになると思いますが、

1001
1001
903
724
724
606
606
508


↓こういう答えが欲しいです。
1001
1001
902
723
723
604
604
505


宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

B1に


=COUNT(1/(IF(FREQUENCY(A:A,A:A),$A$1:$A$8,-1)>A1))+1
と記入してコントロールキーをシフトキーを押しながらEnterで入力し,B8までコピー貼り付け。
    • good
    • 2
この回答へのお礼

ばっちり欲しい答えが得られました!!ありがとうございます!

大変高度な関数ですね。
FREQUENCYを調べてみましたが、じっくり考えないと難しかったです;;
スッキリしました!

お礼日時:2012/01/25 15:46

前提条件つきです。


(1)事前に降順の並び替えされている
(2)先頭行は見出し行ありとする

仮にA2以下に点数が入力、B2に=IF(COUNTIF($A$2:A2,A2)=1,SUM(B1,1),B1)として
下方向にコピー
    • good
    • 0
この回答へのお礼

大変参考になりました。
ありがとうございます。

お礼日時:2012/01/25 15:47

作業列を使っても良いのなら……



B1に =IF(COUNTIF(A$1:A1,A1)=1,A1,"") と、入れてB8までコピー(コレが作業列)
C1に =RANK(A1,B$1:B$8) と、入れてC8までコピー
    • good
    • 1
この回答へのお礼

大変参考になりました。
ありがとうございます。

お礼日時:2012/01/25 15:47

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qデータが重複データの扱い(対処方法) RANK・MATCH・INDEX

ずばりこんなデータから、順位とその人の名前を出す。

1)重複した場合、RANKは、同じ位置して、次の番は、欠としている。
  から、下記のような順位になると思われる。

 氏名 点数 順位
 鈴木 700 5
 斉藤 415 8 
 菅野 700 5
 赤井 780 4
 田村 900 2
 池田 620 7 
 楽谷 900 2
 金田 940 1

 ★問題なのが、同じランクになった人の名前をちゃんと表示したい。
  1位からの点数を表示するのは、LARGE関数でできるんだけど、
  同じランクになっている人が、別々に出てこない。
  とても安易な方法だと思ったんですが、
  検索する範囲(表の行番号)をMATCH関数でもとめておく
  点数をつかうので、当然同じ点数には、同じ行がはいる(上から
  順番だから、1行目と3行目に同じ点数なら、1(順位)が連続する)
  それで、その番号を使いVLOOKUP関数で、名前を拾ってくる。
  其の時、自分で同じ番号のところを修正しておく(1と3にする)
  そうすれば、名前がちゃんと出てくる。
  でも、其のセルには、数式がなくなる。

  ⇒VBAや、難しい関数が使えないと、これが限界なのか。。
   参考にさせてもらうものもみたんですが、
   なかなか・・この苦肉の策でもヨシと思っていいのか・・
   ちょっと自信なくて、、
  
 
 ベスト8(ランクごとに返す)
    点数 氏名 番号
 1位 ヾ  ヾ  
 2位 ヾ  ヾ
 2位 ヾ  ヾ
 4位 ヾ  ヾ
 5位 ヾ  ヾ
 5位 ヾ  ヾ
 7位 ヾ  ヾ
 8位 ヾ  ヾ
   

ずばりこんなデータから、順位とその人の名前を出す。

1)重複した場合、RANKは、同じ位置して、次の番は、欠としている。
  から、下記のような順位になると思われる。

 氏名 点数 順位
 鈴木 700 5
 斉藤 415 8 
 菅野 700 5
 赤井 780 4
 田村 900 2
 池田 620 7 
 楽谷 900 2
 金田 940 1

 ★問題なのが、同じランクになった人の名前をちゃんと表示したい。
  1位からの点数を表示するのは、LARGE関数でできるんだけど、
  同じランクになっている人...続きを読む

Aベストアンサー

こんばんは。

関数で作る場合です。

データが、A1 ~C9 までとしで、

D列~F列に表示しなおすとして、

 D列  E列  F列 
順位  点数  氏名
1位 
2位 
2位 
4位 
5位 
5位 
7位 
8位 

E列
E2 は、
=LARGE($B$2:$B$9,ROW(A1))
フィルダウン・コピーします。

D列は、
D2~
=JIS(RANK(E2,$B$2:$B$9))&"位"

を入れて、フィルダウンコピーします。
(JISは、全角にする関数です。)

F列は、
F2~

=INDEX($A$1:$B$9,MOD(LARGE($B$2:$B$9+ROW($A$2:$B$9)/100,ROW(A1)),1)*100,)

配列数式ですから、一旦式を入力したら、目的の式にF2を押して、『ShiftとCtrlを押しながらEnterキー』を押して、式を配列数式に変換させます。

それから、フィルダウン・コピーします。

これで、出来たかと思います。

こんばんは。

関数で作る場合です。

データが、A1 ~C9 までとしで、

D列~F列に表示しなおすとして、

 D列  E列  F列 
順位  点数  氏名
1位 
2位 
2位 
4位 
5位 
5位 
7位 
8位 

E列
E2 は、
=LARGE($B$2:$B$9,ROW(A1))
フィルダウン・コピーします。

D列は、
D2~
=JIS(RANK(E2,$B$2:$B$9))&"位"

を入れて、フィルダウンコピーします。
(JISは、全角にする関数です。)

F列は、
F2~

=INDEX($A$1:$B$9,MOD(LARGE($B$2:$B$9+ROW($A$2:$B...続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Q(Excel)RANK関数で同じ値なのに違う順位になる

Excel2000を使用しています。

下記の表を作成して、
 F列には、=SUM(A1:E1)-MIN(A1:E1)-MAX(A1:E1)
 G列には、=RANK(F1,$F$1:$F$4)
を入力していますが、
F2とF3は同じ値になるのに順位が違って出てきます。

確か、RANK関数は同値の場合同じ順位が出てくると思うのですが、
そうならないので困っています。

ちなみに、F列に数式ではなく計算結果を直接入力した場合には
同じ順位が出てきました。

どうしてそのようなことになってしまうのでしょうか?
ご存知の方がいましたら教えてください。


(A) (B) (C) (D) (E) (F) (G)
 9.50  9.20  9.35  9.60  9.45 28.3000  1
 9.40  9.30  9.35  9.55  9.45 28.2000  2
 9.20  9.45  9.40  9.35  9.55 28.2000  3
 9.45  9.30  9.30  9.40  9.50 28.1500  4


宜しくお願いします。

Excel2000を使用しています。

下記の表を作成して、
 F列には、=SUM(A1:E1)-MIN(A1:E1)-MAX(A1:E1)
 G列には、=RANK(F1,$F$1:$F$4)
を入力していますが、
F2とF3は同じ値になるのに順位が違って出てきます。

確か、RANK関数は同値の場合同じ順位が出てくると思うのですが、
そうならないので困っています。

ちなみに、F列に数式ではなく計算結果を直接入力した場合には
同じ順位が出てきました。

どうしてそのようなことになってしまうのでしょうか?
ご存知の方がいましたら教えてくださ...続きを読む

Aベストアンサー

計算精度の問題です。
計算処理をおこなうと、0が
0.00000・・・・01になる場合
があります。
そのため、見た目は一致しているけれど
異なる値になっていると思われます。
ツールメニュー・オプション・計算方法・
「表示桁数で計算する」のチェックをON
して試してください。

QRANK関数 同点の場合違う項目で序列を付けたい

質問願います。
EXCELにて、RANK関数を使って順位付けをする事を理解しています。
スポーツの順位を勝ち点順に並べるのですが、総勝ち点が同点の場合、次に総得点で順位を確定させます。

この場合、順位付けする数値を勝ち点を優先参照・総得点を次に参照させる事は出来ますか?
RANK以外の関数も併用すれば良いのでしょうか?

どなたか回答お願い致します。

Aベストアンサー

総勝ち点が例えばA1セルに50のときに総得点がB1セルに10であったとします。この場合には作業列を作ってC1セルには例えば次の式を入力して重みを付けた値にします。

=A1+B1/1000

C列のデータについてRANK関数を使うことにすればよいでしょう。

Qエクセル関数 重複をのぞいて個数を数える方法

いつもお世話になっています
セルに
a  b  c  a  b b
と入力したとき、個数を数える方法は知っていますが、種類が3個だと集計するにはどんな関数を使えばいいのでしょうか。

Aベストアンサー

下記URLの方法は如何でしょう。

「重複しないデータを数える」
http://integer.exblog.jp/2132536/

「リストから重複するデータをはぶいた件数(個数)をカウントする」
http://ameblo.jp/xls/entry-10073848203.html

「重複しないセル数」ユーザー定義関数の説明
http://www.katch.ne.jp/~kiyopon/soft/juhukunai.html

QRANK関数 順位が同じだった場合の条件が2つあります

RANK関数で求めた結果が同じだった場合、別のフィールドを見に行って順位を同じにしない方法はわかりました。
RANK関数とSUMPRODUCT組み合わせすればいいんですね。

今回は条件が2つあります。
ゴルフの順位を求めたい。
まず結果にて順位を求めました。同じ順位だった場合「IN」の数字を見に行きます。そこでも同じだった場合(「OUT」が違えばありえますよね?)
次に見に行くのが年齢を見に行くそうです。

RANKにSUMPRODCTを2つ組み合わせてみたのですがうまくいきませんでした。

よろしくお願いします

Aベストアンサー

私はゴルフをしないので、スコア等間違っているかもしれませんが、
  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)にします。

間違っていたらすみません。

私はゴルフをしないので、スコア等間違っているかもしれませんが、
  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...続きを読む

Qエクセルで、自動的にランク順に順番を表示させる方法

エクセルで、自動的にランク順に順番を表示させる方法

エクセル2003を使用しています。

T列に名前、U列にその人の点数が表示されています。
これに対し、点数の高い順に自動的に並べ替えてB列に順位、C列に名前を表示させたいです。

同じ点数がある場合、以下の様な表示をしたいです。
1位 Aさん 80点
2位 Bさん 70点
2位 Cさん 70点
4位 Dさん 60点

表示>並べ替えは使用しないで、関数で対応したいです。
分かる方いましたら、お願いします。

Aベストアンサー

なるべくシンプルな計算式で。

添付図:
S2に
=RANK(U2,U:U)+ROW()/1000
以下コピー。

B2に
=VLOOKUP(SMALL($S:$S,ROW(A1)),$S:$U,COLUMN(),FALSE)
B,C列にコピー。

A2に
=RANK(C2,C:C)
以下コピー,
必要に応じてA列を右クリックしてセルの書式設定の表示形式のユーザー定義で
0位
と設定しておくなど。

Qエクセルで、重複データを除外して小さい値順に並べ替える関数

A列に、
500
80
200
200
100
300
と、データがあります。このデータのうち、重複しているデータ(200)を一つだけ表示させ、かつ、小さい順に並べ替えて、下記のようにしたいのですが…。
80
100
200
300
500

調べてみて重複データをチェックする方法や削除する方法などはありましたが、並べ替える方法が見つかりません。フィルタオプションかと思いましたが使い方がよくわかりません。配列数式のこともわかりません。オートフィルタやマクロは使いたくありません。よろしくお願いします。

Aベストアンサー

C列1行目から表示させるとします。

C1セルに
=IF(COUNT(A:A),MIN(A:A),"")

C2セルに
=IF(OR(C1="",C1=MAX(A:A)),"",SMALL(A:A,COUNTIF(A:A,"<="&C1)+1))

と入れて、必要なだけ下にフィルコピーします。

Q【エクセル】表から条件に合ったデータを別シートに順番に抽出したい

エクセルの表である条件にあてはまる行を
別シートに順番に抽出されるような関数を教えてください。


シート1のB列にあるデータが"渋谷区"のとき
シート2のE74からE80くらいまでに
シート1のC列のデータを上から順に抽出されるようにしたいです。

【シート1】
A        B         C
1 東京都 渋谷区  PC
2東京都  港区  PC
3東京都 新宿区  マウス
4東京都 渋谷区  ペン
5東京都 渋谷区  モニタ



10

【シート2】

E
74 PC
75 ペン
76 モニタ



80 


【補足】
元の表(シート1)を編集することがあるので
自動的に反映されるよう、関数で作成できたらと思います。
シート2の構成上、抽出後のソートや、フィルタオプションは避けたいです。

わかりづらい文章で申し訳ございませんが
どなたかいいアドバイスがありましたら教えてください。
お礼は明日になってしまいますが、必ずご返答いたします。
よろしくお願いいたします。

 

エクセルの表である条件にあてはまる行を
別シートに順番に抽出されるような関数を教えてください。


シート1のB列にあるデータが"渋谷区"のとき
シート2のE74からE80くらいまでに
シート1のC列のデータを上から順に抽出されるようにしたいです。

【シート1】
A        B         C
1 東京都 渋谷区  PC
2東京都  港区  PC
3東京都 新宿区  マウス
4東京都 渋谷区  ペン
5東京都 渋谷区  モニタ



10

【シート2】

E
...続きを読む

Aベストアンサー

>E74に関数を入力し、その後関数をE80までドラッグすればよいのでしょうか?
いいえ。
1.
=INDEX(シート1!C1:C11,SMALL(IF(シート1!B1:B10="渋谷区",ROW(A1:A10),11),ROW(A1:A10)))&""
の数式を掲示板上でコピーします(シート名は合わせてください)
2. E74:E80セル範囲を選択します
3. 数式バーで[Ctrl]+[V]貼り付け
4. [Ctrl]+[Shift] +[Enter] でセルへの入力を確定させます

>その際、絶対参照や相対参照は必要でしょうか?
セルのコピーはしませんので不要です。
参考まで

Qエクセル2010でRANK関数に条件を付けるとき

エクセル2010を使っている者です。
RANK関数で順位をつけても同順位だった場合、他の条件で判定することは可能でしょうか?
過去の質問も見たのですが、私のしたいこととは違う事例なんですね。


具体的には、添付画像のような表でドント式で順位をつけようと思っています。

オレンジ色にしたセルに、一つ右のセルの値について数値の高い順に順位をつけていき(全列のオレンジ色のセルの右の値の中での順位です)、値が同じであれば「総数」の値の大きい列のセルのほうが上位になるというようにしたいと思っています。

どうぞ、よろしくお願いいたします。

Aベストアンサー

作業列を使ってごまかす方法があります。
添付の図の例では、D2セルに↓と、入れてあります。
=B2+C2/1000+ROW()/100000

+C2/1000 は、第2条件である「総数」を1/1000した値を足すことで、元データが同じときには「総数」が多いほうが上になるようにしています。
+ROW()/10000 は、データも総数も同じ場合、後から登場した方を上位とするために足しています。

「/1000」や「/10000」は、実際の値やデータ量に合わせて調整してください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング