例えば、以下のような表があり、最小値と最小値に該当する社名を表示したいです。

A社   B社   C社
10     8    11

上の表の場合では、最小値は、MIN関数を使用して、"8"というのは求められます。
しかし、この最小値8に該当する社名、"B社"というのをどのように求めればよいのか分かりません。

何かよい方法はありませんでしょうか。

A 回答 (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のお化けになって、あまりスマートな方法ではありません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/04/15 15:18

こんにちは!



  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(範囲,位置)

となります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/04/15 15:16

質問のデータが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)

ご参考に。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/04/15 15:15

#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 に変えるだけで出来ます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/04/15 15:08

一度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行目を逆にすればうまくいくのはいくんですけど。。。

ほかにいい方法があったような気がするんですけど、今思いつかないです。

回答になっていませんが、何かの糸口になれば。。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/04/15 14:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ