人に聞けない痔の悩み、これでスッキリ >>

EXCELで複数のグループ内で順位を表示させるようにしたいのですが、
どうすれば良いかわからず困っています。

たとえば、こんなデータがあるとします。
(A列)(B列)
名前  スコア
あああ10
あああ20
あああ30
あああ 40
いいい5
いいい20
いいい60
いいい65
いいい70
いいい80
いいい90
 ・   ・
 ・   ・
 ・   ・

こようなデータを名前別でスコアの降順で順位をつけたいのです。
(A列)(B列) (C列)
名前  スコア順位
あああ10 4
あああ20 3
あああ30 2
あああ 40 1
いいい5 7
いいい20 6
いいい60 5
いいい65 4
いいい70 3
いいい80 2
いいい90 1
 ・   ・
 ・   ・
 ・   ・

名前の種類の数もかなりあります。

このようにグループ内で順位を表示させるにはどのようにしたらいいでしょうか?

EXCELは初心者なため、どなたかお詳しい方、どうか宜しくお願い致します。

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

あああ」に関するQ&A: あああ嫌だ女の性格

A 回答 (2件)

    A      B     C


1  名前   スコア  順位
2  あああ   10    4
3  あああ   20    3
4  あああ   30    2
5  あああ   40    1
6  いいい   5    7
7  いいい   20    6
8  いいい   60    5
9  いいい   65    4
10  いいい   70    3
11  いいい   80    2
12  いいい   90    1

C2=SUMPRODUCT(($A$2:$A$20=A2)*($B$2:$B$20>B2))+1
★下にコピー
    • good
    • 10
この回答へのお礼

探していた方法はまさにこれです!本当にありがとうございました。
助かりました。

お礼日時:2008/03/11 12:12

RANK関数の書式は、RANK(数値, 範囲, [順序])ですから、順位を付けたい範囲を指定してあげればOKです。



グループの数が多くても、順位を付けたいグループごとに数式を立てるしかないと思います。

「RANK関数」
http://officetanaka.net/excel/function/function/ …
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2008/03/11 12:09

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

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

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

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

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

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

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


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

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

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

Aベストアンサー

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

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

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

QExcel RANK関数 条件に一致する数値の順位

EXCELのRANK関数で条件に一致する数値の順位を出したいのですが、そのような関数は出来ますか?
A列 B列 C列(RANK)
A  10  1
B 9 1
A 8 2
B 7 2
A 6 3
B 5 3

A列とB 列からC列を求めたいのですが、できますか?

Aベストアンサー

昨日同じような質問がありました。
http://oshiete1.goo.ne.jp/qa3850349.html
ANo.2の方の回答が参考になると思います。

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

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

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

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

Aベストアンサー

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

=A1+B1/1000

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

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行までとしていますが、必要に応じて変更して下さい

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エクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

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エクセルのrank、範囲を複数のシートから指定できますか?

エクセルで順位を出します。
範囲を複数のシートにまたがって指定したいのですが、
うまくいきません。よい計算式があれば教えてください。

sheet1のA列、sheet2のA列、sheet3のA列の総合の順位をださなければなりません。
よろしくお願いします。

Aベストアンサー

シート名が変更されているとは思いませんでした。

RANK(AP9,1-1:1-3!Ap:Ap) を
RANK(AP9,'1-1:1-3'!Ap:Ap) としてみて下さい。多分できる?
できなければSheet1とかに戻したらどうでしょう。デハ

Qエクセルの複数条件に一致したセルを抽出したいのですが、関数で教えてくだ

エクセルの複数条件に一致したセルを抽出したいのですが、関数で教えてください。

               A列   B列    C列
Aファイルには 行 【注文月日】、【氏名】、【商品金額】が記入されています。
Bファイルには 行 【注文月日】、【氏名】、【税金額】が記入されています。

AファイルのD列に、Aファイルの【注文月日】かつ【氏名】がBファイルの【注文月日】かつ【氏名】と一致する場合のBファイルC列の【税金額】を表示したいのです。

VLOOKUP関数では条件が1つだけなので使用できませんが、似たような関数で複数条件ができる関数があるなら教えてください。

Aベストアンサー

こんばんは!
一例です。
↓の画像で右側(Bファイル)の方に作業用の列を設けています。
作業列D2セルを
=A2&B2
としてオートフィルで下へずぃ~~~!っとコピーします。

そして、AファイルのD2セルに
=IF(OR(A2="",COUNTIF([Bファイル.xls]Sheet1!D$2:D$1000,A2&B2)=0),"",INDEX([Bファイル.xls]Sheet1!C$2:C$1000,MATCH(A2&B2,[Bファイル.xls]Sheet1!D$2:D$1000,0)))
という数式を入れ、オートフィルで下へコピーすると
画像のような感じになります。
尚、数式はBファイルの1000行目まで対応できるようにしていますが、
データ量によって範囲指定の領域はアレンジしてみてください。

以上、参考になれば良いのですが
他に良い方法があれば読み流してくださいね。m(__)m

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む


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

人気Q&Aランキング