- ベストアンサー
エクセルで日付同日連続
- エクセルで日付同日連続する方法について質問です。B列4行目以降に月の初めを入力すると、同日が連続するようにしたいです。
- 具体的には、日付は月の初めから月末まで連続させたり、週の初めから1週間分を連続させたりしたいです。
- どのような条件を設定すれば、B列4行目以降の日付を連続させることができるでしょうか?エクセル2000を使用しています。
- みんなの回答 (14)
- 専門家の回答
質問者が選んだベストアンサー
回答番号ANo.9,11です。 >n行おきにセルに色をつけるやりかたの=MOD(ROWS(A$2:A2)-1,行数×2)<行数とは又違う意味でしょうか? MOD関数とROWS関数を利用して、周期性を持たせている、という意味においては、一部に同じ原理を利用してはおりますが、全体としては違うものです。 =MOD(ROWS(A$2:A2)-1,行数×2)<行数 は、「先頭の行から数えた行数」を「周期の2倍の数」で割った余りが、「周期の数」以下である場合には色を付け、「周期の数」を超えている場合には色を付けないというものです。 つまり、n行ごとに色を着けたり、着けなかったりを繰り返したい場合において、nの2倍の数の周期性を持たせた上で、1周期の中の前半部分では色を着け、後半部分では色を着けない、という事を行っています。 因みに、私だったら =MOD(ROWS($2:2),n*2)<=n とします。 又、1行目~n行目の範囲は色を着けずに、(n+1)行目~2n行目には色を着ける、という繰り返しを行う場合には、 =MOD(ROWS($2:2),n*2)>n となります。 これに対して、ANo.11で示したB5セルの数式中の B4+(MOD(ROWS($5:5),2)=0) という部分に関してですが、Excelでは、判定式が成り立っている場合には、その判定式が記されている箇所を数値の1と見做して計算し、判定式が成り立っていない場合には、その判定式が記されている箇所を数値の0と見做して計算します。 $5:5の範囲に含まれている行の数は1行ですから、 ROWS($5:5) の計算結果は1となります。 MOD関数は MOD(数値, 除数) の形式で記入する関数で、数値を序数で割った際の余りを求める関数です。 数値の部分に入力されているROWS($5:5)の部分の計算結果が1で、除数には2が入力されていますから、 MOD(ROWS($5:5),2) の計算結果は、1を2で割った時の余りである1となります。 そして、1は0と等しい値ではありませんから、 1=0 という判定は、成り立っていないという事になりますので、 MOD(ROWS($5:5),2)=0 もまた、成り立ってはいない事となりますから、 (MOD(ROWS($5:5),2)=0) の部分は、計算においては数値の0として扱われます。 つまり、 B4+(MOD(ROWS($5:5),2)=0) = B4+(MOD(1,2)=0) = B4+(1=0) = B4+0 = B4 という事で、B5セルには、B4の値に0を加えた値が表示されます。 そして、B5セルをコピーして、B6セルに貼り付けますと、関数はExcelの機能によって、自動的にB6セルに合わせた形に修正されますから、B5セルにおいては B4+(MOD(ROWS($5:5),2)=0) となっていた箇所は、B6セルに貼り付けますと、 =B5+(MOD(ROWS($5:6),2)=0) へと、自動的に書き換えられます。 B5+(MOD(ROWS($5:6),2)=0) = B5+(MOD(2,2)=0) = B5+(0=0) = B5+1 なのですから、B6セルの関数は、B5セルの値に1を加えた数が表示されます。 つまり、この関数は、「5行目から数えた行数」が周期の倍数と等しくなった場合にのみ、「1つ上のセルに入力されている日付」に1日を加算した日付を表示し、それ以外の場合には「1つ上のセルに入力されている日付」と同じ日付を表示させる関数となっています。
その他の回答 (13)
- chiizu2
- ベストアンサー率41% (164/400)
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 条件2,3がよく分かりませんので取りあえず、条件1のみとしています。以下の数式を任意セルの入力、下方向に62行分コピーしてみて下さい。 又、n行分としてい場合、数式内のMOD関数の除数を2からnに変更して下さい。 =IF(MONTH(DATE(YEAR(TODAY()),MONTH(TODAY())+1,0))=MONTH(DATE(YEAR(TODAY()),MONTH(TODAY()),ROUNDUP(ROW(A1)/2,0))),DATE(YEAR(TODAY()),MONTH(TODAY()),ROUNDUP(ROW(A1)/2,0)),"")
補足
早々にご回答ありがとうございます。 アドバイスいただいた式を入力しましたところ いきなり、日付が出てびっくりしました。 >条件2,3がよく分かりませんので取りあえず、条件1のみとしています。 「条件2,日付は週の初め(月曜日)から1週間分(次週の月曜日)。」 ・・・ある月(不特定月)の例えば2週目の月曜日から1週間分を2行ごとに表示させたいです。 ○ 9月5日(月)から1週間分 ○ 10月10日(月)から1週間分 ・・・等々 「条件3,2,の日付は不特定日(但し、月曜日から)です。」 ・・・よく考えたら条件2と同じことですね。 失礼いたしました。 条件3はの日付は不特定日(日曜日から月曜日のいずれか)に訂正いたします。 よろしければアドバイスお願いします。
- yasuto07
- ベストアンサー率12% (1344/10625)
あのさ、たぶんですよ。 日付関数があり、38500とかかいて、日付文字列に変換すると、平成23年5月2日の 用に、日付文字列が選べるんです。38500はエクセルの数字ではありませんよ。 適当に、5桁の算用数字をいれて、年数を合わせてください。 一列に一ヶ月の場合は、一行目に、日付文字列、2行目に、前の数値(1:A1+1)などの、+1の しきをつくり、コピーしていってください。そうすると、1列での日付文字列はすぐ作れます。 問題なのは、同じ日にちを並べながら、ずらしていく場合、その場合でも、同じ日付関数を 直接2ことか、3個ずつ、コピーしていけば、表示するのでは、とおもいます。 やってみてください。
お礼
早々にご回答ありがとうございます。 >日付関数があり、38500とかかいて、日付文字列に変換すると、平成23年5月2日の 用に、日付文字列が選べるんです。38500はエクセルの数字ではありませんよ。 適当に、5桁の算用数字をいれて、年数を合わせてください。 ・・・・表示形式設定でge"年"m"月"d"日"(aaa)にしており、9/1で入力しております。 方式としては最初の行に日付を入れると、自動?記入してくれるといいと 思ってます。
- 1
- 2
お礼
お礼が大変遅くなりました。 補足質問に対して、ご丁寧に説明頂きありがとうございます。 一度には理解できませんが、勉強の参考になります。 No.14さんの場を借りて申し訳ありませんが 今回、ご回答頂いた内容はそれぞれの場で使用(適用)させて頂きます。 ありがとうございました。 ベストアンサーは最後までお付き合いいただきました、回答番号ANo.9,11、14さんにさせて頂きます。