- ベストアンサー
Excel 日付
はじめまして。 Excel 2007を使用しています。 10日締めで、11日~翌月10日までの日付の自動入力の式を教えて頂きたいです。 C4、D4、E4…と横に11日から10日まで31列。 なのですが、2月や4月で31日までない月は、ない日付は空白にして1日、2日と続くようにしたいです。 C4に例えば2014/2/11と入れたら、自動的に入力されるようにしたいのですが、空白が入るようにしたいです。 説明が分かりにくかったら申し訳ないです! よろしくお願いいたします。
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (10)
- kero1192kero
- ベストアンサー率33% (3/9)
No.10です。 説明足らずでした。No.10の式をD4セルに貼り付け、AG4セルまでオートフィルして下さい。
お礼
お礼が遅くなりました。 回答をありがとうございます。 皆さんの回答をみて、いろいろな式があり、とても勉強になりました。ありがとうございました!
- kero1192kero
- ベストアンサー率33% (3/9)
以下の式を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)),""))
お礼
回答ありがとうございます。 本当に勉強になります。ありがとうございました!
- tom04
- ベストアンサー率49% (2537/5117)
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
お礼
お詫びなんて、全くわけわからずの私にありがとうございます。 いろいろな考え方があると勉強になりました。本当にありがとうございました!
- MackyNo1
- ベストアンサー率53% (1521/2850)
月末の存在しない日は詰めて表示したいということなら、D4セルに以下の数式を入力して右方向にオートフィルして下さい(セルの書式は適宜設定してください)。 =IF(C4="","",IF(AND(MONTH(C4)<>MONTH($C$4),DAY(C4)>9),"",C4+1))
お礼
ありがとうございました! 皆さんの回答でいろいろな考え方があると勉強になりました。
- tom04
- ベストアンサー率49% (2537/5117)
No.3です。 投稿後気づきました。 大きな勘違いをしています。 >ない日付は空白にして を見逃していましたので、No.3は無視してください。 どうも失礼しました。m(_ _)m
お礼
とんでもないです! 私も初めて質問を投稿して、質問の仕方が悪かったとおもいます。 ありがとうございました! もう少し回答を受け付けてみます。
- bunjii
- ベストアンサー率43% (3589/8249)
>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月までの検証のために作成したものです。
補足
検証までしていただきありがとうございます。 説明が悪かったのですが、空白になる欄は、11日以降ではなくて、例えば31日がない月はそのない部分を空白にしたいのですが、それは可能でしょうか? よろしくお願いいたします。
ご希望の形と異なるので“別解”ということで… 添付図参照 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 に合わせて適宜読み替えて下さい。
お礼
早速の回答をありがとうございました。 いろいろ試して勉強したいと思います。
- tom04
- ベストアンサー率49% (2537/5117)
- nishi6
- ベストアンサー率67% (869/1280)
分解した算式です。 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つの算式ではありませんが手作業風の算式です。ご参考に。
お礼
早速の回答をありがとうございました。 Excelを使いこなすのは大変ですが、頑張ってみたいと思います。
- keithin
- ベストアンサー率66% (5278/7941)
>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日 のように設定する
お礼
早速の回答をありがとうございました。 Excelを使いこなすのは大変ですが、頑張ってみたいと思います。
お礼
補足への回答ありがとうございます。 2007でも大丈夫でした。完璧です!!