- ベストアンサー
Excel 日付管理の計算
初めて投稿させて頂きます。 現在、Excelを用いてスケジュール管理表を作成しているのですが、 Excel初心者故、思い通りの表が作成できず、 困り果てております。。 どのような表を作るかと申しますと、 A列、B列には後々、日付または「-」を記入し、 C列にはA又はBの30日後(日祭日関係なく、単純に30日後)を 表示させるように作成したいのです。 詳細には、以下のようなルールの表を作成したいのです。 (1)AとBが空欄であるときは、Cは空欄 (2)Bに日付が入力され、Aが「-」のときは、CはBの30日後を表示 (3)AとB両方に日付が入力されたときは、CはBの30日後を表示 (4)Aに日付が入力され、Bが「-」のときは、CはAの30日後を表示 上記の内容で計算式を作成してみたのですが・・・ =IF(B1<>"", (B1+30),IF(A1<>"",(A1+30),"")) これでは「-」を入力したとき、エラー表示となってしまい、 困り果てております。。 皆様のご教授の程、よろしくお願い申し上げます。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#2です。 > Bに日付が入力され、Aが「-」のときは、CはBの30日後を表示 > の条件ではエラーとなってしまいました。。。 おかしいですね、 私は2002ですが、9つのパターン全てをためしていますが、エラーにはなりませんし正しく30日後が表示されています。 Aが半角「-」でない。Bがシリアル値でないかどうか、 或いは式を手入力しているなら。入力ミスの可能性もあります。 入力された式を、補足にそのままコピペしてみて下さい。
その他の回答 (5)
- naomii
- ベストアンサー率26% (4/15)
次の式ではどうでしょうか。 =IF(LEN(A2)+LEN(B2)=0,"",IF(N(B2)>0,B2+30,IF(N(A2)>0,A2+30,"-"))) ・最初のIF…A2とB2がともに空欄(長さ0の文字列)場合、"" ・次のIF…B2に日付がある場合、B2の数値に30を加える ・最後のIF…B2に日付が無く、A2に日付がある場合、A2の数値に30を加える 式中のN(B2)は、B2セルの内容が数値ならその値、"-"などの文字列なら0を返す関数です。 なお、この式では、A列、B列のどちらもが文字列の場合、C列は"-"となります。。
- k_mori
- ベストアンサー率62% (23/37)
こんにちはー 関数で困っているとのことですがこういうのはどうでしょうか? =IF(AND(A2="",B2=""),"",IF(AND(A2>=0,B2="-"),A2+30,IF(AND(B2>=0,A2="-"),B2+30,IF(AND(A2>=0,B2>=0),B2+30)))) これだとエラー回避してるはずですけど・・・ 一度試してみてください
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 =CHOOSE(((ISNUMBER($A1)*1)+(ISNUMBER($B1))*2)+1,"",$A1+30,$B1+30,$B1+30)
要は、Bに日付データがある時は常にBを使うということで =IF(OR(ISBLANK(A1),ISBLANK(B1),AND(A1="-",B1="-")),"",IF(ISNUMBER(B1),B1,A1)+30) で如何でしょう。 ただし、どらかがブランク、もう一方が日付の場合はブランクになってしまいます。 データが無いときに「-」を入力の必要はないとは思うのですが... 「-」を使うとそれだけチェックする項目が増えて、式が複雑化してしまいます。 「-」を「入れ忘れではないよ」いう意味で使っているならわかりますが...
- higekuman
- ベストアンサー率19% (195/979)
なぜエラーになるのかはお解りでしょうか? B1が空欄じゃないときは、B1に30を足すようになっています。 B1が「-」のときは、空欄じゃないので、「-」に30を足すことになり、その結果エラーになっています。 「-」のときの場合分けもしましょう。
お礼
早期のご回答ありがとうございます。 大変申し訳ありませんが、 計算式をご教授願えませんでしょうか? 全くのExcel初心者で 質問にありました計算も本サイトから探し出して 見つけたもので。。。 申し訳ありませんが、 宜しくお願い致します。
お礼
早期のご回答ありがとうございます。 >「-」を「入れ忘れではないよ」いう意味で使っているならわかりますが... そうなんです。正にvizzarさんのおっしゃる通り、 入れ忘れではないという意味で「-」を入れたいのです。。。 vizzarさんの式で試したところ、 (2)Bに日付が入力され、Aが「-」のときは、CはBの30日後を表示 の条件ではエラーとなってしまいました。。。 大変申し訳ありませんが、再度ご教授お願い申しあげます。