『式の簡略化』(HINA) 下記の計算式を簡単にできないでしょうか?   =IF(B74=B75,0,IF(SUM(AA55:AA73)=0,J74-SUM(O55:O74)-SUM(Z55:Z74),IF(SUM(AA56:AA73)=0,J74-SUM(O56:O74)-SUM(Z56:Z74),IF(SUM(AA57:AA73)=0,J74-SUM(O57:O74)-SUM(Z57:Z74),IF(SUM(AA58:AA73)=0,J74-SUM(O58:O74)-SUM(Z58:Z74),IF(SUM(AA59:AA73)=0,J74-SUM(O59:O74)-SUM(Z59:Z74),IF(SUM(AA60:AA73)=0,J74-SUM(O60:O74)-SUM(Z60:Z74),IF(SUM(AA61:AA73)=0,J74-SUM(O61:O74)-SUM(Z61:Z74),IF(SUM(AA62:AA73)=0,J74-SUM(O62:O74)-SUM(Z62:Z74),IF(SUM(AA63:AA73)=0,J74-SUM(O63:O74)-SUM(Z63:Z74),IF(SUM(AA64:AA73)=0,J74-SUM(O64:O74)-SUM(Z64:Z74),IF(SUM(AA65:AA73)=0,J74-SUM(O65:O74)-SUM(Z65:Z74),IF(SUM(AA66:AA73)=0,J74-SUM(O66:O74)-SUM(Z66:Z74),IF(SUM(AA67:AA73)=0,J74-SUM(O67:O74)-SUM(Z67:Z74),IF(SUM(AA68:AA73)=0,J74-SUM(O68:O74)-SUM(Z68:Z74),IF(SUM(AA69:AA73)=0,J74-SUM(O69:O74)-SUM(Z69:Z74),IF(SUM(AA70:AA73)=0,J74-SUM(O70:O74)-SUM(Z70:Z74),IF(SUM(AA71:AA73)=0,J74-SUM(O71:O74)-SUM(Z71:Z74),IF(SUM(AA72:AA73)=0,J74-SUM(O72:O74)-SUM(Z72:Z74),IF(AA73=0,J74-SUM(O73:O74)-SUM(Z73:Z74),J74-O74-Z74)))))))))))))))))))) < 使用 Excel:Excel2010、使用 OS:Windows7 > ---- これってA列が空白かどうかなの? あくまで「合計がゼロ」ってこと? これでだいぶ変わってくるけど・・・ A列が「空白」になるところから74行目までを計算範囲として ※IFのネストってことは歯抜けは無いってことだと思う。。。 =IF(B74=B75,0,J74-SUMIF(A55:A74,"",O55:074)-SUMIF(A55:A74,"",Z55:Z74))   (GobGob) 2015/02/19(木) 18:58 ---- >これってA列が空白かどうかなの? >あくまで「合計がゼロ」ってこと? >これでだいぶ変わってくるけど・・・ >A列が「空白」になるところから74行目までを計算範囲として >※IFのネストってことは歯抜けは無いってことだと思う。。。 ・・・AA列でしたw。 =IF(B74=B75,0,J74-SUMIF(AA55:AA74,"",O55:074)-SUMIF(AA55:AA74,"",Z55:Z74))   (GobGob) 2015/02/20(金) 07:50 ---- 回答じゃないけど、GobGobさんの式でO(オー)74のところが0(ゼロ)74になってるね。 (bi) 2015/02/20(金) 09:28 ---- >回答じゃないけど、GobGobさんの式でO(オー)74のところが0(ゼロ)74になってるね。 ぜんぜん気づかなかったw 。biさん。サンキューです。 =IF(B74=B75,0,J74-SUMIF(AA55:AA74,"",O55:O74)-SUMIF(AA55:AA74,"",Z55:Z74))   (GobGob) 2015/02/20(金) 09:33 ---- 見づらいから式を改行して、 =IF(B74=B75, 0, IF(SUM(AA55:AA73)=0, J74-SUM(O55:O74)-SUM(Z55:Z74), IF(SUM(AA56:AA73)=0, J74-SUM(O56:O74)-SUM(Z56:Z74), IF(SUM(AA57:AA73)=0, J74-SUM(O57:O74)-SUM(Z57:Z74), IF(SUM(AA58:AA73)=0, J74-SUM(O58:O74)-SUM(Z58:Z74), IF(SUM(AA59:AA73)=0, J74-SUM(O59:O74)-SUM(Z59:Z74), IF(SUM(AA60:AA73)=0, J74-SUM(O60:O74)-SUM(Z60:Z74), IF(SUM(AA61:AA73)=0, J74-SUM(O61:O74)-SUM(Z61:Z74), IF(SUM(AA62:AA73)=0, J74-SUM(O62:O74)-SUM(Z62:Z74), IF(SUM(AA63:AA73)=0, J74-SUM(O63:O74)-SUM(Z63:Z74), IF(SUM(AA64:AA73)=0, J74-SUM(O64:O74)-SUM(Z64:Z74), IF(SUM(AA65:AA73)=0, J74-SUM(O65:O74)-SUM(Z65:Z74), IF(SUM(AA66:AA73)=0, J74-SUM(O66:O74)-SUM(Z66:Z74), IF(SUM(AA67:AA73)=0, J74-SUM(O67:O74)-SUM(Z67:Z74), IF(SUM(AA68:AA73)=0, J74-SUM(O68:O74)-SUM(Z68:Z74), IF(SUM(AA69:AA73)=0, J74-SUM(O69:O74)-SUM(Z69:Z74), IF(SUM(AA70:AA73)=0, J74-SUM(O70:O74)-SUM(Z70:Z74), IF(SUM(AA71:AA73)=0, J74-SUM(O71:O74)-SUM(Z71:Z74), IF(SUM(AA72:AA73)=0, J74-SUM(O72:O74)-SUM(Z72:Z74), IF(AA73=0, J74-SUM(O73:O74)-SUM(Z73:Z74), J74-O74-Z74)))))))))))))))))))) どんな法則で求めたいものがわからないけど、 =IF(B74=B75,0,J74-SUM(O55:O73)-SUM(Z55:Z74)) で問題あるのかな? AA列にはどんな値がはいるかわからないけど、 演算結果が0の時のみだからなぁ…。 具体例があると考えやすいです。 (K) 2015/02/20(金) 10:02 ---- 数式の構図が 「AAの範囲合計が0ならJ74からO列とZ列の合計を引き算」 と、なっていて 各範囲の開始位置を1づつずらしてネストしてるんだよね。 ってことは結局、AA列の数値合計がゼロ以外は計算しないって意味だと思ったんで オイラの回答はあんなんになったとさ。 んで、ネスト処理してるんでAA列はフラグ的な使い方かな?と判断。    (GobGob) 2015/02/20(金) 10:31 ---- ちなみに J74-SUM(O55:O73)-SUM(Z55:Z74) は J74-SUM(O55:O73,Z55:Z74) でいいね。   (GobGob) 2015/02/20(金) 10:36 ---- 判定が式だからね。 極端な話、 AA55=10 AA73=-10 しか入力なくても、 「SUM(AA55:AA73)=0」の条件を満たすからね。 もう少し具体例がほしいかな。 > J74-SUM(O55:O73,Z55:Z74) > でいいね。 確かに。 とにかく式は短い方がわかりやすいからね。 質問主の回答待ちかな。 (K) 2015/02/20(金) 10:51 ---- そうなんっすよね、なのでオイラの回答は >>これってA列が空白かどうかなの? >>あくまで「合計がゼロ」ってこと? >>これでだいぶ変わってくるけど・・・ >>A列が「空白」になるところから74行目までを計算範囲として >>※IFのネストってことは歯抜けは無いってことだと思う。。。 >・・・AA列でしたw。 という「たられば」条件付きっす。 結局AA列が「何を意味するか?」でぜんぜん変わってきますわ。   (GobGob) 2015/02/20(金) 11:08 ---- なんかすみません。 こんなにも回答が来てるとは思いませんでした。 会社で使っているExcelなんですが、取引先からの受注に対して、粗利がいくらか計算する式でして、各行で粗利が出るようになっていますが、一度の出荷でいくつかの商品を出荷した時には、商品に対しての送料などのコスト負担が変わってくるので、1受注としての粗利益を算出しています。 20種類以上の商品を同時に出荷することが無かったので、この式でも問題なかったのですが、これを超えた場合にはさらに式が長くなると思い、より分かりやすい式ができないかと思い質問してみました。 B列は納品書番号、J列は売上、O列は原価、Z列はコストです。 参考になりますでしょうか? (HINA) 2015/02/20(金) 11:55 ---- >なんかすみません。 >こんなにも回答が来てるとは思いませんでした。 どんな処理をしてるかの説明がないんで回答が多くなっちゃってるんやろね。 んで、結局AA列は何してるの? 数式の簡略化以前にどんな処理をしたいのか?をキチンと説明したほうが近道。 んで。 A B C D E 1 2 3 4 5 6 7 8 9 10 例表(別に実際のセル並びでなく簡略でもOK)で説明したほうがええよ。   (GobGob) 2015/02/20(金) 13:12 ---- アドバイスありがとうございます。 AA列は粗利益の列です。 下記のような表になっています。 A B C D E F G H 1 売上日 納品書番号 商品名 数量 売上 原価 コスト 粗利益 2 1/1 10000 砂糖 10 100 50 10 40 3 1/1 10001 砂糖 3 300 150 3 147 4 1/1 10002 醤油 2 50 25 2 23 5 1/2 10003 塩 1 20 10 1 0 6 1/2 10003 みりん 1 15 9 1 0 7 1/2 10003 ごま 6 30 10 6 38 8 1/2 10004 胡椒 20 200 190 20 -10 こんな感じです。 5〜7行目まで、同じ納品書番号なので、1度の出荷ですべての商品を出荷できており、原価率(配送料含む)が低くなっています。 この場合は、個々での粗利益の表示ではなく、1出荷での粗利益を表示したいです。 (HINA) 2015/02/20(金) 15:32 ---- 例表なら H2 =IF(COUNTIF(B$2:B2,B2)=COUNTIF(B:B,B2),SUMIF(B:B,B2,E:E)-SUMIF(B:B,B2,F:F)-SUMIF(B:B,B2,G:G),0) 下へコピー。   (GobGob) 2015/02/20(金) 17:03 ---- すごいです!ありがとうございます!できました! (HINA) 2015/02/20(金) 21:56