• ベストアンサー

Excel 日付

はじめまして。 Excel 2007を使用しています。 10日締めで、11日~翌月10日までの日付の自動入力の式を教えて頂きたいです。 C4、D4、E4…と横に11日から10日まで31列。 なのですが、2月や4月で31日までない月は、ない日付は空白にして1日、2日と続くようにしたいです。 C4に例えば2014/2/11と入れたら、自動的に入力されるようにしたいのですが、空白が入るようにしたいです。 説明が分かりにくかったら申し訳ないです! よろしくお願いいたします。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.9

>空白になる欄は、11日以降ではなくて、例えば31日がない月はそのない部分を空白にしたいのですが、それは可能でしょうか? 少々面倒な論理を考えれば可能です。 D4=IFERROR(IF(COLUMNS($D4:D4)<21,IF($C4+COLUMNS($D4:D4)>EOMONTH($C4,0),"",$C4+COLUMNS($D4:D4)),EOMONTH($C4,0)+COLUMNS(D4:$X4)),"") D4セルをAG4までコピーしてください。 貼付画像はExcel 2013での検証ですが、Excel 2007でも同様になるはずです。

krkrnan
質問者

お礼

補足への回答ありがとうございます。 2007でも大丈夫でした。完璧です!!

その他の回答 (10)

回答No.11

No.10です。 説明足らずでした。No.10の式をD4セルに貼り付け、AG4セルまでオートフィルして下さい。

krkrnan
質問者

お礼

お礼が遅くなりました。 回答をありがとうございます。 皆さんの回答をみて、いろいろな式があり、とても勉強になりました。ありがとうございました!

回答No.10

以下の式をD4セルに貼り付けて下さい。 =IF(DATE(YEAR($C4),MONTH($C4)+1,1)>$C4+COLUMN()-3,$C4+COLUMN()-3,IF(DATE(YEAR($C4),MONTH($C4)+1,1)<=$C4+COLUMN()-3-(31-DAY(DATE(YEAR($C4),MONTH($C4)+1,1)-1)),$C4+COLUMN()-3-(31-DAY(DATE(YEAR($C4),MONTH($C4)+1,1)-1)),""))

krkrnan
質問者

お礼

回答ありがとうございます。 本当に勉強になります。ありがとうございました!

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.8

No.3・6です。 たびたびごめんなさい。 お詫びのしるしとして代替案をもってきました。 セル配置はNo.3の画像と一緒で、A1セルに西暦年・A2セルに月の数値を入れるとします。 C4セル(セルの表示形式はユーザー定義から d としておく)に =IF(DAY(COLUMN(K1))<=DAY(EOMONTH(DATE($A1,$A2,1),0)),DAY(COLUMN(K1)),"") という数式を入れAG4セルまでフィルハンドルでコピー! ※ 表示されているのは単なる数値でシリアル値ではありません。 こんな感じではどうでしょうか?m(_ _)m

krkrnan
質問者

お礼

お詫びなんて、全くわけわからずの私にありがとうございます。 いろいろな考え方があると勉強になりました。本当にありがとうございました!

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.7

月末の存在しない日は詰めて表示したいということなら、D4セルに以下の数式を入力して右方向にオートフィルして下さい(セルの書式は適宜設定してください)。 =IF(C4="","",IF(AND(MONTH(C4)<>MONTH($C$4),DAY(C4)>9),"",C4+1))

krkrnan
質問者

お礼

ありがとうございました! 皆さんの回答でいろいろな考え方があると勉強になりました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

No.3です。 投稿後気づきました。 大きな勘違いをしています。 >ない日付は空白にして を見逃していましたので、No.3は無視してください。 どうも失礼しました。m(_ _)m

krkrnan
質問者

お礼

とんでもないです! 私も初めて質問を投稿して、質問の仕方が悪かったとおもいます。 ありがとうございました! もう少し回答を受け付けてみます。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

>C4、D4、E4…と横に11日から10日まで31列。 >なのですが、2月や4月で31日までない月は、ない日付は空白にして1日、2日と続くようにしたいです。 C4へは年月日を入力するものとすればD4=C4+1で良いことになります。 但し、翌月11日以降は空白とする必要があるためIF関数で判断します。 D4=IF(C4="","",IF(C4+1>EOMONTH($C4,0)+10,"",C4+1)) 内側のIF関数のEOMONTH関数はEOMONTH(開始日,月数)で月数を0にすると開始日の月末になります。 外側のIF関数は翌月11日以降を空白にするときのエラー防止とC4セルが空白のとき空白にする効果があります。 貼付画像は2014年1月から12月までの検証のために作成したものです。

krkrnan
質問者

補足

検証までしていただきありがとうございます。 説明が悪かったのですが、空白になる欄は、11日以降ではなくて、例えば31日がない月はそのない部分を空白にしたいのですが、それは可能でしょうか? よろしくお願いいたします。

noname#204879
noname#204879
回答No.4

ご希望の形と異なるので“別解”ということで… 添付図参照 1.セル C4 に次の[条件付き書式]を設定    数式が   =MONTH(DATE($A2,$A3,C4))<>$A3    フォント色 白 2.セル C4 に数値 11 を入力して、此れを右方にズズーッと列Wまでドラッグ&ペースト 3.範囲 C3:W4 が選択状態になっていることを確認して、[編集]→[フィル]→[連続データの作成]を実行 4.[増分値]ボックス内を 1 にして、[OK]をクリック 5.範囲 X4:AG4 に左から数値 1、2、3、…、10 を入力 【お断り】上述の手順は Excel 2002 に基づいているので、Excel 2007 に合わせて適宜読み替えて下さい。

krkrnan
質問者

お礼

早速の回答をありがとうございました。 いろいろ試して勉強したいと思います。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! >C4に例えば2014/2/11と入れたら・・・ 4行目に直接日付を入力するのではなく、別セルに月の数値だけを入力する方法はどうでしょうか? 仮に↓の画像のようにA1セルに西暦年・A2セルに月の数値を入力するとします。 画像でへC4セル(セルの表示形式はユーザー定義から d としておきます)に =IF(DATE($A1,$A2,COLUMN(K1))<DATE($A1,$A2+1,11),DATE($A1,$A2,COLUMN(K1)),"") という数式を入れ、AG4セルまでフィルハンドルでコピーしています。m(_ _)m

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

分解した算式です。 C4セル: 入力用 D4セル: =IFERROR(IF(MONTH($C$4)=MONTH(C4+1),C4+1,""),"")        セルW4までコピーします。   → 1日進めて入力月と同じ月なら1日加算します。翌月なら表示しません。      IFERRORは2月用です。 X4セル: =DATE(YEAR($C$4),MONTH($C$4)+1,1)   → 入力月の翌月1日です。このセルは必ず1日になります。 Y4セル: =X4+1        セルAG4までコピーします。   → 今度は無条件に1日進めます。10日までになります。 1つの算式ではありませんが手作業風の算式です。ご参考に。

krkrnan
質問者

お礼

早速の回答をありがとうございました。 Excelを使いこなすのは大変ですが、頑張ってみたいと思います。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>C4に例えば2014/2/11と入れたら D4に =IFERROR(DATEVALUE(TEXT(EDATE($C4,(COLUMN(L4)>31)+0),"yyyy-mm-")&MOD(COLUMN(K4),31)+1),"") と記入、セルの書式設定の表示形式のユーザー定義で d あるいは d日 のように設定、AG4までコピー。 #X4には セルの書式設定の表示形式のユーザー定義で m/d あるいは m月d日 のように設定する

krkrnan
質問者

お礼

早速の回答をありがとうございました。 Excelを使いこなすのは大変ですが、頑張ってみたいと思います。

関連するQ&A