• ベストアンサー

Excel2007 日付関数について教えて下さい。

A1に例えば「2012/5/22」と入力すると B2に翌々月10日の日付を入力するため 関数「=DATE(YEAR(A1),MONTH(A1)+2,10)」 と関数を入れました。 A1に日付が入れば翌々月10日の日付を返してくれるのですが A1が空白だと「1900/3/10」の値を返してきます。 日付が入っているとややこしいので消すもしくは日付じゃない値を返すことは出来ないでしょうか よろしくお願いします。

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

  • ベストアンサー
  • c_youji
  • ベストアンサー率24% (40/162)
回答No.1

先頭にif文を入れて、A1セルが空欄の場合には違う処理をさせてはどうですか。

Eccentrici
質問者

お礼

=IF(A1="","",DATE(YEAR(A1),MONTH(A1)+2,10)) でバッチリできました! 有難うございました。

関連するQ&A

  • 【Excel2000】土・日曜日を考慮した日付+α

    現在セルB1には『A1に入力した日の月末日付+月末休日の場合は前日』が出るようにしてあります。 セルA1 = 日付 セルB1 = IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0))=1,(DATE(YEAR(A1),MONTH(A1)+1,0))-2,IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0))=7,(DATE(YEAR(A1),MONTH(A1)+1,0))-1,DATE(YEAR(A1),MONTH(A1)+1,0))) ここに『A1が25日以降の場合は翌月20日+翌月20日が休日の場合は後日』という設定を加えたいのですが、可能でしょうか?  ・A1 = 2011/07/10 → (結果) B1 = 2011/07/29(金)  ・A1 = 2011/07/25 → (結果) B1 = 2011/08/22(月) どうしても不可能であれば別セル(C1など)でも構いません。

  • 日付を表示

    H3に日付を入力してます。 B6にこの関数を入力してます。 =IF(DATE(YEAR($H$3),MONTH($H$3),1)*DATE(YEAR($H$3),MONTH($H$3),-5+ROW()),DATE(YEAR($H$3),MONTH($H$3),-5+ROW()),"") これをB6~↓にコピペしてます。 なんだか違う気もしますが、無事に表示されてます。 やりたい事は、月によって日数が変わるとき例えば 29日や31日など この時現在は空いたセルによく月の1日や2日が表示されるのを空白にしたいのです。 後上記の関数以外の用方法がありますか! ちなみにC列には、WEEKDAY関数で曜日を表示させてます。 おねがいします。

  • EXCEL: 日付を残す関数

    どなたか教えてください。 伝票明細に度々同じような編集を加えるので、自動的に編集した日付を履歴として残すようにしたいのです。 ↓ 明細行の一番左側(A5)に、プルダウンリスト(入力規則)から「入庫」または「出庫」を選ぶと、自動的にとなりのセルにその日の日付が入力されるようにする。 私が考えたのは、次のとおり。 (B5)にひとまずToday関数を入れる。→(C5)に次の関数を入れる。 C5=IF(OR(A5="入庫",A5="出庫"),B5,"") けど、これじゃ値ではなく数式をもってきちゃうので、別な日に開くと日付が更新されてしまうのです。 どうすればよいですか?よろしくお願いします。

  • エクセルの日付の求め方

    いつもお世話になります。 直近の締め日の求め方の質問です。 例えばA1に3/15と入力したらB1に2/20を求めたいのです。 =DATE(YEAR(A1),MONTH(A1)-1,20) としてみたのですが、3/1-3/20までは2/20と求められるのですが、 3/21-3/31に対して3/20と求めたいのに2/20となってしまいます。 IF関数を組み合わせれば良いのかもしれませんが、 わかりません。 宜しくお願いします。

  • ExcelVBAを使った日付の求め方

    ExcelVBAでの質問です。 セルA1に日付2005/07/25と入力されています。 セルB1にその一年後を求めた値を返したいのです。 通常では =DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)) の式で求める事が出来るのですが、VBAで書こうとするとエラーがでてしまいます。 どのようにすれば良いか教えてください。 ※VBAについては殆ど初心者の為、詳しく教えて頂けると有難いです。 宜しくお願いいたします。

  • Excel関数で任意の日付を表示させるには?

    Excel関数を用いて、任意の日付を表示させる方法を 教えていただけますか? 例えば、今日からちょうど1年半後の日付を 知りたい場合、セルA1に今日の日付 20040829 と入力すると、セルB1に 20060229 と表示させるような関数は、何をどのように 使えば良いのでしょうか? date という関数を試してみたのですが、 「日」は加算できるのですが、 「年」や「月」に+1、+6と入力しても、 「日」の方に加算されてしまい、 うまくいかないんです。 良い方法を御存知の方がいらっしゃいましたら、 ご回答、よろしくお願いします。

  • 日付データからの取り込み

    セルA1に日付が入力されています。  2008/01/05 セルB1に 0801 という年月の4桁のみ表示させたいのですがうまくいきません。B1に関数でYEAR(A1)&MONTH(A1)とさせてみましたが20081となってしまいます。書式設定等で解決できないのでしょうか。または他の関数で出来ますでしょうか。お知恵をお貸しください。   

  • Excel VBAで「date」関数を使いたい

    VBAを使用して年月日を入力してます。 セルに表示だけなら Year & "/" & Month… とかでもいいんですが、その日付で計算を行いたいんです。 何日足す、とか。。 それでExcelで使える Date(Year,Month,Day) を思い出したんですが、VBAではエラーになってしまいました。 Application.WorksheetFunction.Date(Year, Month, Day) や Application.Date(Year, Month, Day) もダメでした。 どのようにしたら入力した日付で計算が行えるでしょうか?

  • If関数に2つ条件をつける

    If関数を使って日付の月と翌月を記載するという関数を作ったのですが、 これにプラス4日締めの条件をつけたいのです。 日付が4日以降の場合は翌月と翌々月にするという関数はどのように作るのでしょうか。 =(MONTH(A1)&","&IF(MONTH(A1)+1<13,MONTH(A1)+1,MONTH(A1)-11))

  • 構造体の自作関数内で入力した値の返し方

    こんばんはm(_ _)m C言語の構造体に関する質問です。 (当方初心者なので用語等見苦しい点があると思いますがご了承&指摘をお願いします。) 日付を元号に直したりする構造体のプログラムでmain関数ではなく自作関数内で値を入力する問題を解いていまして… #include<stdio.h> typedef struct{ int year; int month; int day; }date; date put_date(date x) /*ここで日付を入力*/ { date x;       printf("年:"); scanf("%d",x.year); printf("月:″); scanf("%d",x.month); printf("日:"); scanf("%d",x.day); return x; } int main(void) { date x; x.year=0; /*問題では関数外で宣言した変数では足りないため         に他の自作関数で変数を使いまわすために必要な処         理で初期化しました。*/ put_date(x);     gen(x); /*西暦の日付を元号で表す自作関数でここへput_date        で取得したx,y,zを送りたいのですがmainに来た時点        でput_dataで入力した値が出ませんでした。(元号に        直す関数は省略いたしました)*/ } put_date内でprintfしましたところx,y,zの値が入力した通りに出ましたが、main内ではx.year=0,x.month=12,x.day=0という値になってしまいます。 put_dateで入力した値をmain関数内だけでなく他の自作関数内でも使用したいのですがどうすればよろしいでしょうか?

専門家に質問してみよう