• ベストアンサー

エクセル2番目に大きい数字..

お世話になります。 エクセル2003ですが、 あるセル範囲(列)の二番目に大きい値のセルの、隣のセルの値を別のセルで表示したいのですができますでしょうか? ややこしいですが、以下がセルに入っているとします。 【項目】   【値】  項目1    8  項目2    7  項目3    3  項目4    6 この場合、"項目2"が任意のセルに表示されるようにしたいです。 それで、項目2の値を10と変更すると、任意のセルが"項目1"へ切り替わるようにしたいです。 よろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

二番目に大きな数字は1つしかない場合は =INDEX(A$1:A$1000,MAX(INDEX((B$1:B$1000=LARGE(B$1:B$1000,2))*ROW(B$1:B$1000),))) で求められます もし二番目に大きな数字が複数ある時は =INDEX(A$1:A$1000,LARGE(INDEX((B$1:B$1000=LARGE(B$1:B$1000,2))*ROW(B$1:B$1000),),COUNTIF($B$1:$B$1000,LARGE($B$1:$B$1000,2)))) になります

spaghetti09
質問者

お礼

出来ました。回答ありがとうございます。 出来ましたが、まだ理解していません。今後応用が利く様内容勉強します。 いろんな関数組み合わせるんですね。 ありがとうございました。

その他の回答 (2)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆こんな方法もありますよ ★二番目に大きな数字は1つしかない場合は =INDEX(A2:A10,MATCH(LARGE(B2:B10,2),B2:B10,0)) ★二番目に大きな数字が複数ある時は =IF(ROW(A1)>COUNTIF($B$2:$B$10,LARGE($B$2:$B$10,2)),"",INDEX($A$1:$A$10,SMALL(INDEX(SUBSTITUTE(($B$2:$B$10=LARGE($B$2:$B$10,2))*1,0,10^5)*ROW($B$2:$B$10),),ROW(A1)))) ★下にコピー

spaghetti09
質問者

お礼

回答有難う御座います。 出来ました。ここまでくるとさすがに頭のなかで整理しきれてませんが、とにかくできました(^^;) よぉ~~~く理解・勉強しておきます。

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

こんばんは。 データの行数が、100以下なら、以下はそのままで、それ以上でしたら、 /100, *100 を、10の倍数で、適宜その数に合わせて直してください。 =INDEX($A$1:$A$5,MOD(LARGE(INDEX(($B$2:$B$5)+ROW($A$2:$A$5)/100,,),2),1)*100,1)

spaghetti09
質問者

お礼

回答有難う御座います。 まだ理解はしていないんですが、なんとか出来ました。 理解して今後応用ができるように勉強してきます。

関連するQ&A