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

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

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

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

A 回答 (5件)

総勝ち点が例えばA1セルに50のときに総得点がB1セルに10であったとします。

この場合には作業列を作ってC1セルには例えば次の式を入力して重みを付けた値にします。

=A1+B1/1000

C列のデータについてRANK関数を使うことにすればよいでしょう。
    • good
    • 1
この回答へのお礼

回答有難うございました。
時間に余裕が無かったので、簡便な方法として

■RANKの列を用意して計算する方法
総勝ち点+総得点/1000の列を用意してこの列で順位を付ける

を使わせて頂きました。

皆さん多くの方法のご教授有難うございました。
それぞれゆっくり試してみます。

お礼日時:2010/11/23 16:16

こんばんは!


色々方法はあるかと思いますが・・・
一例です。
↓の画像のように作業列を1列使っています。
この列は勝ち点と総得点を数値化しています。
まず勝点1に対して10倍、それに総得点を加えています。
仮に、この段階で同順位があっても、同じ順位にならないようにしてみました。
(万一、作業列でも同順位の場合は上側の行の人が上位になります)

作業列H2セルに
=IF(D2="","",D2*10+E2)
という数式を入れ、オートフィルでずぃ~~~!っと下へコピー!

そして、順位のF2セルに
=IF(H2="","",COUNTIF($H$2:$H$100,">"&H2)+COUNTIF($H$2:H2,H2))
(100行目まで対応できる数式にしています。)
という数式を入れオートフィルで下へコピーすると
画像のような感じになります。

実際にあるかどうか判りませんが、
順位(勝点)が下位でも総得点が上位の人より上回っている場合も対応できると思います。

以上、参考になれば良いのですが・・・m(__)m
「RANK関数 同点の場合違う項目で序列を」の回答画像5
    • good
    • 1
この回答へのお礼

回答有難うございました。
時間に余裕が無かったので、簡便な方法として

■RANKの列を用意して計算する方法
総勝ち点+総得点/1000の列を用意してこの列で順位を付ける

を使わせて頂きました。

皆さん多くの方法のご教授有難うございました。
それぞれゆっくり試してみます。

お礼日時:2010/11/23 16:15

 今仮に、Sheet1の


A列にはチーム名、B列に勝ち点、C列に総得点のデータが入力されていて、各列の1行目にはそれぞれ、
A1に「チーム」
B1に「勝ち点」
C1に「総得点」
という様に項目名が入力されているものとします。
 そして、Sheet2のA列に勝ち点と総得点で決まる順位の順番にチーム名を表示し、その隣のB列に、A列で表示したチームの順位を表示するものとします。
 但し、勝ち点と総得点が共に同じチームが複数存在する場合は、そのチーム同士に関しては、Sheet1で入力されている順番に並べて、Sheet2のB列には同じ順位を表示するものとします。
 又、Sheet3のA列とB列を作業列として使用するものとします。

 まず、Sheet3のA2セルに次の数式を入力して下さい。

=IF(Sheet1!$A2="","",Sheet1!$B2+Sheet1!$C2/MAX(Sheet1!$C:$C))

 次に、Sheet3のB2セルに次の数式を入力して下さい。

=IF(Sheet1!$A2="","",$A2+1/(COUNTIF($A$2:$A2,$A2)*MAX(Sheet1!$C:$C)))

 次に、Sheet3のA2~B2の範囲をコピーして、同じ列の3行目以下に、Sheet1のリストの行数と同じか、又はそれ以上の行数になるまで、貼り付けて下さい。

 次に、Sheet2のA2セルに次の数式を入力して下さい。

=IF(ROW(A1)>COUNT(Sheet1!$C:$C),"",INDEX(Sheet1!$A:$A,MATCH(LARGE(Sheet3!$B:$B,ROW(A1)),Sheet3!$B:$B,0)))

 次に、Sheet2のB2セルに次の数式を入力して下さい。

=IF(ROW(B1)>COUNT(Sheet1!$C:$C),"",RANK(INDEX(Sheet3!$A:$A,MATCH(LARGE(Sheet3!$B:$B,ROW(B1)),Sheet3!$B:$B,0))),Sheet3!$A:$A))

 次に、Sheet2のA2~B2の範囲をコピーして、同じ列の3行目以下に、Sheet1のリストの行数と同じか、又はそれ以上の行数になるまで、貼り付けて下さい。

 以上です。
    • good
    • 1
この回答へのお礼

回答有難うございました。
時間に余裕が無かったので、簡便な方法として

■RANKの列を用意して計算する方法
総勝ち点+総得点/1000の列を用意してこの列で順位を付ける

を使わせて頂きました。

皆さん多くの方法のご教授有難うございました。
それぞれゆっくり試してみます。

お礼日時:2010/11/23 16:16

例えばチーム数が10チームとして


A2:A11にチーム名、B2:B11に勝ち点、C2:C11に総得点が入っている場合
(一行目は表の項目名が入っている)

D2に

=RANK(B2,$B$2:$B$11)

と入力して、これをD11までコピー&ペーストすれば順位が出せることは
ご存知だと思いますが、これをCOUNTIF関数を使って出すこともできます。

=COUNTIF($B$2:$B$11,">"&B2)+1

つまり、自分のチームより勝ち点が多いチームの数+1が自分のチームの順位になる
という考え方になります。

これを少し変えて
自分のチームより勝ち点が多いチームの数+自分と勝ち点が同じで総得点が自分のチームより多いチームの数+1
という式にすればいいのではないかと思います。

具体的には以下のような式になります。

=COUNTIF($B$2:$B$11,">"&B2)+SUMPRODUCT(($B$2:$B$11=B2)*($C$2:$C$11>C2))+1

これをD2に入力して、D11までコピー&ペーストします。
    • good
    • 1
この回答へのお礼

回答有難うございました。
時間に余裕が無かったので、簡便な方法として

■RANKの列を用意して計算する方法
総勝ち点+総得点/1000の列を用意してこの列で順位を付ける

を使わせて頂きました。

皆さん多くの方法のご教授有難うございました。
それぞれゆっくり試してみます。

お礼日時:2010/11/23 16:16

■RANKの列を用意して計算する方法


総勝ち点+総得点/1000の列を用意してこの列で順位を付ける

■SUMPRODUCT関数を使う
=SUMPRODUCT((総勝ち点の列>個人の総勝ち点)*1)+SUMPRODUCT((総勝ち点の列=個人の総勝ち点)*(総得点の列>個人の総得点))+1
    • good
    • 0
この回答へのお礼

回答有難うございました。
時間に余裕が無かったので、簡便な方法として

■RANKの列を用意して計算する方法
総勝ち点+総得点/1000の列を用意してこの列で順位を付ける

を使わせて頂きました。

皆さん多くの方法のご教授有難うございました。
それぞれゆっくり試してみます。

お礼日時:2010/11/23 16:15

お探しの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」は、実際の値やデータ量に合わせて調整してください。

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で複数のグループ内での順位を表示させたい。

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

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関数の同率順位を別表に抽出する時

お世話になります。
エクセル2003を利用しています。初心者なので教えていただきたく存じます。
以下文面のようにランキング表を作りました。
RANK関数を利用してランキングを出し、順位表にTOP5(重複していても)まで出したいと思っています。

A列にA店~Z店までの名前(A店という名前は仮です)が入っており、
B列に上から結果数字がランダムに入力がされており、
C列にRANK関数を使って順位がその結果の横に数字として反映されています。

B列の順位の数字が大体1~20程度までの数字が記入されており、C列のRANK関数の結果が当然ですが重複して順位が表示されている状態です。

別表を作成して1~5位のランキング表を作り、A列に入っている店名とを表示させたいと思っております。
1位と2位は単独であったので店名はINDEXとMATCH関数を使ってきれいに抽出できたのですが、
3位以下は重複しているようで#N/Aと表示されてしまいます。
表示の仕方として「あいうえお順(A~Zの若い順)」で表示できればと思っております。

無知で恐縮なのですが、情報不足の点等あればご指摘いただきたく存じます。
お詳しい方、ご教授宜しくお願い致します。

お世話になります。
エクセル2003を利用しています。初心者なので教えていただきたく存じます。
以下文面のようにランキング表を作りました。
RANK関数を利用してランキングを出し、順位表にTOP5(重複していても)まで出したいと思っています。

A列にA店~Z店までの名前(A店という名前は仮です)が入っており、
B列に上から結果数字がランダムに入力がされており、
C列にRANK関数を使って順位がその結果の横に数字として反映されています。

B列の順位の数字が大体1~20程度までの数字が記入されており...続きを読む

Aベストアンサー

No.1です。
たびたびごめんなさい。

投稿後気になったのですが、前回の方法はE列の順位は必ず1~5までという前提ですので、
同順位でも表示上はランクの差が出てしまいます。

E列順位はC列の順位そのものを表示させるのが一般的だと思いますので、
もう一度やってみました。

↓の画像でC列は小細工せずにRANK関数だけにしてC2セルに
=RANK(B2,B:B)
という数式を入れフィル&コピーしています。

そしてE2セルに
=SMALL(C:C,ROW(A1))

F2セルに
=INDEX(A$1:A$50,SMALL(IF(C$1:C$50=E2,ROW(A$1:A$50)),COUNTIF(E$2:E2,E2)))

これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定!
この画面からコピー&ペーストする場合は、
上記数式をドラッグ&コピー → F2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Shift+Ctrlキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。

最後にE2・F2セルを範囲指定 → F2セルのフィルハンドルで下へコピーすると
画像のような感じになります。

こんな感じではどうでしょうか?m(_ _)m=

No.1です。
たびたびごめんなさい。

投稿後気になったのですが、前回の方法はE列の順位は必ず1~5までという前提ですので、
同順位でも表示上はランクの差が出てしまいます。

E列順位はC列の順位そのものを表示させるのが一般的だと思いますので、
もう一度やってみました。

↓の画像でC列は小細工せずにRANK関数だけにしてC2セルに
=RANK(B2,B:B)
という数式を入れフィル&コピーしています。

そしてE2セルに
=SMALL(C:C,ROW(A1))

F2セルに
=INDEX(A$1:A$50,SMALL(IF(C$1:C$50=E2,ROW(A$1:A$50)),COUNTIF(E$2...続きを読む

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
して試してください。

Qエクセルで同率の順位の人が表示されない

得点表を元に順位(RANK関数)を出し名前順の表にして、
その順位表を元にVLOOKUP関数で順位順の表を作ってます。
この場合、順位順の表では同順位の人がいた場合、同順位2人目以降の人の名前が表示されません(#N/Aと表示されます)
同位の人も名前と得点をそのまま表示させたいのですが、何か方法は有りませんか?

現在↓

1位 Aさん 10点
2位 Bさん  9点
3位  #N/A  #N/A
4位 Dさん  8点
    ・
    ・
となります。それを

1位 Aさん 10点
2位 Bさん  9点
3位 Cさん  9点
4位 Dさん  8点

としたいです。
左の順位表記は書きこんでいるだけなので変化しません。もちろん順位に連動して変化してほしいですが、このままでも構いません。

Aさん・Bさんの各セルに=VLOOKUP(Q5,$U$4:$V$21,2,FALSE)のように設定しています。
ずいぶん前に本を見ながら設定したもので、理屈は忘れてます・・エクセル2000です。

Aベストアンサー

こんにちは。
Wendy02 です。No.8 に対するコメントです。

他の方の回答を見てはいませんが、どうやら、私のほうは、振り出しです。

その数式をみた限りでは、もう、解答自体はよりも、失礼ですが、これは、基本的な問題ではないかと思いました。直接の解答というよりも、経験者としての回答をさせていただきます。

最初のご質問のようにVLOOKUP を使うことは、間違いないと思います。しかし、その関数を使用する場合は、検索に必要なもの/一意な(ユニークな)データを左端の格子状の1列目に持ってくるということは大前提です。

(もちろん、掲示板レベルで、他のワザをご披露する方もいるようですが、それはそういうテクニックであり、質問本位・データ本位の解答です。しかし、最初から、そういう作りにするのは、通常はありえないのです。)

順位を左端に以って表示するということ自体は問題ではなく、選び出すデータとして必要だということです。誤解なさらないでください。

つまり、以下の場合は、

  Q  R    S
1,名前  得点 順位 ←データの母体(データベース)
2,Aさん 10点  1位 

 変動しやすいもの、計算値は、右側に置きます。
 特定化する(ユニークなもの)は、左端になります。できない場合は、増加する数字でも可能です。

'---------------------------
21,順位 名前  得点  ←表示側は、自由です。
22,1位 Aさん 10点
  ・
  ・
  ・
'-------------------------------

私の前回の式で、VLOOKUPを使い、ユニークなものとして、「名前」を使っていたので、一部の式が完全に使えません。(INDEX関数とMATCH関数を使ってだせますが、最初からは作りません。)

次に、また基本的なことですが、

>=IF(RANK(D12,$S$2:$S$18)=COUNTIF($S$2:$S$18,">=" &D12),RANK(D12,$S$2:$S$18),COUNTIF($S$2:$S$18,">" & D12)+1)
>D12の部分が変わります。→F12,H12,J12・・J38,L38

>D12の部分が変わります。→F12,H12,J12・・J38,L38

 =RANK(数値,範囲)

$S$2:$S$18 の範囲の数値をランキングで出すのが基本です。それを別のところのデータを使うと、万が一には、そのランキングはめちゃめちゃにならないかと思います。

 =RANK(S2,$S$2:$S$18)

あくまでも、範囲の中の数値である必要があると思います。以下の式は、ROW のカッコの中の範囲を変えればよいのですが。

=IF(RANK(S2,$S$2:$S$18)=COUNTIF($S$2:$S$18,">=" &S2),RANK(S2,$S$2:$S$18),COUNTIF($S$2:$S$18,">" & S2)+1)

もしも、元データが点在する場合でも、表に作る場合は、必ず規則性があるはずです。それを、OFFSET 関数やINDIRECT関数によって、ひとつにまとめ合わせることが可能なはずです。

例:
点数が点在している場合のまとめ方
(ただし、実際のデータに当てはめていません)
=INDIRECT(ADDRESS(18+INT(ROW(A1)/6)*10,4+MOD((ROW(A1)-1)*2,8)))

以上が、その元のならびに関するコメントです。
今回、私の回答自体は見送りで構わないのですが、基本的な作りは大事にしたほうがよいですね。

*******

エラー自体については、以下のようにすればよいはずです。ROW($A$2:$A$18)というのは、行データですから、それは、行があっていなくては、取り出せません。

順位 /Q22 ~で、

=INDEX($Q$2:$S$18,MOD(SMALL(INDEX($Q$2:$Q$18+ROW($A$2:$A$18)/100,,),ROW(A1)),1)*100-1,1)

名前  /R22~

=INDEX($Q$2:$S$18,MOD(SMALL(INDEX($Q$2:$Q$18+ROW($A$2:$A$18)/100,,),ROW(B1)),1)*100-1,2)

ここは、VLOOKUPでも可
点数 /S22 ~
=INDEX($Q$2:$S$18,MOD(SMALL(INDEX($Q$2:$Q$18+ROW($A$2:$A$18)/100,,),ROW(C1)),1)*100-1,3)

これは、値コピーして、並べ替えすれば、式はいらないはずですよね。私自身は、あまり難しい式などは使わないのです。手作業で出来る部分は、そのまま手作業で作ります。

こんにちは。
Wendy02 です。No.8 に対するコメントです。

他の方の回答を見てはいませんが、どうやら、私のほうは、振り出しです。

その数式をみた限りでは、もう、解答自体はよりも、失礼ですが、これは、基本的な問題ではないかと思いました。直接の解答というよりも、経験者としての回答をさせていただきます。

最初のご質問のようにVLOOKUP を使うことは、間違いないと思います。しかし、その関数を使用する場合は、検索に必要なもの/一意な(ユニークな)データを左端の格子状の1列目に持ってく...続きを読む

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エクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

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を見た人がよく見るQ&A

人気Q&Aランキング