• ベストアンサー

エクセル関数 2番目~20番目の数値を表示させたい

列Aに2行目からN(65536)行に100から100単位で5000まで数字が入力されています。 一番高い数値は"MAX"で求められますが、2番目以降の数値が"MAX"、もしくは"LARGE"ではうまく表示されません(それぞれ複数個存在するため)。 何か良い方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

こんにちは。maruru01です。 例えば、C1~に順に表示するとします。 まず、C1に、 =MAX($A$2:$A$65536) と入力します。 次に、C2に、 =IF(OR(C1="",C1=MIN($A$2:$A$65536)),"",LARGE($A$2:$A$65536,COUNTIF($A$2:$A$65536,">="&C1)+1)) と入力して、下の行へコピーします。 表示場所が違う場合は、2つ目の数式の「C1」を、1つ目の数式を入れるセル番地に替えてください。

miyo05
質問者

お礼

できました!(●⌒∇⌒●) わーい ありがとうございます。 でもcountifがなんで出てきて、どういう意味なのかいまいち不明ですが。。。 助かりました。 他の方々も非常に参考になりました。ありがとうございました。

その他の回答 (3)

  • surounin
  • ベストアンサー率28% (30/106)
回答No.3

列Bの2行目からN行目までに次の数式を入力してください。x行目とした場合 =RANK(AX,A$2:A$N,0)←大きい順 =RANK(AX,A$2:A$N,1)←小さい順 列Cの2行目からN行目までに次の数式を入力してください。x行目とした場合 =COUNTIF(B$2:B$N,B$X) 適当なシートのA1からA20に、それぞれ1から20までの数値を入力し、列Bに次の数式を入力(列B2:CNのレンジ名をDATAとします) =IF(ISERROR(VLOOKUP(AX,DATA,2,FALSE))=TRUE,"該当なし",VLOOKUP(AX,DATA,2,FALSE) でやってみてください

miyo05
質問者

補足

ありがとうございます。 早速式を入れてみました。が、私の入れ方が悪いのか、 列Cには、そのランクにいくつデータがあるかの個数が入力されてしまい、結果、VLOOKUPでも、その個数しか表示されません。 質問の仕方が悪かったのかもしれません。 求めたいのは。。。 1 5000 2 4900 3 4800 4 4500 5 3000 ・ ・ ・ この5000、4900・・・を出したいのですが。私の入力方法が悪く上記の式で問題なければ、ご指摘ください。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

簡単な方法は、データ-フィルター-フィルターオプションの設定で、 設定された範囲(リスト範囲)と 抽出範囲を 設定し、 「重複するレコードは無視する」 で取り出すことは可能です。 そうでなければ、 例えば、 B2 に、「一番高い数値」のMAXで求めたものを入れ、 その次に、B3:~ =IF(ROW(A1)<9,LARGE($A$2:$A$65536,RANK(B2,$A$2:$A$65536)+COUNTIF($A$2:$A$65536,B2)),"") として、フィルハンドル・ドラッグ・コピーをしてあげれば、出来るかと思います。

miyo05
質問者

補足

早速のご回答ありがとうございます。 セルに自動的に反映させて、違う場所にそのデータを リンクさせたいので、オートフィルタはちょっと。 上の式を参考にさせていただきます。 が、その中で、”=IF(ROW(A1)<9”というのはどういう 関数ですか?

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

オートフィルタ機能ではだめでしょうか。 ・データ範囲選択→データ→オートフィルタ

miyo05
質問者

お礼

ご返答ありがとうございます。 自動的にデータを取得して違うところにリンクさせたいので、オートフィルタはちょっと。 何か関数で取得できればと考えているのですが。

関連するQ&A

専門家に質問してみよう