• ベストアンサー

エクセル関数の複数条件を1本にまとめたい

質問させていただきますので、どなたかご回答お願いします! Y89のセルに最終的に =if(AD90>60,AD90-60,"")  という計算式になるようにしたいのです。 別の場所でそれぞれの計算式を作ってあります。 AD90セルの中は =sumif(P58:P88,"土",AD58:AD88)+AD89  が入ってます。 さらにその内のAD58の中身は =$S58-$U58 AD88には =$S88-$U88 AD89には =U89-U90 これらを一番上の式に当てはめし1本化したいのですが、()が多すぎて混同してしまい答えが出ません。 =if(sumif(…… とするのですか?または違う関数でできますか? どうかよろしくお願いします!!

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 別関数例です。 =IF(SUMPRODUCT((P58:P88="土")*(S58:S88-U58:U88))+U89-U90>60,SUMPRODUCT((P58:P88="土")*(S58:S88-U58:U88))+U89-U90-60,"") 因みに現在のSUMIF関数を「S列のSUMIF関数-U列のSUMIF関数」に分解してもよいと思います。

noname#179800
質問者

お礼

mu2011様 sumproductを使うのですね。 まだまだ勉強不足で恥ずかしい限りです。 参考にさせていただきます、ありがとうございました!!

その他の回答 (2)

  • Mr_Holland
  • ベストアンサー率56% (890/1576)
回答No.3

>AD59のセルには S59-U59 >AD87のセルには S87-U87 >が入ってるのでここも分解したいのですが…  これも元のsumifの範囲から外して別勘定すればいいだけですよ。  例えば次のようにしてはいかがでしょう。 =if(if(P58="土",$S58-$U58,0)+if(P59="土",S59-U59,0)+sumif(P60:P86,"土",AD60:AD86)+if(P87="土",S87-U87,0)+if(P88="土",$S88-$U88,0)+U89-U90>60,if(P58="土",$S58-$U58,0)+if(P59="土",S59-U59,0)+sumif(P60:P86,"土",AD60:AD86)+if(P87="土",S87-U87,0)+if(P88="土",$S88-$U88,0)+U89-U90,"")  これも間違っているかも知れませんので検証してからお使いください。

noname#179800
質問者

お礼

ありがとうございました! この通り入れると出来ました。 ご面倒をおかけしました。

  • Mr_Holland
  • ベストアンサー率56% (890/1576)
回答No.1

 58行目と88行目をsumifから出して式を作ればよいと思います。 =if(if(P58="土",$S58-$U58,0)+sumif(P59:P87,"土",AD59:AD87)+if(P88="土",$S88-$U88,0)+U89-U90>60,if(P58="土",$S58-$U58,0)+sumif(P59:P87,"土",AD59:AD87)+if(P88="土",$S88-$U88,0)+U89-U90-60,"")  間違っているかも知れませんので検証してお使いください。(エラーチェックはしましたが。) 

noname#179800
質問者

補足

Mr Holland 様 ご親切に回答をありがとうございました。 早速教えていただいた式を入れると、求めていた答えが出て助かりました。 付け加えて教えていただきたいのですが、 AD59のセルには S59-U59 AD87のセルには S87-U87 が入ってるのでここも分解したいのですが… (要するにAD列の表示をしないようにしたいのです) 一度に書かずに申しわけありません!! 自分でAD59にS59-U59を入れ替え、AD87にS87-U87を入れると全く別の答えになりました。 これはどうしたらいいのでしょうか? 再度教えていただけると幸いです!! よろしくお願いします!!

関連するQ&A