goo blog サービス終了のお知らせ 

パソコンカレッジ スタッフのひとりごと

パソコンスクールのスタッフが、
初心者から上級者まで役立つ情報をお伝えします。

条件によって残高欄の表示内容を変える(Excel)

2009-10-07 09:34:03 | エクセル
おはようございます。

今日は生徒さんからの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りん

コメント (18)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 日付を一気に5ヶ月後に更新す... | トップ | なぜか罫線が表示されない謎... »
最新の画像もっと見る

18 コメント

コメント日が  古い順  |   新しい順
帳簿の件 (けん)
2009-10-07 11:39:31
こんにちは、
お手数掛けます。
今日家に帰って早速実行してみます。
ありがとうございました。


返信する
はじめまして。 (momosenpai)
2009-10-07 17:42:51
エクセルは始めると面白いですよね。
私の場合は、あまり進歩しませんけど。^_^;
大抵は在庫管理が主なので、MOD関数を使っています。
ひと箱12個入りで、それから出た物を引くと残りは何箱となん個あるかって奴です。(笑)
返信する
けんさんへ (mihoりん)
2009-10-08 09:18:01
けんさん 読んでいただけてうれしいです。

うまくいきますように(*^_^*)
返信する
momosenpaiさんへ (mihoりん)
2009-10-08 09:21:24
momosenpaiさんコメントありがとうございます。

なるほど。おもしろいですね。今度生徒さんへの課題で使わせていただいちゃおうかな(*^_^*)
返信する
セルの件 (けん)
2009-10-08 14:18:36
mihoりんさん上手くいったのは入ったのですが、最初に教えてもらったセル1個に一文字の所が上手く行きません。最初のデータは数字の入った処だけ上記の様に出来たのですが、セル1個に1数字7桁が最後まで計算してしまいます。
お手数ですが、あとひといきですご教示をお願いします。
返信する
けんさんへ (mihoりん)
2009-10-08 18:10:30
こんにちは

けんさんごめんなさい。よかったらもう少しくわしく知りたいです。

元の数値(7桁)が入っているセル番地
そして7ケタ分のセル番地とそこに指定してある数式をコピーしてコメントしていただけませんか?

それで検証しましょう(*^_^*)

がんばりましょうね
返信する
帳簿の件 (けん)
2009-10-09 17:16:42
mihoりんさん
ありがとうございます。
セル番地とコピー少し時間をもらってもいいですか?
今夜から出かけます
なるだけ早くコピーしてコメントしますね。
よろしくお願いします。

返信する
けんさんへ (mihoりん)
2009-10-09 19:13:03
お待ちしています。いってらっしゃい(*^_^*)
返信する
おねがいします (けん)
2009-10-12 10:56:42
mihoりんさんこんにちは、
早速お伝えします。
よろしくお願いします。

繰越金の下
最初の数値入力セルに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以下がエラーになってしまいます、
重ねてお願いします。




返信する
けんさんへ (mihoりん)
2009-10-13 13:52:16
こんにちはけんさん。
ご説明ありがとうございます。これで解決したかったのですが、ごめんなさい。もう少しお付き合いください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)

ということは答えを自動計算させるセルなので、直接数値は入力しないのが原則のような・・

私が勘違いしていたらごめんなさい。よかったらそのあたりを詳しく教えてくれますか?
返信する

コメントを投稿

エクセル」カテゴリの最新記事