プロが教えるわが家の防犯対策術!

早速ですが、エクセル入力したデータから最大値と最小値を求めようとしています。
最大値は=MAX(A1:A100)で求められるのですが、最小値には0が入っていると=MIN(A1*A100)では0となってしまいます。
0以外で最小値を求めたいのですが、どのように設定すればよいでしょうか?
どなたかご教授いただけると助かります。

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

A 回答 (6件)

配列関数を使用することになります。


=MIN(IF(A1:A100=0,"",A1:A100))
と入れて、 Ctrl+Shift+Enter で決定します。
式が{}でくくられますが、
中身のIF文の通り、A1~A100のセルで0の値は 空白、それ以外はそのまま
で一度計算してその中の最小値を出します。
    • good
    • 6
この回答へのお礼

回答ありがとうございました。
条件付き書式で設定しましたが、無事できました。
ありがとうございました。

お礼日時:2009/02/19 10:03

こんばんは。



0 を、"" に置き換えて、配列確定するのが一般的だとして、それ以外としては、こう考えてみました。

=MIN(INDEX(SUBSTITUTE((A1:A100)*1,0,MAX(A1:A100))*1,,))

別に、質問者さんが満足すればどれでもよいので、他と比較する必要はないと思いますが、チェックした要点は、以下の三つです。

・0 がない場合。
・マイナス値がある場合。
・空白値がある場合。
    • good
    • 1
この回答へのお礼

回答ありがとうございました。
条件付き書式での設定で、より多くのセルに入力する必要があったため今回は=MIN(IF(A1:A100=0,"",A1:A100)を採用させていただきました。
ありがとうございました。

お礼日時:2009/02/19 10:12

すでに回答が出ていますが、若干異なります。


=MIN(IF(A1:A100,A1:A100,""))

何処が違うか分かりますか?
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
=0を付けなくてもできるのですね。
理由は別途勉強してみます。
ありがとうございました。

お礼日時:2009/02/19 10:09

=SMALL(A1:A100,COUNTIF(A1:A100,0)+1)


でどうでしょうか?
    • good
    • 1
この回答へのお礼

回答ありがとうございました。
自分が持っているエクセルの知識から=MIN設定で解決しましたが、SMALLやCOUNTIFについても勉強したいと思います。
ありがとうございました。

お礼日時:2009/02/19 10:06

あぅ


INDEX要らなかった
=MIN(IF(A1:A100=0,"",A1:A100))
これで
    • good
    • 1
この回答へのお礼

2回も回答いただき、ありがとうございました。
無事解決できました。

お礼日時:2009/02/19 10:04

配列計算になっちゃいますが


=MIN(INDEX(IF(A1:A100=0,"",A1:A100),0))
Shift+Ctrl+Enterで確定
    • good
    • 0

このQ&Aに関連する人気のQ&A

1Min」に関するQ&A: 風速から風量の計算方法

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル 複数の条件付で最小値を求めたい

SMALL関数を使用し、最小値を求めようと思ったのですが、
以下のように複数条件で絞り込んで最小値を出したいと思います。
(A-Bの組み合わせ毎の最小値を出す)

A  B  C
東京 渋谷 1000
東京 渋谷 2000
東京 葛飾 2000
東京 葛飾 2500
東京 葛飾 4000



東京 渋谷 1000
東京 葛飾 2000

複数条件抽出の場合SUMPRODUCTを使用していますが、
どうにもSMALL関数を組み込むことができず、お力を
お貸しください。よろしくお願いいたします。

バージョンはエクセル2003を使用しています。

Aベストアンサー

関数を使うなら以下のような配列数式を使用することになります。
(E1セルとF1セルに絞り込み条件が入力されている場合)

=MIN(IF(($A$1:$A100=E1)*($B$1:$B$100=F1),$C$1:$C$100,""))

入力後、Ctrl+Shift+Enterキーで確定してください。

QEXCELの空白セルを計算しない

2003で現在集計表を作成しています。
列の最終行にMAX,MIN、AVERAGE関数を割り与えているので、入力されてないセルがあるとMINに”0”を出力してしまいます。
空白セルを計算しない様にするにはどの様にしたらよいのでしょうか?
ご教授宜しくお願い致します。

Aベストアンサー

=IF(MIN(A1:A10)<>0,MIN(A1:A10),"")
こんな感じでしょうか。

QMAXIFはどうすればいい?

AVERAGEIFはありますが、maxでほしいのです。どうやって作れますか?

詳細:
B列が「あ」のデータだけ抜き出し、A列のmax値を得たいのです。
A    B
1   あ
2   い
4   あ
8   え
15  い
この例ではmax値は4です。

Aベストアンサー

>MAXIFはどうすればいい?
MAX関数の括弧内(配列)を前処理しなければなりません。
前処理の数式=(B1:B5="あ")*A1:A5
従って、=MAX(B1:B5="あ")*A1:A5 → MAX({1;0;4;0;0}) → 4
Excelでは計算結果を配列で返すことを要する数式を入力時にCtrlとShiftを押しながらEnterキーを打鍵することになっています。
確定した状態を数式バーで見ると{=MAX(B1:B5="あ")*A1:A5}のように数式を大括弧で括られています。

SUMPRODUCT関数の引数としてMAX関数の返り値を設定するとEnterキーで確定しても目的通りの値が返ります。
=SUMPRODUCT(MAX((B1:B5="あ")*A1:A5))
どのような数式を使っても結果が目的に合えば良いのでお好きな方法で解決してください。

Qエクセル 条件つきで最小値を求めたいです

A列に200名を超える生徒の名前が入っています。
B列に計算テストの結果が入っています。
計算テストは何度も行われており、A列に何度も同じ生徒の名前が出てきます。A列に入っている生徒の名前は1000を超えます。
A   B
田中  42
佐藤  48
鈴木  52
佐藤  56
田中  72
鈴木  60
鈴木  23
などです。この中で鈴木君のとった得点の最小値は23点ですが、それを求める数式を知りたいです。
『rankif』とか『minif』みたいな関数があればいいのですが、ないですよね。ちなみに、私が使用しているパソコンはexcel2000です。
他のシートやC列から右に生徒を判別する関数を入れていけば、私の知っている知識でも可能なのですが、関数を多用すると重くなりますし、避けたいです。また、もともとのデータの入力の仕方を変えたらいいのですが、それはできない状態です。
=MIN(IF(A2:A7="鈴木",B2:B7),false)
みたいな感じかなと式を立てたのですが、うまくいきません。上の状態で、セルに23と表示されるには、どうすればいいか教えてください。お願い致します。m(_ _)m

A列に200名を超える生徒の名前が入っています。
B列に計算テストの結果が入っています。
計算テストは何度も行われており、A列に何度も同じ生徒の名前が出てきます。A列に入っている生徒の名前は1000を超えます。
A   B
田中  42
佐藤  48
鈴木  52
佐藤  56
田中  72
鈴木  60
鈴木  23
などです。この中で鈴木君のとった得点の最小値は23点ですが、それを求める数式を知りたいです。
『rankif』とか『minif』みたいな関数があればいいのですが、ないですよね。ちなみに、私が使...続きを読む

Aベストアンサー

>式を立てたのですが、うまくいきません。
⇒=MIN(IF(A1:A7="鈴木",B1:B7))
この数式は、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。

QExcelでエラー(#N/Aなど)値を含む範囲で最大値や最小値をもとめ

Excelでエラー(#N/Aなど)値を含む範囲で最大値や最小値をもとめようとすると、エラーが返ってしまいます。
エラーを無視して最大値や最小値を求めることは出来ないのでしょうか?

Aベストアンサー

基本的にエラーを出ないような数式にすることをお勧めしますが、どうしてもエラーを含む場合にも最大値を計算したいなら以下のような配列数式を利用します。

=MAX(IF(ISNUMBER(範囲),範囲,""))

配列数式にするため、入力後Ctrl+Shift+Enterで確定してください。

Qエクセル 0や空白のセルをグラフに反映させない方法

以下の点でどなたかお教えください。

H18.1~H20.12までの毎月の売上高を表に記載し、その表を元にグラフを作成しています。グラフに反映させる表の範囲はH18.1~H20.12の全てです。
そのためまだ経過していない期間のセルが空白になり、そこがグラフに反映され見づらくなります。
データを入力する都度グラフの範囲を変更すればいいのですが、うまく算式や設定等で空白や0円となっているセルをグラフに反映させない方法はありますか?

お手数ですが、よろしくお願いいたします。

Aベストアンサー

売上高のセルは数式で求められているのですよね?
それなら
=IF(現在の数式=0,NA(),現在の数式)
としてみてください。
つまり、0の場合はN/Aエラーにしてしまうんです。N/Aエラーはグラフに反映されません。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Q【Excel】範囲内にある数値の0以外の最小値を求める数式を教えてください

添付した画像にある表を作成しようとしています。

各検収月の売掛金と買掛金のどちらかの最小値を相殺金額にしたいので
2009/05ならばF4に下記のような数式を入れてみました。

 =MIN(IF(C4:D4<>0,C4:D4,""))

関数の知識が乏しく、見よう見真似で式にしているところもあり
エラーになってしまいます。

0以外の最小値にしたい理由は、2009/06のように売掛金か買掛金の
どちらかが0だった検収月の場合に、最小値を0としたくないからです。
※ここでいうと売掛金の303,240を相殺金額へもって行きたいのです

F列の各セルに入れる数式を、ご教示頂けませんでしょうか。
よろしくお願いい致します。

Aベストアンサー

いろんな手口を思いつきますが、簡単なところでsmall関数を使っ
て、0が一つもなければ一番小さな値、0が一つあれば2番目に小さ
な値を返す方法。負の数値が入ることは想定していません。

=small(C4:D4,1+countif(C4:D4,0))

範囲内が全部0だと#num!エラーになるので、適当にエラー処理を追
加してください。同様に負の値が入ることを想定しなければ、

=if(sum(C4:D4),small(C4:D4,1+countif(C4:D4,0)),"")

あたりで充分ですね。

Qエクセルで特定のマイナス値を除く最大値と最小値について

エクセルで、ある特定の値(-99999)を除く最大値と最小値を

=MAX(IF(A1:A10<>-99999,A1:A10,""))
=MIN(IF(A1:A10<>-99999,A1:A10,""))

の配列数式を使って求めました。

ただ、A1:A10がすべて-99999の場合、0がかえってきてしまいます。
この場合、-99999と表示するにはどのようにすればよいのでしょうか?

1つの式で、上記2つの処理をするにはどのようにすればよいのでしょうか?

Aベストアンサー

修行中の身なので『指導』は勘弁してください。:D

>最大値は-99999以外の値がすべてマイナス値の場合に0がかえってきてしまいます。
提示の式
>=MAX(IF(A1:A10<>-99999,A1:A10,""))
これでも同じですよね?
なので空白セルはないと判断しました。

あるなら、ベタですが
=IF(AND(A1:A10=-99999),-99999,MAX(IF(A1:A10<>-99999,IF(A1:A10<>"",A1:A10,""))))
の配列数式で。

#他の方の案もお待ちになられたほうが良いかもしれません。

QExcelで最大値の入っている数値の右側にある項目名を拾いたい。

Excelで最大値の入っている数値の右側にある項目名を拾いたい。

下のようなデータがあります。(A列は年、Bは何かの生産量・・とします)

1 2000 7
2 2001 11
3 2002 14
4 2003 10
5 2004 9
6 2005 8

生産量(B列)の最大値を求めるのは=MAX(B1:B7)で"14"が得られると思いますが、求めているのは"14"の入っている年の"2002"という数字を隣のC1に入れたいと思います。
どのような関数が必要でしょうか?

Aベストアンサー

こんばんは!
一例です。

↓の画像でC2セルに表示するようになりますが・・・

C2セルの数式は
=INDEX($A$2:$A$1000,MATCH(MAX(B2:B1000),B2:B1000,0))
にしています。
(エラー処理はしていません)
A列の1000行目まで対応できるようにしていますが、
データ量によって範囲指定の領域はアレンジしてみてください。

以上、参考になれば幸いです。m(__)m


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング