- ベストアンサー
《エクセル2000》配列数式とMIN関数を使い、最小値を出したいのですが
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 >もしや空白を0とみなしているのでしょうか。 その通りです。 以下の数式なら上手くいくと思います。 =MIN(IF((A1:A10=1)*ISNUMBER(B1:B10),B1:B10)) ([Ctrl]+[Shift]+[Enter]で確定)
その他の回答 (2)
- maruru01
- ベストアンサー率51% (1179/2272)
No.1です。 No.2の方の回答を見てちょっとだけ。 No.2の数式ですと、B列の数字にマイナスがあると上手くいかないですね。 マイナスはありえない、ということなら問題ないですが。
お礼
現在マイナスはありませんが、将来的に入る可能性があります。 ご丁寧にありがとうございました、すみません。
- mu2011
- ベストアンサー率38% (1910/4994)
多分、配列数式の不具合ではないでしょうか。 次の方法で如何でしょうか。 {=MIN(IF((A1:A10=1)*(B1:B10>0),B1:B10))}
お礼
こちらでも大丈夫ですね。 今回マイナス値が入る可能性を残しているので、No.1さんの回答を使わせていただきました。 どうもありがとうございました。
関連するQ&A
- エクセル又はOpenOfficeで条件付き最小値を
エクセル又はOpenOffice.orgで条件付きの最小値を抽出する数式 当方OpenOffice.orgのCalc使用です。 関数も勉強し始めたばかりで、まだまだ理解しきれていませんが、宜しくお願いいたします。 下記の条件で最小値を出す数式を色々調べては試しているのですが、中々うまくいかないので質問させて下さい。 A(所要時間) B 1 01:00:00 04.5 2 00:30:00 20.5 3 02:10:00 -10.0 4 01:40:00 07.5 5 00:25:00 -05.0 6 00:45:00 13.5 7 00:15:00 -03.5 8 01:05:00 18.0 上記表からB列の値がプラス(つまり0以上)の中の最大所要時間(この場合01:40:00)と最小所要時間(00:30:00)、 B列の値がマイナス(0以下)の中の最大所要時間(02:10:00)と最小所要時間(00:15:00)をそれぞれ求めたいと思っています。 最大所要時間は「=SUMPRODUCT(MAX((B4:B100>=0)*A4:A100))」で求められましたが、MINではダメでした。 SMALLを使うのかもと思い調べてみましたが、だんだん混乱してしまって・・・ 似たような質問はたくさん見つかりましたが、配列数式を使用するものばかりでした。 Calcは配列数式に制限があり、IFやINDEXが含まれる配列数式は使えないらしく、苦労しています。 DMIN関数も考えましたが、条件を割り当てるために不要なセルを作成しなければならないので、避けたいと思いまして。 最小時間が求まれば完成という段階なので、できれば数式で対応したいです。 色々と制約があって申し訳ないのですが、お知恵をお貸しいただけると助かります。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセル2007「ISNUMBER関数」の組合せについて
エクセル2007「ISNUMBER関数」の組合せについて うまく説明できないので具体的に関数を掲載します。 「B列またはC列が空白の場合は空白セルとする」という関数を以下のようにつくりました。 =IF(OR(B2="",C2=""),"",DATEDIF(C2,B1,"Y")) (B1にはtoday関数が入力されています) これにC列が数値ではない場合も空白にするという条件を追加したいのです。 ISNUMBER関数を使うのだと思うのですが組合せ方がわかりません。 ご教示よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- エクセルのワークシート関数で最小値
エクセルのワークシート関数でA1セルとB1セルの最小値を求める場合 =MIN(A1,B1) だと思います。 しかし、これではどちらかのセルが空白だった場合、空白セルを0とみてはくれません。 そのため =MIN(A1*1,B1*1) と、1を乗ずることで空白セルを0にして比較できます。 しかしA1、B1セルの値が直接入力されたものでなく計算の結果の場合にはうまくいかない場合があります。 A1、B1ともに計算式がはいっているので空白はあり得ないのですが、計算結果で =”” と空白表示の場合、空白表示セルを0とみてはくれません。 しかし、空白表示セル(=””)に1を乗ずるとVALUEエラーになってしまいます。 やむを得ず、IF関数を使い =MIN(IF(A1="",0,A1),IF(B1="",0,B1)) と、無理やり=””を0にしているのですが、ほかになにか良い方法はないでしょうか? A1、B1の計算式を変えて=0とすればよいのでしょうが、元の計算式を変えずにやる方法があれば御教示ください。
- ベストアンサー
- Excel(エクセル)
- ある条件を満たした最も近い数値を求める配列数式
ある条件を満たした最も近い数値を求める配列数式について質問します。 A列には,C列の数値と比較する元になる数値が並んでいます。 B列には,D列の数値と比較する元になる数値が並んでいます。 C列には,A列の数値と比較する対象となる数値が並んでいます。 D列には,B列の数値と比較する対象となる数値が並んでいます。 E列には,計算式が入ります。 すなわち,例えば,E20には, C$1:C20の範囲内の数値で, 右となりにあるD$1:D20の数値が0でなく,かつ,B$1:B20の数値以下である数値の中で, 最もA20の数値に近い数値を求めます。 A B C D E 1 100 10 89 0 0 2 101 8 90 10 0 3 102 11 92 11 92 4 99 7 77 0 0 5 87 11 68 12 92 6 105 14 100 7 100 7 102 9 78 8 100 8 88 15 102 0 90 9 98 14 99 10 99 10 150 13 78 9 100 11 103 8 79 0 100 12 87 9 68 8 78 13 77 10 70 10 78 14 89 12 71 5 90 15 65 14 102 3 68 16 88 13 105 0 90 17 123 15 98 8 102 18 145 17 99 10 102 19 85 8 100 0 90 20 84 9 87 5 78 一定の条件を満たした配列の合計を計算する関数として,SUMPRODUCT()という便利な関数がありますが, この関数に相当する関数がないので困っています。 MIN関数が配列数式に対応していて,かつ,MIN関数をうまく利用して,最も近い数値を求めることがでるき方法があれば,私の希望が解決できそうなのです。 以上,よろしくアドバイス願います。
- ベストアンサー
- オフィス系ソフト
- 複数条件のMIN関数
いつもお世話になっております。 以前にも質問した内容なのですが、当てはまる回答が なかったため、再掲させていただきます。 A列 B列 1 06/06/06 3 06/08/01 2 06/06/15 3 06/07/25 1 06/07/20 1 06/06/06 ・ ・ ・ ・ のようなデータがあります。 そこで、C列に 1) A列が「1」且つ、B列が最小値のもの 2) A列が「2,3」且つ、B列が最小値のもの のデータを取得したいです。 ただ、A、B列ともに固定値ではないため、Null値が 発生します。 そこで、教えて頂いた数式が MIN(INDEX(SUBSTITUTE((($A$1:$A$10=1)*($B$1:$B$1>0))*1,0,10^7)+(B1:B10)-1,))) で、Min関数がNull値を感知することと、シリアル値が0の場合、最小値がうまく取れないと いう現象を考慮してしてあります。 そのため、Null値の場合の答えが「9999999」になりますが これを表示させたくないので「=IF(C1=9999999,\"\",」 としてますが、この数式を何行にも渡り書いている為 パフォーマンスがかなり悪いです。 なにかいい方法、もしくはいい数式はないですか??教えて下さい。
- 締切済み
- その他([技術者向] コンピューター)
- MIN関数が入力されているセルの行数に基づいてMIN関数の範囲を変える方法
A列のA1がタイトル行で、その下に数字でデータが入力されています。 このとき、例えばB3にはA2からA3までの最小値、B4にはA2からA4までの最小値、・・・、B100にはA2からA100までの最小値、というように入力したいのです。 MIN関数とROW関数を組み合わせればよいと思うのですが、うまくいきません。 B列にはどのような式を入力すればよいでしょうか。
- ベストアンサー
- オフィス系ソフト
- エクセルの関数の数式がわかりません。
A列 B列 1 10 2 20 3 30 a 4 40 エクセルの関数の数式がわかりません。 B1~B4のどこかにaの入力があった場合、aの入力がある行と同じ行のA列に入力されている数字を別のセルに表示させたいです。 例えば、上記のようにB3にaがあるので、A3の30を、別のセルに自動で30と出るようにしたいです。 B列には、ランダムにaを入力しますので、aが別の行にある場合もあります。 この場合の数式を教えてください。 よろしくお願い致します。
- 締切済み
- オフィス系ソフト
- ある条件を満たした最も近い数値を求める配列数式
ある条件を満たした最も近い数値を求める配列数式について質問します。 A列には,C列の数値と比較する元になる数値が並んでいます。 B列には,D列の数値と比較する元になる数値が並んでいます。 C列には,A列の数値と比較する対象となる数値が並んでいます。 D列には,B列の数値と比較する対象となる数値が並んでいます。 E列には,計算式が入ります。 すなわち,例えば,E20には, C$1:C20の範囲内の数値で, 右となりにあるD$1:D20の数値が0でなく,かつ,B$1:B20の数値以下である数値の中で, 最もA20の数値に近い数値を求めます。もし,この条件に合う最も近い数値が複数あった場合には,最も小さい数値を求めます。 行番号 A B C D E 1 100 10 89 0 0 2 101 8 90 10 0 3 102 11 92 11 92 4 99 7 77 0 0 5 87 11 68 12 92 6 105 14 100 7 100 7 102 9 78 8 100 8 88 15 102 0 90 9 98 14 99 10 99 10 150 13 78 9 100 11 103 8 79 0 100 12 87 9 68 8 78 13 77 10 70 10 78 14 89 12 71 5 90 15 65 14 102 3 68 16 88 13 105 0 90 17 123 15 98 8 102 18 145 17 99 10 102 19 85 8 100 0 90 20 84 9 87 5 78 一定の条件を満たした配列の合計を計算する関数として,SUMPRODUCT()という便利な関数がありますが, この関数に相当する関数がないので困っています。 MIN関数が配列数式に対応していて,かつ,MIN関数をうまく利用して,最も近い数値を求めることがでるき方法があれば,私の希望が解決できそうなのです。 以上,よろしくアドバイス願います。 なお,エクセルのバージョンは,2010です。 本日,同じ表題の質問をしましたが,その際の質問の本文に掲載した数列が崩れていましたので,再度投稿します。 質問番号:6449070
- 締切済み
- オフィス系ソフト
- 関数 数式 Excel
すみませんが教えてください! E列に下のような関数を入れたところ正しく表示されませんでした・・・ どうぞよろしくお願いします。 A列(数字・空白を含む)が 1 の場合”◎” A列が1以外の場合は B列(別シートから参照のVLOOKUP関数が入っている)と C列(別シートから参照ののVLOOKUP関数が入っている) を足した数字が D列(別シートから参照ののVLOOKUP関数が入っている) が同じなら ”OK” 違うなら ”NG" と表示させたいので =IF(A1=1,"◎",IF(D181=(B181+C181),"OK","NG")) としてみましたが"◎"が表示される表示は正しいのですが "OK" "NG"が正しく表示されません。 これに加えていずれのセルにも空白が存在するのでエラーを出さないようにしたいです。 よろしくおねがいします!!
- ベストアンサー
- Windows XP
- 配列数式について教えてください
ここでエクセルでの文字列の検索方法をさがしていたらさきほど、ちょうど良くこのような配列数式をみつけました。 =IF(A1="","",MIN(IF(ISNA(MATCH("*"&$H$1:$H$9,A1,0)),10,$I$1:$I$9))) A1セルに、H1からH9の表にあるどれかの文字列を含んだ文字列をいれると対応するI1からI9の表の値を表示するものです。 使われているMINやISNAやMATCH関数はわかるつもりですが、組み合わせるとなんでこんなことができるのか、ぜんぜんわかりません。どなたか解説していただけないでしょうか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=653775
- ベストアンサー
- オフィス系ソフト
お礼
maruru01さん、いつもお世話になっています。 お陰様でできました!