• ベストアンサー

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

添付した画像にある表を作成しようとしています。 各検収月の売掛金と買掛金のどちらかの最小値を相殺金額にしたいので 2009/05ならばF4に下記のような数式を入れてみました。  =MIN(IF(C4:D4<>0,C4:D4,"")) 関数の知識が乏しく、見よう見真似で式にしているところもあり エラーになってしまいます。 0以外の最小値にしたい理由は、2009/06のように売掛金か買掛金の どちらかが0だった検収月の場合に、最小値を0としたくないからです。 ※ここでいうと売掛金の303,240を相殺金額へもって行きたいのです F列の各セルに入れる数式を、ご教示頂けませんでしょうか。 よろしくお願いい致します。

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

  • ベストアンサー
回答No.3

いろんな手口を思いつきますが、簡単なところで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)),"") あたりで充分ですね。

その他の回答 (3)

noname#204879
noname#204879
回答No.4

F4: =IF(C4*D4,MIN(C4:D4),SUM(C4:D4))

  • yucco_chan
  • ベストアンサー率48% (828/1705)
回答No.2

=IF(OR(C4=0,D4=0),MAX(C4:D4),MIN(C4:D4))

  • chiizu2
  • ベストアンサー率41% (164/400)
回答No.1

次のようにしたらどうでしょうか =IF(C1=0,D1,IF(D1=0,C1,(MIN(C1:D1))))

Torizoh
質問者

お礼

早速のご教示ありがとうございます。 エラーが出なくなり大変助かりました。

関連するQ&A

  • Excel2003の数式設定について教えて下さい。

    Excel2003の数式設定について教えて下さい。 【C1セル】には 数式「=IF(A1="","",A1)」 【D1セル】には 数式「=IF(B1="","",B1)」 【E1セル】には 数式「=IF(AND(ISBLANK(C1),ISBLANK(D1)),"",(IF((C1+D1)=0,"---",C1+D1)))」 と設定した状態で、 【A1セル】に 数値「100」と入力し、 【B1セル】に 数値「200」と入力した場合、 【E1セル】は 「300」と出力されますが、 【A1セル】、もしくは【B1セル】を 空欄にした場合、 【E1セル】は エラーとなり、「#VALUE」と出力されてしまいます。 小生としては、【C1セル】【D1セル】の両セルとも表示上は空欄の為、 ISBLANK関数でTRUEと判定し、【E1セル】は空欄になってほしいのですが、 【C1セル】や【D1セル】には数式が設定されている為、 ISBLANK関数でTRUEと判定されずに、「IF((C1+D1)=0」の演算でエラーとなっている様です。 小生が実現したいこと、 「【C1セル】と【D1セル】の数式の実行結果が空欄以外の時のみ、  【E1セル】の数式を実行する。」 の方法をご存知の方、教えて下さい。お願い致します。

  • エクセルの数式で困ってます。

    教えて頂いた数式で作ってみたのですが、何か間違っているようでAやBなどの表記がでません。 =IF(C4="","",IF(C4-70<=0,A,IF(C4-135<=0,B, IF(C4-198<=0,C, IF(C4-247<=0,D, IF(C4-306<=0,E, IF(C4-359<=0,F, IF(C4-411<=0,G,IF(C4-461<=1,H,"")))))))) 0~70までをA、72~135までをB、137~198までをC・・・・などと表記したいのですが、宜しくお願いいたします。

  • 配列数式を用いて、最小値を表示させたい

    配列数式について教えてください。 先回、こちらで質問させていただいて、なんとか理解できつつあります。回答していただきました方、どうもありがとうございました。 一応の理解はできたのですが、応用しようとしたところ、うまく数値が表示されてこないため、再度質問させていただきたいと思います。どうかよろしくお願いいたします。 表を添付いたしましたが、1月2日から4日までで、時間ごとにその最大値と最小値が表示されています。 今回、1月2日に合致したデータで、配列数式を用いて、その最大値と最小値を表示させようとしました。 その結果、最大値はちゃんと表示されるにも関わらず、最小値の値が「0」の表示となってしまいます。 最大値の式は MAX((A2:A10="1月2日"*1)*C2:C10) 最小値の式は MIN((A2:A10="1月2日"*1)*D2:D10) としています。 どこがまちがっているのでしょうか? ご教授、よろしくお願いいたしますm(_ _)m

  • Excel数式の意味がわかりません。

    他人からもらったエクセルデータがあり、一部のセルに以下のような数式が入っています。 {=MIN(IF(G4:G300<=TODAY()+1,"",G4:G300))} この関数の意味が理解できません。

  • EXCEL2007 最小値のセルを目立たせたい

    指定した範囲の最小値のセルの書式が自動的に変更されるように設定したいのですが、うまく設定できないので、教えてください。 例えば、B2:D2のセルの中で最小値の書式を設定するとして、  メニュー[ホーム]-[スタイル]-[条件付き書式]-[新しいルール]をクリック  ↓ [新しい書式ルール]ダイアログ-[ルールの種類を選択してください]欄で「数式を使用して、書式設定するセルを決定」を選択  ↓ [ルールの内容を編集してください]欄の[次の数式を満たす場合に値を書式設定]のテキストボックスに「=MIN($B$2:$D$2)」と入力  ↓ テキストボックスの下の[書式]ボタンをクリックして書式を設定  ↓ [プレビュー]で書式が設定されたことを確認  ↓ [新しい書式ルール]ダイアログ-[OK]ボタンをクリック と設定してみたのですが、B2:D2のセルすべてに書式が適用されてしまいました。 ちなみに、小数点を含む数値やパーセンテージ、数式を用いているセルだとルールが設定できないということはないですよね? 詳しい方よろしくお願いします。 また、データバー、カラースケール、アイコンセットなら簡単に設定できるという意見もあると思いますが、最小値と2番目の最小値の差が0.1とか0.01単位の場合、表示の差が分かりにくいので、この場合にはちょっと使えないです。

  • 営業所ごと相殺処理について(excel)

    仕事上、どうにか処理効率をあげようとexcelで試行錯誤してきましたが、どうにもうまくいかないので、質問させていただきます。 当社の営業所の某会社からに対する買掛金と売掛金がこれだけ あったとします。 (A~Dはすべて当社の営業所です) <表1> [買掛金]       [ 売掛金] A 営業所 100    A 営業所 300  B 営業所 50    B 営業所 150 C 営業所 200   C 営業所 150 D 営業所 150    D 営業所 100 合計    500          700 この場合500円が相殺金額となります。 当社の場合売掛金がある営業所で入力処理を行いますので、 相殺金額500円分の売掛金は以下のように割り当てたとします。 A営業所 300 B営業所 150 C営業所 50 次に相殺する買掛金の営業所名も入力しなくてはいけないので それぞれの売掛金に買掛金を割り振ると <表2> [売掛金]   [買掛金] A営業所 200 C営業所 200 A営業所 100 A営業所 100 B営業所 150 D営業所 150 C営業所 50  B営業所 50 このようになります。 上記のように単純な数字ならよいのですが、現実はそうはいきません。どこの営業所に割り当てるかは特に制限はないのですが、できるだけ処理の件数を少なくするには大きい数字から処理をしていくのがベターだととは思います。 <表1>がエクセルにあったとして、うまく<表3>のような形にもっていこうと、計算式を考えてたのですが、なかなかうまくいきません。マクロを組もうにもうまくいきません。 どなたか、ヒントをいただければと思います。  よろしくお願いいたします。

  • EXCEL数式について質問です。

    EXCELをつかったスケジュール管理を行いたいと思っています。 上記内容に対して、数式がわからないところがあるのでアドバイスお願い致します。 添付に現状のフォーマットがあります。 (確認をお願い致します) まず (1)Bセルに開始日を入力    Cセルに終了日を入力 (2)D:Fに反映する。(数式をつかった) ※D:Fセルへの数式をつかった表示は出来ますが、  BとCセルが日付(a月a日)に対してD~Fは2/B 2/M 2/Lでの管理にしたいです。 定義 2/B: 1日~10日 2/M 11日~20日 2/L 21日~31日 作業列を使用しても大丈夫です! 以上の内容アドバイスをよろしくお願い致します。

  • この数式の間違い個所を教えてください。

    いつもお世話になっております。 平成18年度の65歳年金収入の所得換算式は、以下のとおりになっておりますが、 (0~1,200,000)は、「0」 (1,200,001~ 3,299,999)は、「収入-1,200,000」 (3,300,000~ 4,099,999)は、「収入*0.75-375,000」 (4,100,000~ 7,699,999)は、「収入*0.85-785,000」 (7,700,000~)は、「収入*0.95-1,550,000」 数式を以下のように作りました。 =IF(D5<=1200000,"0",IF(1200001<=3299999,D5-1200000,IF(D5<=4099999,D5*0.75-375000,IF(D5<=7699999,D5*0.85-785000,IF(7700000<=D5,D5*0.95-1550000))))) セルD5に収入金額420万円を入れると、所得金額が数式の入ったセルに「300万円」と表示されてしまいます。 正しい所得は、「2,785,000円」だと思います。 数式のどこが間違っているのか教えてください。 よろしくお願いします。 「エクセル2003」

  • Excel数式入力

    セルC2の合計がF1の数値と同じになるようにセルB4に数式を入力したいのですが。D列が数式となります。尚、F1の値は都度手入力で変更されます。数式を何度か入れたのですが数値がちぐはぐになりうまくいきません。B4に入力する関数もしくは何か良い解決策はあるでしょうかよろしくお願いします。

  • 数式で空白にしたセルについて

    もともと空白だったセルD1とE1があって、F1に「=D1*E1」と 数式を立てるとF1には0が表示されます。 しかし、D1に例えば「=IF(B1="","",VLOOKUP(B1,$G$1:$N$5,2,FALSE))」 という数式を入れD1を空白にすると「=D1*E1」の数式があるF1には #VALUE!のエラーがでます。 D1に返された""は、通常の空白という意味とは違うのでしょうか? また、通常の空白セルとは0(ゼロ)が設定されているのでしょうか? ご存知の方教えて頂けますでしょうか

専門家に質問してみよう