• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでn番目に小さな値を重複値からもとめたい)

エクセルでn番目に小さな値を重複値からもとめたい

このQ&Aのポイント
  • エクセルのワークシート関数で小さいほうから2番目を求める場合、通常はSMALL関数を使います。
  • 重複する値がある場合、=SMALL(A1:A20,COUNTIF(A1:A20,MIN(A1:A20))+1) のように最小値の数+1番目で求めることができます。
  • n番目の値を求める場合、=SMALL(A1:A20,COUNTIF(A1:A20,"<="&SMALL(A1:A20,COUNTIF(A1:A20,MIN(A1:A20))+1))+1) のように書けます。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2
emaxemax
質問者

お礼

ありがとうございます。 助かりました!

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

有名な問題のようなのだが、 趣旨を誤解していたらすみません、無視してください。 もっと質問にデータ例を書いて説明してください。自己流の試行錯誤の、式ばかり書かず、データ例と、ほしい結果を掲示してくれた方がよくわかる。 また作業列(中間結果列)を使っているのが、気に食わない時もスルーして。 例データ A1:A16 23 34 1 3 5 45 63 2 3 5 6 78 56 4 4 -- E2セルに =RANK(A2,$A$2:$A$16,1)+COUNTIF($A$2:A2,A2)-1 下方向に式を複写。 E2:E16 10 11 1 3 7 12 14 2 4 8 9 15 13 5 6 G2セルに何番目の数字を入れる H2セルに =INDEX($A$2:$A$16,MATCH(G2,$E$2:$E$16,0),0) 例えばG2に 7を入れると、H2は 5 とでる。

emaxemax
質問者

お礼

ありがとうございます。 質問の書き方が悪かったようです。 単にn番目だけを求めたい場合、もっと簡単な方法とは作業列などを使わない趣旨でした。すみません。 仮に3番目であれば以下の数式で求められることがわかりました。 =SMALL(IF(FREQUENCY(A1:A20,A1:A20),A1:A20),3)

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.1

添付図参照 B1: =IF(COUNTIF(A$1:A1,A1)=1,A1) C1: =SMALL(B$1:B$20,ROW(A1)) セル C2 が「小さいほうから2番目」です。

emaxemax
質問者

お礼

ありがとうございます。 質問の書き方が悪かったようです。 単にn番目だけを求めたい場合、もっと簡単な方法とは作業列などを使わない趣旨でした。すみません。 仮に3番目であれば以下の数式で求められることがわかりました。 =SMALL(IF(FREQUENCY(A1:A20,A1:A20),A1:A20),3)

関連するQ&A