出産前後の痔にはご注意!

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


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

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

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

「エクセル2010でRANK関数に条件を付」の質問画像

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

A 回答 (3件)

作業列を使ってごまかす方法があります。


添付の図の例では、D2セルに↓と、入れてあります。
=B2+C2/1000+ROW()/100000

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

「/1000」や「/10000」は、実際の値やデータ量に合わせて調整してください。
「エクセル2010でRANK関数に条件を付」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございます。

しかし、そういった工夫以外の方法はないでしょうか・・
私は気づきませんでしたが、それって技というより少々の手間をかけた工夫という感じなんですよね・・

お礼日時:2012/05/09 15:34

No2の回答の訂正です。



No2の回答は、B列の総数が小さい順に順位付けする式になっていました。
大きい順に順位付けするなら以下のようにCOUNTIFS関数の不等号の向きを反対にしてください。

=RANK(A2,$A$2:$A$16)+COUNTIFS($A$2:$A$16,A2,$B$2:$B$16,">"&B2)
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2012/05/15 10:58

添付画像が小さくて内容が良く見えないのですが、例えばA列の数字を基準に順位付けをして、同順位の場合はB列の数字の大きい方を上位にする場合の数式が知りたいということなら以下のような数式になます。



=RANK(A2,$A$2:$A$16)+COUNTIFS($A$2:$A$16,A2,$B$2:$B$16,"<"&B2)
「エクセル2010でRANK関数に条件を付」の回答画像2
    • good
    • 0
この回答へのお礼

遅くなりましたが、ありがとうございます。

工夫するしかないわけですね。

お礼日時:2012/05/15 10:57

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

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

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

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

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

QEXCELで複数のグループ内での順位を表示させたい。

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は初心者なため、どなたかお詳しい方、どうか宜しくお願い致します。

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

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

こようなデータを名前別でスコアの降順で順位をつけたいのです。
(A列)(B列) (C列)
名前  スコア順位
あああ10 4
あああ20 3
ああ...続きを読む

Aベストアンサー

    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
★下にコピー

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

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

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

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

Aベストアンサー

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

=A1+B1/1000

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

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...続きを読む

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の方の回答が参考になると思います。

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

QSUMIFS関数でOR条件を使いたい場合の関数

Excel2010を使用しています。
家計簿を作成しているのですが、SUMIFS関数でOR条件を使用したい場合どのように書けばよいでしょうか。

図は、明細と合計欄です。
ピンクのセルが円、それ以外はドルです。
合計欄のように、円とドルをそれぞれ分けて項目毎の合計額を出したいです。
セルE21のように、円の場合は「MUFJ」「ゆうちょ」ですので、MUFJとゆうちょのSUMIFS関数合計値を足しています。
これを、1行にまとめたいのですが、適切な関数はないでしょうか?
SUMIFSではOR条件が使えないようですので・・・・・・

明細行に円・ドルの列を追加すれば簡単なのですが、明細行の列はこれ以上増やしたくないので、できれば数式のほうで処理できればと思っています。

よろしくお願いいたします。

Aベストアンサー

例示のデータなら以下のような数式になります。

=SUM(SUMIFS($C$2:$C$14,$D$2:$D$14,{"MUFJ","ゆうちょ"},$B$2:$B$14,B21))

QエクセルのIF関数で、文字が入力されていたならば~

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

QMAXIFはどうすればいい?

AVERAGEIFはありますが、maxでほしいのです。どうやって作れますか?

詳細:
B列が「あ」のデータだけ抜き出し、A列のmax値を得たいのです。
A    B
1   あ
2   い
4   あ
8   え
15  い
この例ではmax値は4です。

Aベストアンサー

>MAXIFはどうすればいい?
MAX関数の括弧内(配列)を前処理しなければなりません。
前処理の数式=(B1:B5="あ")*A1:A5
従って、=MAX(B1:B5="あ")*A1:A5 → MAX({1;0;4;0;0}) → 4
Excelでは計算結果を配列で返すことを要する数式を入力時にCtrlとShiftを押しながらEnterキーを打鍵することになっています。
確定した状態を数式バーで見ると{=MAX(B1:B5="あ")*A1:A5}のように数式を大括弧で括られています。

SUMPRODUCT関数の引数としてMAX関数の返り値を設定するとEnterキーで確定しても目的通りの値が返ります。
=SUMPRODUCT(MAX((B1:B5="あ")*A1:A5))
どのような数式を使っても結果が目的に合えば良いのでお好きな方法で解決してください。

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エクセル 0や空白のセルをグラフに反映させない方法

以下の点でどなたかお教えください。

H18.1~H20.12までの毎月の売上高を表に記載し、その表を元にグラフを作成しています。グラフに反映させる表の範囲はH18.1~H20.12の全てです。
そのためまだ経過していない期間のセルが空白になり、そこがグラフに反映され見づらくなります。
データを入力する都度グラフの範囲を変更すればいいのですが、うまく算式や設定等で空白や0円となっているセルをグラフに反映させない方法はありますか?

お手数ですが、よろしくお願いいたします。

Aベストアンサー

売上高のセルは数式で求められているのですよね?
それなら
=IF(現在の数式=0,NA(),現在の数式)
としてみてください。
つまり、0の場合はN/Aエラーにしてしまうんです。N/Aエラーはグラフに反映されません。


人気Q&Aランキング