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

A社   B社   C社
10     8    11

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

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

このQ&Aに関連する最新のQ&A

目的 関数」に関するQ&A: 目的関数

A 回答 (5件)

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

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

#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と関連する良く見られている質問

Q同名の値の最小値、最大値を求めるには?

    A列   B列
1行  りんご   3
2行  りんご   5
3行  なし    2
4行  なし    3
5行  なし    1
6行  なし    7
7行  みかん  2
8行  みかん  2
9行  みかん  3
上のようなデータで、りんご、なし、みかんについてそれぞれの最小値・最大値を別のセルに表示させるには、どんな関数を使ったらいいでしょうか。応用したい実際のデータは、A列の種類が200ほど、それぞれの種類のデータ数は1~80くらいあります。
よろしくお願いします。

Aベストアンサー

添付図のように、
D2:D4に、「りんご、なし、みかん」といれます。
E2に、
=MAX(IF($A$1:$A$11=D2,$B$1:$B$11,""))
といれて、Ctrl+Shift+Enterを押します。数式の前後に{ }がついて配列数式になります。
E3、E4にフィルドラッグします。最大値が入ります。

F2に、
=MIN(IF($A$1:$A$11=D2,$B$1:$B$11,""))
といれて、Ctrl+Shift+Enterを押します。数式の前後に{ }がついて配列数式になります。
F3、F4にフィルドラッグします。最小値が入ります。

実際の表に合わせて範囲を調節してください。

Q最大値MAXを、最小値MINと(ABS?)で作りたい。

最大値MAXを、最小値MINと(ABS?)で式を作りたい。

下記のデータのときに、
L123>0のとき  MAX(L123:L147)  最大値は1.181787
L123<0のとき  MIN((L123:L147)) 最小値は-2.725490です。

そこで、質問です。
下記のようにMINとABSを使い擬似最大値の式を作りました。
=MIN(ABS(L123:L147))
擬似最大値は0.029886の結果を出したいのです。
しかし、「=MIN(ABS(L123:L147))」では「0.368062 」となります。
これはABS(L123)の値です。
上記「MINとABSの擬似最大値は0.029886」 となる式を教えてください。


(L123からL147のデータは下記のとおりです。
上記「MINとABSの擬似最大値は0.029886」 となる式を教えてください。)
-0.368062 ,0.207454 ,0.085564 ,0.432480 ,1.099316 ,0.971129 ,1.181787,0.815206 ,1.118215 ,0.494807 ,0.602503 ,0.550321 ,0.029886 ,0.081306 ,-0.792841 ,-0.606078 ,-0.194655 ,-0.164800 ,-0.673720 ,-1.137632 ,-0.852141 ,-0.951941 ,-2.333839 ,-2.469809 ,-2.725490

最大値MAXを、最小値MINと(ABS?)で式を作りたい。

下記のデータのときに、
L123>0のとき  MAX(L123:L147)  最大値は1.181787
L123<0のとき  MIN((L123:L147)) 最小値は-2.725490です。

そこで、質問です。
下記のようにMINとABSを使い擬似最大値の式を作りました。
=MIN(ABS(L123:L147))
擬似最大値は0.029886の結果を出したいのです。
しかし、「=MIN(ABS(L123:L147))」では「0.368062 」となります。
これはABS(L123)の値です。
上記「MINとABSの擬似最大値は0.029886」 となる式を...続きを読む

Aベストアンサー

>しかし、「=MIN(ABS(L123:L147))」では「0.368062 」となります。
それは式が123行目に入力されているからです。
たとえば次行にあれば 0.029886 を返すはずです。

>上記「MINとABSの擬似最大値は0.029886」 となる式を教えてください。
Shift+Ctrl+Enterで配列数式として入力して入力して下さい。

ところで「擬似最大値」という言葉はどこで使われる用語なのでしょう?
また、「L123>0のとき」、「L123<0のとき」は意味不明です。
ついでにいえば、回答者にとっては「L123からL147」である必要は全くないのでは?

Q《エクセル2000》配列数式とMIN関数を使い、最小値を出したいのですが

いつもお世話になっております。

配列数式とMIN関数を使って最小値を出す作業をしていますが、最小値は0.3なのに0.0と返って来てしまいます。

条件は「A列が1で、B列が数字だったら」なのですが、B列には空白も入っています。

B列の空白のセルは、ISNUMBER関数でチェックするとFALSEが返ってくるのですが、もしや空白を0とみなしているのでしょうか。

COUNTIFのMIN版と言いますか、条件つきで最小値を出せる関数があればいいのですが…原因と対策をご存じの方、どうかご教示を。

Aベストアンサー

こんにちは。maruru01です。

>もしや空白を0とみなしているのでしょうか。
その通りです。
以下の数式なら上手くいくと思います。

=MIN(IF((A1:A10=1)*ISNUMBER(B1:B10),B1:B10))

([Ctrl]+[Shift]+[Enter]で確定)

Q等間隔ごとのセルの平均値、最大値、最小値を求める関数式

仕事で作業時間をエクセル表にまとめています。

A~Cに作業項番と作業内容、D,E,Fにそれぞれ作業時間の平均、最小、最大値が入っています。その次の列からそれぞれの作業時間が入っています。
ひとつの作業で4列分使い、左から作業開始時間、作業終了時間、所要時間、所要時間の小計と続いています。

今までは、平均、最小、最大をAVERAGE,MIN,MAX関数を使い、一つのセルずつ計算していました(例:=MIN(I9,M9,Q9,U9.Y9,AC9,・・・,)が、作業回数が30回を超えたところ、これらの方法が使えなくなってしまいました。(計算できる数値が30個までしかない)

30個以上の数値を計算させるためにはどうしたらよいのでしょうか。
また、式が長くなると管理が大変になってくるので、すっきりとまとめられるような関数があったら教えてください。

以上です。よろしくお願いします。

Aベストアンサー

配列数式を使います。
=MAX(IF(MOD((COLUMN($I$9:$AP$9)-9),4)=0,$I$9:$AP$9,""))
CtrlキーとShiftキーを押しながら、Enterキーを押します。
数式には、自動的に { }  がついて、
{=MAX(IF(MOD((COLUMN($I$9:$AP$9)-9),4)=0,$I$9:$AP$9,""))}
のようになります。

例:=MIN(I9,M9,Q9,U9.Y9,AC9,・・・
の場合、列番号が I が9番目、Mが13番目・・・と4つ置きになっていますので、
範囲のなかで、列番号から9を引いた数を4で割った余りが0のものを計算するという意味です。AVERAGE,MAX関数も同じです。

例の通りでなかったら、適切に変えてください。
等間隔でしたら、なんらかの規則性があると思います。

Qエクセルで、ある範囲のセルのうち、5以上の値で最小の値を求めたい

エクセルで、ある範囲のセルのうち、5以上の値で最小の値を求めたいです。


1 3 2 6 9 0 4

ならば、 6が答え。

関数が無ければ、VBAで作った関数でも構いません。

また、VBAで範囲指定と条件指定が引数となる方法も知りたいです。

Aベストアンサー

=MIN(IF(セル範囲>=5,セル範囲))
(Shift + Ctrl + Enter)

DMIN関数もあるし。(ヘルプ見てね)

ユーザー定義関数も簡単ですよ、ぜひ作ってみてください。(こんなこともできないようでは、コードをもらってもメンテも作り込みもできません。)


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

おすすめ情報