こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルでの関数教えてください

今、関数を使って表を作っていますが、うまくいかないので教えてください。

日々数字を入力した表を月末に報告するのですが、報告書にはルールがあり、1月に30を超えた場合その日以降は空欄にしなければならないのです。
私の考えた報告書は、日々の入力表と同じものを別のシートに作成し、前日までの合計が30に達していなければ当日入力した数字を表示するというものです。

=IF((SUM(1日:前日))<=30,当日の数字,"")
この計算式でばっちり!と思っていたら、例えば前日までで29のときに当日が2以上の数字がはいると29までしか集計できないことに気づいてしまいました。

昔々、関数を勉強した(ってほどではないんですけど・・・)ときには、IFをたくさんつけて条件を増やした記憶があるのですが、どのようにつなげていけばいいのかすっかり忘れてしまいました。
この表の提出期限は明日の朝一番なのですが、手元に参考書もなく途方にくれています。

日々入力するする数字は0~3までなのですが、いい計算式がありましたらぜひ教えてください。

投稿日時 - 2003-08-13 02:14:30

QNo.626557

すぐに回答ほしいです

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

=IF((SUM(1日:当日))<=30,当日の数字,IF(30-SUM(1日:前日)>=0,30-SUM(1日:前日),0))

でしょう!

最初のIFで当日まで合計して、30との差分を出すとき(後ろのIF)では前日までの合計を使う事に注意。

投稿日時 - 2003-08-13 04:11:14

お礼

ご回答ありがとうございます。

うまく表示されました!
無能な私にも意味がよくわかる計算式です。

おかげさまで、無事表を作成することができました。
また別の報告書の書式も頼まれてしまいましたが・・・。
またわからないことがあったら教えてください。

投稿日時 - 2003-08-13 19:38:02

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.7

#4のお礼の例で
A3に
==IF(A2<=5,A2,5)
B3に
=IF(SUM($A$2:B2)<=5,B2,IF(SUM($A$2:A2)>=5,0,5-SUM($A$2:A2)))
C3より右列は式を+ハンドルを引っ張って複写する。
B3だけは別にせざるを得ないところがミソでしょうか。
結果はA3:F3は
201110

投稿日時 - 2003-08-13 07:02:20

お礼

ご回答ありがとうございます。

こういう方法もあるのですね。
計算式は結構奥が深いものなのですね。
少し頭が良くなった気がします。

基本的にyasinomisenzaiさんの式で作成させていただきましたが、一箇所だけimogasiさんの計算式を入れていることは、私だけの秘密です。

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

投稿日時 - 2003-08-13 19:44:16

ANo.5

これではどうでしょう?(意地になってきました^^;)

各日の報告数を計算する式として、
~~~~~~~~~~~~~~~~~~~~~~~~
=IF(SUM(1日の実施数:当日の実施数)>30,IF(SUM(1日の実施数:前日の実施数)<30,30-SUM(1日の実施数:前日の実施数),0),当日の実施数)

投稿日時 - 2003-08-13 04:02:02

お礼

たびたびありがとうございます。

入力してみたのですが、エラーが出てしまいました。
何とか表は完成させることができました。
ご協力感謝いたします。

投稿日時 - 2003-08-13 19:31:18

ANo.4

#1のものです。

ちょっと勘違いかもしれませんが、

前日までの合計+当日=当日までの合計→表示

27+0=27→空欄
27+1=28→1
27+2=29→2
27+3=30→3

28+0=27→空欄
28+1=28→1
28+2=30→2
28+3=31→2

29+0=29→空欄
29+1=30→1
29+2=31→1
29+3=32→1

ということでしょうか?
であれば、以下のような式になるのかと思います。

=IF((SUM(1日:当日))>30,30-(SUM(1日:当日)),IF(当日=0,"",当日の数字))

投稿日時 - 2003-08-13 03:23:28

お礼

なんどもありがとうございます。
日付の欄には合計は入りません。

たとえば欄が少ないので、MAXが5だとすると

日付→ 1 2 3 4 5 6 計
実施→ 2 0 1 1 2 1 7
報告→ 2 0 1 1 1 0 5

というふうになってほしいのです。
混乱させてしまい申し訳ございません。

投稿日時 - 2003-08-13 03:47:15

=IF((SUM(1日:前日))<=30,当日の数字,IF(当日の数字=0,"",1))

で出来そうですか?

投稿日時 - 2003-08-13 03:10:52

お礼

こんな時間にアドバイスありがとうございます。
残念ながら、日々の入力どおり表示されてしまいました。
でも、なんとなく先が見えそうな気がします。

このままでは明日の報告どころか、出社も危うい状況なので、締め切りを午後に伸ばしてもらうことにします。
こんなに大変だとは思いませんでした。
引き続きアドバイスお願いいたします。

投稿日時 - 2003-08-13 03:37:54

書式メニューに「条件付き書式」というのがあると思います。

そこで、セルの値が30以上だったら文字の色を白にする、とかしてしまえばいいのでは?

急ぎだったら地道に手で作るのが近道かもしれませんね。

投稿日時 - 2003-08-13 02:26:52

お礼

深夜にご回答ありがとうございます。

明日提出するのは報告書ではなく、この表自体なのです。
作業をしている社員に配布し、今月の報告に使用してもらうというものです。
結構むずかしいものなのでしょうか?

投稿日時 - 2003-08-13 02:47:34

ANo.1

間違っていたらすみません。

>前日までの合計が30に達していなければ当日入力した数字を表示する

のであれば、

=IF((SUM(1日:前日))>30,"",当日の数字)

でだめですかね?

投稿日時 - 2003-08-13 02:25:06

お礼

早速の回答ありがとうございます。
私の説明が少し悪かったようで申し訳ありません。

当日を足しても30未満であれば入力した数字そのままでいいのですが、前日までが29で当日が2だった場合は1と表示できるようにしたいのです。
もちろん0のときは空欄、1の場合は1、3の場合も1となるようにできればいいのですが・・・。

投稿日時 - 2003-08-13 02:38:55

あなたにオススメの質問