• ベストアンサー

エクセルについてなんですが

=IF((F37-F36)+((H37-H36)/60)<=5.1,(F37-F36)+((H37-H36)/60),(F37-F36)+((H37-H36)/60)-1) と =IF(F12="","",IF((F13-F12)+((H13-H12)/60)>=8.1,"8.0",(F13-F12)+((H13-H12)/60)-1)) の数式を同じセルにしたいのですが可能ですか? 初心者なのでわかりやすくお願いします。

みんなが選んだベストアンサー

  • ベストアンサー
  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

=IF((F37-F36)+((H37-H36)/60)<=5.1,(F37-F36)+((H37-H36)/60),(F37-F36)+((H37-H36)/60)-1) と =IF(F12="","",IF((F13-F12)+((H13-H12)/60)>=8.1,"8.0",(F13-F12)+((H13-H12)/60)-1)) を一つの式にするには、 2つの式を、どのような条件でつなぐのか決めないと論理的に無理です。 例えば、(F37-F36)+((H37-H36)/60)<=5.1で、かつ、F12が""ではない時は、IF((F13-F12)+((H13-H12)/60)>=8.1,"8.0",(F13-F12)+((H13-H12)/60)-1)にするのか、(F37-F36)+((H37-H36)/60)にするのか決めないと式が作れません。

gun-g
質問者

お礼

ありがとうございました

その他の回答 (2)

回答No.3

Excel の前に、算数と国語の力が大事です。 想像ですが、2 本の数式の行番号が全然違っていますが、その理由としては、たまたま例としてそれらの行が選ばれただけなので、どちらか一方、例えば 2 本目の数式の行番号に統一しても構わないということでしょうか。 また、想像ですが、2 式では「5.1」とか「8.1」近辺で処理の仕方が変わっていますが、この 2 数の間の大きさである値については、「(F13-F12)+(H13-H12)/60-1」という計算をしたい。つまり 2 式を統合したあかつきには、「下限より下の区間」、「中間の区間」、「上限より上の区間」という、3 区間くらい(*)に分岐させた処理になるようにしたいということでしょうか。 *この回答文のいちばん下で指摘している区間も分岐させるなら、4 区間以上 さらに、想像ですが、今のところ桁数の表示の仕方は、小数点第 1 位までであるか、あるいは小数点以下がない状態であり、それより下の桁については考えていなかった。だから「5.1」とか「8.1」という書き方をしても構わないような気がしていた。けれど実のところは、桁数については何のルールもなくて、単に「5」または「6」が下限で、「8」が上限になるような分岐にしたいということでしょうか。 以上の仮定に基づくと、次式のとおり統合できます。 =if(f12="","",min(8,(f13-f12)+(h13-h12)/60-((f13-f12)+(h13-h12)/60>5))) 解説 ●上限・下限の分岐は、IF 関数よりも、MAX と MIN で行ったほうが、簡潔に書けます。 ●数値には、基本的に「"8.0"」みたいな「""」を付けない、と覚えてください。  数値から文字列を得る必要がある場合は、別途、セルの書式あるいは数式で対応します。 ●「-((f13-f12)+(h13-h12)/60>5)」という部分について。  マイナスと括弧を除去した「(f13-f12)+(h13-h12)/60>5」という「論理式」は、「TRUE」または「FALSE」という「論理値」を返します。  試しにどこかのセルに、イコールを付けた「=(f13-f12)+(h13-h12)/60>5」を記入してみてください。  F13 セル辺りの値をいろいろ変えてみれば、どういうものだか分かるでしょう。 ●論理値にマイナスを付けると、「TRUE」→「1」、「FALSE」→「0」というふうに変化します。  マイナスだから「-1」か「0」になりますね。  つまり質問文の数式中、「-1」という計算を実行するか否か、F13 ほかの値に応じて分岐させていることになるわけです。 なお「5」と「6」の間にも値があるという場合は、その扱いをどうするのかについて情報の提供がないと、こちらとしては何ともしようがありません。上式の場合なら、「(f13-f12)+(h13-h12)/60」という値が 6 であれば 6 - 1 = 5、5.5 であれば 5.5 - 1 = 4.5、5 であれば 5 - 0 = 5 という計算結果になるよう、こちらで勝手に決めました。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

IF関数は入れ子構造にできますが、ご提示の2つのIF関数は何方も完結型になっていますので新たにIF関数を構成して2つのIF関数を内包させる手法を使うことになるでしょう。 他の方法としてはMAX関数やMIN関数の中に2つのIF関数を取り込む方法も考えられます。 あなたの目的に合った関数の入れ子構造で解決しなければなりません。 質問の文言からはあなたの目的が見えませんので考え方のみ提言させて頂きました。

gun-g
質問者

お礼

ありがとうございました

関連するQ&A