• 締切済み

【Excel】計算結果のタイプ別にセルに反映させる

たとえばセルA1とA2、A3を以下のようなパターンで入力し、後に計算するとします。 ■パターン1 A1➡5000 A2➡0 A3➡5000 ■パターン2 A1➡5000 A2➡0 A3➡0 ■パターン3 A1➡5000 A2➡4000 A3➡0 ■パターン4 A1➡5000 A2➡4000 A3➡5000 以下はすべてのパターンに共通する計算方法です。 A4➡A1~A3の合計 A5➡A4からA1を減算した結果 各パターンの結果は0、-5000、4000、4000とA5セルに表示がされますが、それぞれの結果を別々のセルに反映させたいのが目的です。 たとえばパターン1の結果はA6に、2はA7に…というようにです。 結果は0、マイナス、プラスになりますが、パターン3と4はマイナスです。ですがセル2に数値が入っているかそうでないかということでも表記されるセルを区別したいのですが関数などでそのようなことはできるのでしょうか?(かつ、マイナスの場合にはマイナスの符号がつかないようにしたいのです)。 当方関数にはまったく無知ですので詳しく教えていただけると助かります。

みんなの回答

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.18

> No.16の式の場合、空白のときには0となることです。 > たとえばA12には-1000(実際は1000)と表示されたとき、A11、A13、A14は当然のことながら答えはでませんがその空白部分をすべて0に表記されるということはこの式を使ってできますでしょうか? 人様の回答の修正は控えさせて頂きますが、式を読んで理解し、式中で空白("")にしている箇所を0に変更してみてはいかがでしょう。

frau
質問者

お礼

本当に助かりました。ありがとうございました!

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.17

> この式ですとシンプルでよいと思いますが、あと一点の、目的である結果がマイナスとなる場合の符号を示さないということが叶っておりません。よろしくお願いいたします。 マイナス符号の件を失念していました。 A11~A14セルに入れる式中の A5+A10 を以下のように ABS(A5+A10) と書き換えてください。 A11:=IF(OR(A15=5,A15=40),ABS(A5+A10),0) A12:=IF(OR(A15=3,A15=24),ABS(A5+A10),0) A13:=IF(OR(A15=1,A15=8),ABS(A5+A10),0) A14:=IF(OR(A15=7,A15=56),ABS(A5+A10),0)

frau
質問者

補足

ありがとうございました。無事できました。 他の方の回答ですが、回答がありませんのでmt2015さんにお伺いしたいのですが… No.16の式の場合、空白のときには0となることです。 たとえばA12には-1000(実際は1000)と表示されたとき、A11、A13、A14は当然のことながら答えはでませんがその空白部分をすべて0に表記されるということはこの式を使ってできますでしょうか? もしお分かりになりましたら教えていただけますでしょうか。

  • SI299792
  • ベストアンサー率47% (788/1647)
回答No.16

また、HohoPapaさんの回答を見てわかりました。 必要な情報が書いてありません。 例えば、 ・A2が0、かつ、A3が0以外の数値という条件を指している。 これだとたA1は0 でも0 でなくてもいいと思ってしまいます。 A1も0 でなければならないのなら、 ・A1が0、かつ、A2が0、かつ、A3が0以外 ときちんと書いて下さい。情報が足りないから正しく伝わりません。 なお、「の数値という条件を指している。」は必要ありません。 HohoPapaさんの式はうまくできているのですが、条件に合わないときに0が表示される、-符号が付くという問題があります。この式の修正は本人に任せるとして、私なりの式を作りました。長いですが、 A11 より =IF(AND(A1<>0,A2=0,A3<>0,A6=0,A7=0,A8=0),ABS(A5),IF(AND(A1=0,A2=0,A3=0,A6<>0,A7=0,A8<>0),ABS(A10),"")) =IF(AND(A1<>0,A2<>0,A3=0,A6=0,A7=0,A8=0),ABS(A5),IF(AND(A1=0,A2=0,A3=0,A6<>0,A7<>0,A8=0),ABS(A10),"")) =IF(AND(A1<>0,A2=0,A3=0,A6=0,A7=0,A8=0),ABS(A5),IF(AND(A1=0,A2=0,A3=0,A6<>0,A7=0,A8=0),ABS(A10),"")) =IF(AND(A1<>0,A2<>0,A3<>0,A6=0,A7=0,A8=0),ABS(A5),IF(AND(A1=0,A2=0,A3=0,A6<>0,A7<>0,A8<>0),ABS(A10),"")) 「A12 に-1000 と入れば」と捕捉に書いてありましたが、これも理解できませんでした。 A12 は計算結果を表資するところなので、入れることはできません。A12 になった場合ということでしょうか。 あと、1ヶ所で2つの質問をしたため、ここはずいぶん複雑になっています。 今後、こういう時は、新しい質問を立てた方がいいと思います。

frau
質問者

補足

パターン6はセルA12と共にセルA13にも同じ数値(1000)、またパターンがでてしまいますがこれはどういうことでしょう? パターン5もセルA11とA13に同時にでます。 また先のお礼にかいた0表記のことはいかがでしょうか。 A11~A14の範囲に表示される結果以外、すべて0表記にさせることです。 たとえばA12には-1000(実際は1000)と表示されたとき、A11、A13、A14はすべて0に表記されるということです(つまり空白にはしない)。よろしくお願いいたします。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.15

セルA15を作業用セルとして使用します。↓の式を入れて下さい。 =SUMPRODUCT((A1:A8<>0)*{1;2;4;0;0;8;16;32}) 式の説明は後述しますが、パターン1~8に合致する時、A15には以下の値が表示されます。 パターン1の時:5 パターン2の時:3 パターン3の時:1 パターン4の時:7 パターン5の時:40 パターン6の時:24 パターン7の時:8 パターン8の時:56 A11~A14セルには以下の式を入れます。 A11:=IF(OR(A15=5,A15=40),A5+A10,0) A12:=IF(OR(A15=3,A15=24),A5+A10,0) A13:=IF(OR(A15=1,A15=8),A5+A10,0) A14:=IF(OR(A15=7,A15=56),A5+A10,0) これでどうでしょう? A15の式では、A1、A2、A3、A6、A7、A8の値が0以外の場合、2進数の1~6ビット目を立てるのと同じことをして、作業用のユニークな値を作っています。 追伸: frauさんはExcelに不慣れなため、必要と思われる情報を可能な限り書き出しているのだと思いますが、残念ながらセル式を作るにあたっては不要な情報が多く、用語の使い方が独特なのも相まって私を含めた回答者の混乱招いているようです。 例えば、「条件」と言う言葉を出されると、その条件さえ満たしていれば良いと(少なくともExcelを使用するうえでは)考えてしまいますが、提示された「条件」はそれだけでは成立しないので、今回は失礼ながら無視して独自にやらせて頂きました。

frau
質問者

補足

お礼が遅くなりすみません。 結果、ご呈示のとおりになりました。 この式ですとシンプルでよいと思いますが、あと一点の、目的である結果がマイナスとなる場合の符号を示さないということが叶っておりません。よろしくお願いいたします。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.14

ようやく「パターン」の意味が解った気がします。 「条件」の事を忘れて以下のように整理しました。 合ってますか? パターンを決める対象セルはA1、A2、A3とA6、A7、A8の計6個 パターン1:A1とA3が0以外、他の対象セルは0 パターン2:A1とA2が0以外、他の対象セルは0 パターン3:A1が0以外、他の対象セルは0 パターン4:A1、A2、A3が0以外、他の対象セルは0 パターン5:A6とA8が0以外、他の対象セルは0 パターン6:A6とA7が0以外、他の対象セルは0 パターン7:A6が0以外、他の対象セルは0 パターン8:A6、A7、A8が0以外、他の対象セルは0

frau
質問者

補足

すべて合っております。 >他の対象セル を「対応セル」に読み替えでください。A1はA6に、A6はA7に…というように「対応している」と考えていただけるとわかりやすいと思います。

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.13

例x A1➡0 A2➡0 A3➡0 A4➡0+0=0 A5➡0-0=0 A6➡5000 A7➡3000 A8➡2000 A9➡2000+3000=5000 A10➡5000-5000=0 これが、パターン8なんですね。 では、 なぜこれが、パターン6に該当しないのか その理由を教えてください。 例y A1➡0 A2➡0 A3➡0 A4➡0+0=0 A5➡0-0=0 A6➡5000 A7➡0 A8➡6000 A9➡0+6000=6000 A10➡6000-5000=1000 これがパターン5なんですね。 では、 なぜこれが、パターン7に該当しないのか、 その理由を教えてください。

frau
質問者

補足

>なぜこれが、パターン6に該当しないのか > なぜこれが、パターン7に該当しないのか、 とおっしゃる理由がわかりませんが、それぞれのパターンはそれぞれすべて組合せが違いますよね?

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.12

聞き方をちょっと変えます。 次の例x、例yは、8つあるパターンのどれに該当しますか? 例x A1➡0 A2➡0 A3➡0 A4➡0+0=0 A5➡0-0=0 A6➡5000 A7➡3000 A8➡2000 A9➡2000+3000=5000 A10➡5000-5000=0 例y A1➡0 A2➡0 A3➡0 A4➡0+0=0 A5➡0-0=0 A6➡5000 A7➡0 A8➡6000 A9➡0+6000=6000 A10➡6000-5000=1000

frau
質問者

補足

例Xがパターン8、yがパターン5です。

  • SI299792
  • ベストアンサー率47% (788/1647)
回答No.11

比較とは意味が不明…判り難い表現でした。チェックする対象という意味で書きました。 A2+A3-A1、対応するA6+A7-A8 私は、 A2+A3-A1、対応するA7+A8-A6 だと思っていました、上と下でなぜ計算方法(つまり、並び方)が違うのか不明ですが、これなら納得できます。数式も書いていただければ、このような混乱は防げます。 このまま作れば、パターン5はA11 とA13 の2ヶ所に表示されます。 この点の返答はまだ頂いていませんが、これでいいのですね。 A11 ~A14 は =IF(OR(AND(A2=0,A3<>0,A6=0,A7=0),AND(A2=0,A3=0,A6<>0,A7=0)),ABS(A10),"") =IF(OR(AND(A2<>0,A3=0,A6=0,A7=0),AND(A2=0,A3=0,A6<>0,A7<>0)),ABS(A10),"") =IF(OR(AND(A2=0,A3=0,A6=0,A7=0),AND(A2=0,A3=0,A6<>0,A7=0)),ABS(A10),"") =IF(OR(AND(A2<>0,A3<>0,A6=0,A7=0),AND(A2=0,A3=0,A6<>0,A7<>0)),ABS(A10),"") になります。

frau
質問者

お礼

ご回答の式で目的を達成しました! ありがとうございました。

frau
質問者

補足

お礼を書いたあとにすみません。 この式では前の補足に追加で書いたものが達成されておりません。 結果が表示されたセル以外はすべて0の数値が入ることですが、できますでしょうか? たとえばA12に-1000と入れば、A13~A14の結果表示のためのセルはすべて0に表記されるということです。よろしくお願いいたします。

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.10

もう一つ、コメントします。 >一方の領域(A1~A5もしくはA6~A10)の答えが0以外になるときには >もう一方の領域(A6~A7もしくはA1~A5)が0以外の数値になる >という条件です。 これは、 A1~A5のどれかが0以外になるときには A6~A10には全数0が埋まる。 他方、 A6~A10どれかが0以外になるときには A1~A5には全数0が埋まる。 と読むんだろうと思います。 ならば、(ちょっと自信が無いんですが) パターンは、 8通りではなく、6通りになるものと推測します。 いかがでしょうか?

frau
質問者

補足

>>一方の領域(A1~A5もしくはA6~A10)の答えが0以外になるときには >>もう一方の領域(A6~A7もしくはA1~A5)が0以外の数値になる について厳密に訂正します。 一方の領域A1~A5の答えが0になるときにはA6~A10が0以外の数値になる。 もう一方の領域の答えがA6~A7が0以外の数値になるときにはA1~A5が0の数値になる。 計算の入力パターンは以下の4とおり。 (1) A1➡5000 A2➡0 A3➡5000 A4➡0+5000=5000 A5➡5000-5000=0 (2) A1➡5000 A2➡4000 A3➡0 A4➡4000+0=4000 A5➡4000-5000=-1000 (3) A1➡5000 A2➡0 A3➡0 A4➡0+0=0 A5➡0-5000=-5000 (4) A1➡5000 A2➡4000 A3➡5000 A4➡4000+5000=9000 A5➡9000-5000=4000 これらがA1~A5の計算の場合には相対する領域がA6~A10となる。 逆にA6~A10の計算の場合には相対する領域がA1~A5となる。 相対する領域同士はいずれかが0か0以外の数値になる。 という表の構成上です。たとえばA1~A5は通常払い、A6~A10は借入の金額を入力する領域といえばよいでしょうか。 通常払いの場合には借入の金額は入力しません。しかしそれぞれの明細項目は計算する必要があるということです(表の構成上のことについては詮索しないでください)。

  • SI299792
  • ベストアンサー率47% (788/1647)
回答No.9

私も、間違いだと思われる点を。 mt2015さんやHohoPapaとダブりますが。 パターン5は、A11 に表示するとありますが、パターン1もA11 に表示するとあります。 これが間違いでないとすると、A11 はパターン1の時とパターン5の時に表示することになります。 パターン5~8はA15 ~A18 に表示するの間違いではないですが。 パターン5とパターン7は同じです。 このまま作れば、パターン5はA11 とA13 の2ヶ所に表示されます。 パターン6とパターン8も同じです。 A2,A3,A6,A7 を比較するのも不思議です。A2とA3は加算していますが、A6とA7は加算していません、A7とA8を加算しているので、本当に比較場所が間違っていないか、確認して下さい。

frau
質問者

補足

>これが間違いでないとすると、A11 はパターン1の時とパターン5の時に表示することになります。 そのとおりです。 >A2,A3,A6,A7 を比較するのも不思議です。A2とA3は加算していますが、A6とA7は加算していません、 比較とは意味が不明です。どのようなことでしょうか。 すべてのパターンについてはA2+A3-A1、対応するA6+A7-A8も同じです。加算しているではないですか。

関連するQ&A

専門家に質問してみよう