• ベストアンサー

EXCEL2000でできる機能があれば教えて下さい。

例えば、以下のような表があり、最小値と最小値に該当する社名を表示したいです。 A社   B社   C社 10     8    11 上の表の場合では、最小値は、MIN関数を使用して、"8"というのは求められます。 しかし、この最小値8に該当する社名、"B社"というのをどのように求めればよいのか分かりません。 何かよい方法はありませんでしょうか。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

質問のデータがA1:C2にある時の式です。  =INDEX(A1:C1,1,MATCH(MIN(A2:C2),A2:C2,0)) MINで『8を見つけ』て、MATCHで『2行目の対象範囲で8が何番目にあるか』を調べ、 INDEXで『1行目の対象範囲からその番号を取り出し』ています。 下のようにも書けます。  =OFFSET(A1,0,MATCH(MIN(A2:C2),A2:C2,0)-1) ご参考に。

rikkon
質問者

お礼

INDEX関数とMATCH関数の組み合わせで出来るんですね。 ありがとうございました。

その他の回答 (4)

  • ubonoti01
  • ベストアンサー率20% (43/211)
回答No.5

IFとMINの組み合わせでも可能です。   A   B   C   D 1 A社  B社  C社 2 10   8  11   ? D2=IF(A2=MIN(A2:C2),A1,IF(B2=MIN(A2:C2),B1,C1)) ただし、あまり社名が多くなるとIFのお化けになって、あまりスマートな方法ではありません。

rikkon
質問者

お礼

私もIF関数で考えてはみたのですが、非常に長い数式になってしまうので何かいい方法はないかと思っていたんです。

  • comv
  • ベストアンサー率52% (322/612)
回答No.4

こんにちは!   A   B   C 1 A社  B社  C社 2 10   8  11  =INDEX(A1:C1,MATCH(MIN(A2:C2),A2:C2,0)) で試してみて下さい! 最小値 : MIN(A2:C2) 最小値が存在する位置 : MATCH(最小値,A2:C2,0) 1行目の同位置 : INDEX(範囲,位置) となります。

rikkon
質問者

お礼

INDEX関数とMATCH関数の組み合わせで出来るんですね。 ありがとうございました。

  • peso
  • ベストアンサー率41% (40/97)
回答No.2

#1 の方のように A1にA社、B1にB社・・・と入力されているなら、 =INDIRECT("R1C"&MATCH(MIN(2:2),2:2,0),FALSE) で"B社"という値が出てきます。 まず、MATCH 関数で目的の値が存在するセルを探し出します。 今回の場合は MIN(2:2) の結果の 8 と一致する値を 2:2 から探します。 探し出された値は範囲の何番目にあるかという数値がえられるので、 INDIRECT 関数でセルを参照します。 最大値は MIN を MAX に変えるだけで出来ます。

rikkon
質問者

お礼

INDIRECTという関数を知らなかったので参考になりました。 ありがとうございました。

  • KODAMAR
  • ベストアンサー率26% (267/1006)
回答No.1

一度MIN関数やMAX関数で数値を出して、 じゃあ、その数値の会社はどこ?というのを設定したらいかがでしょう?    A | B | C | D | 1 |A社 |B社 |C社 |   | 2 | 10 | 8 | 11 |   | 3 | 4 | とします。 A4にMIN関数で最小値が8とはじきだします。 その横のB4あたりに =HLOOKUP(A4,A1:C2,2) とします。 すると・・・でないでしょう。。。 このHLOOKUP関数は参照にするものが一番上じゃないと 正常に動かないんです。 だから、1行目と2行目を逆にすればうまくいくのはいくんですけど。。。 ほかにいい方法があったような気がするんですけど、今思いつかないです。 回答になっていませんが、何かの糸口になれば。。

rikkon
質問者

お礼

ご回答ありがとうございます。 やはり、1行目と2行目は逆にできないのでHLOOKUP関数では無理なようですね。