おはようございます。
今日は生徒さんからのExcelの質問を取り上げます。
「帳簿シートで、収入と支出を引いて残高を出しますが、帳簿シートの最後まで同じ残高が出てしまいます。収入のセルと支出のセルが空白の場合は、
残高計算をしない様にするにはどんな関数を使えば良いのでしょうか、ご教示よろしくお願いします。」
との事ですが、このようなイメージですね↓

これはあらかじめ残高欄に数式が設定されているからですよね。
では、収入か支出欄に数値を入力したときだけ、残高欄の計算を行うような数式
を設定しましょう。生徒さんの質問通り、ここは関数を使いましょうね。
今回使う関数
=IF(論理式(条件),条件がTRUEの時の処理(真の処理),条件がFALSEの時の処理(偽の処理))
論理式→セル参照や数値に、比較演算子(=,<,>,<=,>=)を使って条件を設定。真の場合はTRUE、偽の場合はFALSEを返す
条件がTRUEの時の処理→セルに何を表示させるか、どんな計算結果を表示させるかの設定
条件がFALSEの時の処理→セルに何を表示させるか、どんな計算結果を表示させるかの設定
=AND(論理式1,論理式2・・)
引数に指定した論理式が全て真の場合はTRUE、それ以外の場合はFALSEを結果として返します。
さぁやってみますよ。
現在残高欄に設定されている数式は、収入欄か支出欄に数値が入った時だけ、実行されればよい。
ということは、「収入欄も支出欄も空白の時は実行しない」ということになります。
残高欄F7=IF(AND(C7="",E7=""),"",F6+C7-E7)になります。

これを以降のセルにコピーすれば出来上がりです。
ちなみに前月繰越の残高欄F6には=C6という数式が設定されています。
いかがでしょうか。
IF関数は、覚えると使える場面がたくさんありますよ(*^_^*)
mihoりん
今日は生徒さんからのExcelの質問を取り上げます。
「帳簿シートで、収入と支出を引いて残高を出しますが、帳簿シートの最後まで同じ残高が出てしまいます。収入のセルと支出のセルが空白の場合は、
残高計算をしない様にするにはどんな関数を使えば良いのでしょうか、ご教示よろしくお願いします。」
との事ですが、このようなイメージですね↓

これはあらかじめ残高欄に数式が設定されているからですよね。
では、収入か支出欄に数値を入力したときだけ、残高欄の計算を行うような数式
を設定しましょう。生徒さんの質問通り、ここは関数を使いましょうね。
今回使う関数
=IF(論理式(条件),条件がTRUEの時の処理(真の処理),条件がFALSEの時の処理(偽の処理))
論理式→セル参照や数値に、比較演算子(=,<,>,<=,>=)を使って条件を設定。真の場合はTRUE、偽の場合はFALSEを返す
条件がTRUEの時の処理→セルに何を表示させるか、どんな計算結果を表示させるかの設定
条件がFALSEの時の処理→セルに何を表示させるか、どんな計算結果を表示させるかの設定
=AND(論理式1,論理式2・・)
引数に指定した論理式が全て真の場合はTRUE、それ以外の場合はFALSEを結果として返します。
さぁやってみますよ。
現在残高欄に設定されている数式は、収入欄か支出欄に数値が入った時だけ、実行されればよい。
ということは、「収入欄も支出欄も空白の時は実行しない」ということになります。
残高欄F7=IF(AND(C7="",E7=""),"",F6+C7-E7)になります。

これを以降のセルにコピーすれば出来上がりです。
ちなみに前月繰越の残高欄F6には=C6という数式が設定されています。
いかがでしょうか。
IF関数は、覚えると使える場面がたくさんありますよ(*^_^*)
mihoりん

お手数掛けます。
今日家に帰って早速実行してみます。
ありがとうございました。
私の場合は、あまり進歩しませんけど。^_^;
大抵は在庫管理が主なので、MOD関数を使っています。
ひと箱12個入りで、それから出た物を引くと残りは何箱となん個あるかって奴です。(笑)
うまくいきますように(*^_^*)
なるほど。おもしろいですね。今度生徒さんへの課題で使わせていただいちゃおうかな(*^_^*)
お手数ですが、あとひといきですご教示をお願いします。
けんさんごめんなさい。よかったらもう少しくわしく知りたいです。
元の数値(7桁)が入っているセル番地
そして7ケタ分のセル番地とそこに指定してある数式をコピーしてコメントしていただけませんか?
それで検証しましょう(*^_^*)
がんばりましょうね
ありがとうございます。
セル番地とコピー少し時間をもらってもいいですか?
今夜から出かけます
なるだけ早くコピーしてコメントしますね。
よろしくお願いします。
早速お伝えします。
よろしくお願いします。
繰越金の下
最初の数値入力セルにY80
=IF(AND(K80="",T80=""),"",Y79+K80-T80)
1の位AF45
=INT($Y$80/AF43)
10の位AE45~1000000の位Y45
実際の1セル1数値表示セルAF9・1の位
=IF(AF45=0,"",RIGHT(AF45,1))
10の位AE9~1000000の位Y8まで
です。
これで伝わりますか、教えて下さい。
それとY80の数値を修正するとY81以下がエラーになってしまいます、
重ねてお願いします。
ご説明ありがとうございます。これで解決したかったのですが、ごめんなさい。もう少しお付き合いくださいm(__)m
一緒に考えましょうね。
>繰越金の下
>最初の数値入力セルにY80
>=IF(AND(K80="",T80=""),"",Y79+K80-T80)
Y80に、7桁に分ける元になる数値が入っているのですね。たとえば1234567という数値が入っているとしましょう。
>1の位AF45
>=INT($Y$80/AF43)
>10の位AE45~1000000の位Y45
43行目を作業用セルにしているのですね。
Z43→1000000,AA43→100000,AB43→10000,AC43→1000,AD43→100,AE43→10,AF43→1 という値が入ってるということでよいですか。
結果、AF45には1234567が表示されるでしょう。
この数式を左方向へコピーしていけば、
Z45→1,AA45→12,AB45→123,AC45→1234
AD45→12345,AE45→123456,AF45→1234567 という結果になるでしょう。
ただ、けんさんは、>10の位AE45~1000000の位Y45と書かれていますがY45は余分なような・・
まぁよしとして・・
>実際の1セル1数値表示セルAF9・1の位
>=IF(AF45=0,"",RIGHT(AF45,1))
>10の位AE9~1000000の位Y8まで
>です。
この数式でOK!これを左方向へコピーすればいいですよね。
うまくいってると思うのですが・・
では、「セル1個に1数字7桁が最後まで計算してしまいます。」というセル番地はどこですか?
>これで伝わりますか、教えて下さい。
>それとY80の数値を修正するとY81以下がエラーになってしまいます、
>重ねてお願いします。
Y80は残高欄ですかね。ここには数式が入っているのですよね
=IF(AND(K80="",T80=""),"",Y79+K80-T80)
ということは答えを自動計算させるセルなので、直接数値は入力しないのが原則のような・・
私が勘違いしていたらごめんなさい。よかったらそのあたりを詳しく教えてくれますか?