Excel IF文で最大値を出す

このQ&Aのポイント
  • ExcelのIF文を使用して最大値を出す方法について教えてください。
  • セルの比較を行い、条件に応じて最大値を表示するためには、IF文を使用することができます。
  • 変数を使用して繰り返し処理を簡潔にする方法もあるかもしれません。詳しい方法について教えてください。
回答を見る
  • ベストアンサー

EXCEL IF文で最大値を出す

最大値はMAXで出せ!といわれると元も子もないですが(^^;) IF文でなんとかならないの?という・・・はい、変わり者のAB型です まあそれはさておきA1,A2,B1,B2の4つを比較したいと思います (4項は全て違う値です) とりあえず =IF(AND(A1>B1),A1,B1) =IF(AND(A2>B2),A2,B2) これをC1,C2に代入し =IF(AND(C1>C2),C1,C2) ただこれでは項目が増えるごとに膨大な代入するセルが必要です ここで変数をn、mとし =IF(AND(n=(AND(A1>B1),A1,B1))>(m=(IF(AND(A2>B2),A2,B2)),n,m) とすれば大丈夫そうなのですが変数を宣言する方法が ネットを探索してもうまく見つけれません。 もしくは別の方法がありそうですが詳しい方助言を いただけないでしょうか?

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

  • ベストアンサー
noname#111181
noname#111181
回答No.1

残念ながら、Excelの関数内で変数を宣言することはできません。 マクロ(VBA)を使う必要があります。

klordrei
質問者

お礼

やはりマクロを使うしかなさそうですね。 変数を使えないのは残念ですがまあマクロ自体優秀ですから・・・ ロートルな方法で攻めようとした私も変わり者ですしね!(笑 非常に参考になりました。ありがとうございます!

関連するQ&A

  • if文のもっとスマートな書き方

    お分かりになられる方ご教授ください 下記のようなIF文を書きました if ($name =="6メートル" and $keta =="10メートル") { $kingaku=$a10; }elseif ($name =="6メートル" and $keta =="15メートル") { $kingaku=$a15; }elseif ($name =="6メートル" and $keta =="20メートル") { $kingaku=$a20; }elseif ($name =="6メートル" and $keta =="25メートル") { $kingaku=$a25; }elseif ($name =="6メートル" and $keta =="30メートル") { $kingaku=$a30; }elseif ($name =="6メートル" and $keta =="35メートル") { $kingaku=$a35; }elseif ($name =="6メートル" and $keta =="40メートル") { $kingaku=$a40; }elseif ($name =="6メートル" and $keta =="45メートル") { $kingaku=$a45; }elseif ($name =="6メートル" and $keta =="50メートル") { $kingaku=$a50; } }elseif ($name =="10メートル" and $keta =="10メートル") { $kingaku=$b10; } }elseif ($name =="10メートル" and $keta =="15メートル") { $kingaku=$b15; } }elseif ($name =="10メートル" and $keta =="20メートル") { $kingaku=$b20; } }elseif ($name =="10メートル" and $keta =="25メートル") { $kingaku=$b25; } }elseif ($name =="10メートル" and $keta =="30メートル") { $kingaku=$b30; } }elseif ($name =="10メートル" and $keta =="35メートル") { $kingaku=$b35; } }elseif ($name =="10メートル" and $keta =="40メートル") { $kingaku=$b40; } }elseif ($name =="10メートル" and $keta =="45メートル") { $kingaku=$b45; } }elseif ($name =="10メートル" and $keta =="50メートル") { $kingaku=$b50; } else { $kingaku="-"; } とにかく長いです。。。 これをもっとスマートに書く方法はございますでしょうか? 恐れ入りますがお分かりになられる方教えて下さい

    • ベストアンサー
    • PHP
  • EXCELのIF文を短く記述するには…

    希望の動作にせっかくたどり着けましたが、長すぎて拒絶されます。 以下の関数を短く記述するにはどのようにすれば宜しいでしょうか? ご教示お願いします。 =IF(AND($C$13>0,$C$13<=12),ROUND(VLOOKUP($B$23,B5:Q23,MATCH($C$13,B5:Q5,0),FALSE)/$C$13,0),"" &IF(AND($C$13>12,$C$13<=24),ROUND(VLOOKUP($B$23,B25:Q32,MATCH($C$13,B25:Q25,0),FALSE)/$C$13,0),"" &IF(AND($C$13>24,$C$13<=36),ROUND(VLOOKUP($B$23,B45:Q52,MATCH($C$13,B45:Q45,0),FALSE)/$C$13,0),"" &IF(AND($C$13>36,$C$13<=48),ROUND(VLOOKUP($B$23,B54:Q61,MATCH($C$13,B54:Q54,0),FALSE)/$C$13,0),"" &IF(AND($C$13>48,$C$13<=60),ROUND(VLOOKUP($B$23,B63:Q70,MATCH($C$13,B63:Q63,0),FALSE)/$C$13,0),"" &IF(AND($C$13>60,$C$13<=72),ROUND(VLOOKUP($B$23,B72:Q79,MATCH($C$13,B72:Q72,0),FALSE)/$C$13,0),"" &IF(AND($C$13>72,$C$13<=84),ROUND(VLOOKUP($B$23, B85: Q92,MATCH($C$13,B85:Q85,0),FALSE)/$C$13,0),"" &IF(AND($C$13>84,$C$13<=96),ROUND(VLOOKUP($B$23, B94:Q101,MATCH($C$13,B94:Q94,0),FALSE)/$C$13,0),"" &IF(AND($C$13>96,$C$13<=108),ROUND(VLOOKUP($B$23,B103:Q110,MATCH($C$13,B103:Q103,0),FALSE)/$C$13,0),"" &IF(AND($C$13>108,$C$13<=120),ROUND(VLOOKUP($B$23,B112:Q119,MATCH($C$13,B112:Q112,0),FALSE)/$C$13,0),"" &IF(AND($C$13>120,$C$13<=132),ROUND(VLOOKUP($B$23,B125:Q132,MATCH($C$13,B125:Q125,0),FALSE)/$C$13,0),"" &IF(AND($C$13>132,$C$13<=144),ROUND(VLOOKUP($B$23,B134:Q141,MATCH($C$13,B134:Q134,0),FALSE)/$C$13,0),"" &IF(AND($C$13>144,$C$13<=156),ROUND(VLOOKUP($B$23,B143:Q150,MATCH($C$13,B143:Q143,0),FALSE)/$C$13,0),"" &IF(AND($C$13>156,$C$13<=168),ROUND(VLOOKUP($B$23,B152:Q159,MATCH($C$13,B152:Q152,0),FALSE)/$C$13,0),""))))))))))))))

  • エクセルのIF関数について

    エクセルの数式でIFを使って、下記のような複数の条件の時に、それぞれの計算結果を算出する式を作りましたが、単純に条件を並べただけで(IFとAND使用)、式が長くなってしまいます。これを短く出来る式の方法はありますでしょうか?(他の関数を使用する方法など)また、エクセルの関数の数式を応用編まで詳しく調べられるサイトをご存知でしたら教えてください。 (条件の例)R1への式入力 (1)A1がに"A"か"B"かを入力 (2)A1がAで、B2の値がC3以下の時、R1には8、C3より大きい場合は、B2-C3の値を表示 (3)A1がBで、B2の値がC3以下の時、R1には5、C3より大きい場合は、(B2-C3)/2の値を表示 といった条件を満たすものが作成したいです。 ちなみに私が作成した式は、 =IF(AND(A1=A,B2<=C3),8),IF(AND(A1=A,B2>C3),B2-C3,・・・・)って感じです。こんな方法しか無いでしょうか?

  • 条件付き最大値の関数

    例えば、A1~C8に以下のような表があります。   A  B  C 1 あ あ  1 2 あ あ  2 3 あ い  3 4 あ い  4 5 い あ  5 6 い あ  6 7 い い  7 8 い い  8 A列が「あ」の時のC列の「最大値」を返したい時に、 次のような関数を使いました。(返ってくる答えは「4」) {=MAX(IF(A1:A8="あ",C1:C8,0))} では、A列が「あ」でB列も「あ」の時のC列の「最大値」を返したい時は どうしたら良いと思いますか?(返ってきてほしい答えは「2」) 次のような関数を思いついたのですが、うまく動きませんでした。 {=MAX(IF(AND(A1:A8="あ",B1:B8="あ"),C1:C8,0))} 何か「関数で」、方法はありますでしょうか? よろしくお願いいたします。

  • エクセル 関数 IF文

    初歩的な質問かもしれませんが、教えて下さい。   A  B   C     別シ-トA 1 S001 M001        R001     2               R002 3 S002 M002        R003 4 S003 M003        R004 上のような表をつくり、C列には、B列に文字が記入されている物は 別シ-トAの項目を入れ込み、空欄のものは何も書かないようにしたいと 考えて、IF(B2="","",B!B2) をC列に入れてあげると、R002は永遠に 盛り込まれなくなってしまっています。 これに、もし空欄があれば別シ-トの前の列番号を持ってくる方法はないのでしょうか? 言い回しがへたくそで申し訳ないのですが、 C2は空欄でかつ、C3には別シ-トA2、C4には別シ-トA3を 入れ込めるような関数を教えて下さい。

  • 条件に寄って、ifの中身が変わる時の書き方。

    条件に寄って、ifの中身が変わる時の書き方。 条件として3つのチェックボックスがあります。 □ 10<A □ 5>B □ 1<C チェックが入っている条件に合ったデータのみを抽出します。 例えば、 ■ 10<A □ 5>B □ 1<C で有れば、Aの値が10以上の条件に合ったものを抽出 ■ 10<A ■ 5>B ■ 1<C であれば、「Aが10以上」かつ「Bが5以下」かつ「Cが1以上」の条件にあったデータを抽出する。 というのを作りたいのですが… チェックボックスの付け方として、8パターンありますが、どうしても複雑になってしまいます。もっとシンプルに書けないのでしょうか?アドバイスお願いします。 for ($n=1; $n<=100; $n++){ if ($_POST[A]==true){ if($_POST[B]==true){ if($_POST[C]==true){ if(${data.$n}[A]>10 and ${data.$n}[B]<5 and ${data.$n}[C]>1){ print_r(${data.$n}); }//すべてにチェックが入っている場合 } else { if(${data.$n}[A]>10 and ${data.$n}[B]<5){ print_r(${data.$n}); }//AとBにチェックが入っている } } else { if($_POST[C]==true){ if(${data.$n}[A]>10 and ${data.$n}[C]>1){ print_r(${data.$n}); }//AとCにチェックが入ってる } else { if(${data.$n}[A]>10){ print_r(${data.$n}); }//Aにチェックが入っている } } } else { if($_POST[B]==true){ if($_POST[C]==true){ if(${data.$n}[B]<5 and ${data.$n}[C]>1){ print_r(${data.$n}); }//BとCにチェックが入っている } else { if(${data.$n}[B]<5){ print_r(${data.$n}); }//Bにチェックが入っている } } else { if($_POST[C]==true){ if(${data.$n}[C]>10){ print_r(${data.$n}); }//Cにチェックが入っている } else { print_r(${data.$n});//チェックなし } } } }

    • ベストアンサー
    • PHP
  • if文の中のif文・・・について

    質問させていただきます。 if文の中のif文の記述の仕方について質問があります。 例えば if ( x > 0 ){ a = b+c; if ( a > 1) d = e+f; ・・・1 if ( a < 1) d = e-f; ・・・2 if ( a = 1 ) d = 1-g; ・・・3 } h = d + i; aが1より大きい場合は、1の処理を、aが1より小さい場合は2の処理を、aが1と同じであった場合、3の処理をして最終的に、h = d + i;の式の d に代入して h を求めたいと思っているのですが、うまくゆきません。 if文の中のif文の記述はどのようにすればよいのでしょうか? よろしければご教示よろしくお願いします。

  • エクセルIFの使い方?結果を空欄にしたい

    A1 B1 C1 D1 E1とセルがある時、 A1とB1を使ってD1に差の絶対値を入力しています。 ここでA1とB1が空欄ならD1を空欄にする方法はどうするのでしょうか? C1にはA1 B1の平均を計算(ただしA1 B1が空欄なら空欄になるように) =IF(ISERROR(AVERAGE(A1:B1)),"",AVERAGE(A1:B1)) を入力しています。 そして D1にはA1とB1の差の絶対値を入力するために =MAX(A1:B1)-MIN(A1:B1) を入力しています。 ここまではOKでした。 ここからなのですが、 D1もC1と同じようにA1 B1が空欄なら空欄になるように設定したいのですがどうしたらよいのでしょうか? =IF(C1="","","MAX(A1:B1)-MIN(A1:B1)") かな、とも思ったのですが上手くいきません。

  • Excelの「&IF」について

    Excelの「&IF」について Excelで表を作っている最中、複数条件指定に困っています。 どなたかお助けいただけないでしょうか。 目的: サイズ毎の規定数を超えた時の数値を計算したい 用途: S、M、L、XLの4種類があり、それぞれが入力できる最大規定数が決まってます。 ※ S(1~2)、M(1~3)、L(1~4)、XL(1~5) 下記のような計算式を作ったところ、期待通りの数値が返って来ませんでした。。 =IF(AND(A2="Sパッケージ",B2>2),B2-2,0)&IF(AND(A2="Mパッケージ",B2>2),B2-3,0) どなたかご教授いただけないでしょうか。 宜しくお願いいたします。

  • If文で≠の方法は?

    Visual Basic 2003 を使っています。 If文で、 If (A = Me.TextBox1.Text) And ・・・ Then・・・ のように、「=」はできるのですが、「=でないとき」はどうすればいいのでしょうか? AはTextbox1と一致・Bはtextbox2と一致しない・cはtextbox3と一致の場合は○○、 AはTextbox1と一致・BはTextbox2と一致・CはTextbox3と一致しない場合は■■・・・のような条件式を作りたいんです。 調べてはみたのですが、見当たらなくて・・・。 分かる方がいらしたら、教えてください! (もし無理な場合もそう教えていただけると嬉しいです。他の方法を考えるか、諦めます。)