• ベストアンサー

エクセル 日付の月の繰り上がりについて

第2金曜日に次の月に繰り上がるようなyy/mmの表示をさせたく思っています。 下記のようにするにはB列にどんな式を入れればよいでしょうか?(土日含まず) アドイン等を使わない方法があれば宜しくお願いします。 A列 B列 2003/1/9/木 0301 2003/1/10/金 0302 2003/1/14/火 0302 ~~~~~~~~~~ 2003/2/12/水 0302 2003/2/13/木 0302 2003/2/14/金 0303 2003/2/17/月 0303

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

  • ベストアンサー
noname#52504
noname#52504
回答No.2

挙動は#1さんのと一緒ですが、ご参考まで。 B1セル:  =DATE(YEAR(A1),MONTH(A1)+(INT(DAY(A1)/7)+(MOD(WEEKDAY(A1)-6,7)<MOD(DAY(A1),7))>=2),1) として下方にフィル。 ※ INT(DAY(A1)/7)  ⇒日数を7で割った商 MOD(WEEKDAY(A1)-6,7)<MOD(DAY(A1),7)  ⇒日数を7で割った余りの中に、金曜日が含まれるか否か ex. 当日が10日の土曜日  ⇒7日までに1回+直近3日(木,金,土)の中に1回

exceller20
質問者

お礼

分かりやすい解説ありがとうございました。 とても参考になりました。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

#4です。ユーザー関数も大げさかと下記も考えました。 H列に番号を振るとしてH1は301、H2に =IF(A2=DATE(YEAR(A2),MONTH(A2),1)+(WEEKDAY(DATE(YEAR(A2),MONTH(A2),1))<7)*(6-WEEKDAY(DATE(YEAR(A2),MONTH(A2),1))+7)+(WEEKDAY(DATE(YEAR(A2),MONTH(A2),1))=7)*(WEEKDAY(DATE(YEAR(A2),MONTH(A2),1))+6),MAX($H$1:H1)+1,H1) 既回答より長すぎて、これでは失格ですね。 第2金曜日になると1繰り上げることを式にしただけだが。 第2金曜日の捉え方が複雑になるわけです。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

既回答では、式を理解することが相当難しく、エクセル関数の難しい問題の回答の常連の方の回答が多い。 ーー 別の方法(ユーザー関数)でやってみました シートでALT+F11 その画面のメニューで挿入ー標準モジュール 出出た画面に下記貼り付け Function wn(a) f = DateSerial(Year(a), Month(a), 1) n = DateSerial(Year(a), Month(a) + 1, 0) k = 0 For i = f To n If Weekday(i) = 6 Then k = k + 1 '-- If k = 2 Then wn = i Exit Function End If '-- End If Next i End Function ーー シートのA列に日付が入っているとき D列D1でスタート番号 D2に =IF(A2=wn(A2),MAX($D$1:D1)+1,D1) と入れて下方向に式複写。 結果 一部抜粋 2007/1/10 水 301 2007/1/11 木 301 2007/1/12 金 302 2007/1/13 土 302 ーー 2007/2/7 水 302 2007/2/8 木 302 2007/2/9 金 303 2007/2/10 土 303

exceller20
質問者

お礼

ありがとうございました。 エクセルの式だけだと難しいですがプログラムだと分かりやすいですね。この説明でようやく理解できました。

noname#176215
noname#176215
回答No.3

基準となる日を変えると もう少し短くなります。 =DATE(YEAR(A1),MONTH(A1)+(A1>=A1-DAY(A1)-WEEKDAY(A1-DAY(A1)-4,3)+7*2),1)

exceller20
質問者

お礼

どうもありがとうございました。 シンプルになりなんとなく理解できそうです。

noname#204879
noname#204879
回答No.1

B1: =DATE(YEAR(A1),MONTH(A1)+(A1>=DATE(YEAR(A1),MONTH(A1),14-WEEKDAY(DATE(YEAR(A1),MONTH(A1),-4),3))),1)

exceller20
質問者

お礼

早速のご回答ありがとうございました。 複雑で私の頭では理解が難しいですが、使わせてください。

関連するQ&A

  • Excelで飛ばし連番

    Excelで連番をふりたいのですが、下記のようなことは可能でしょうか? A列に曜日、B列に連番なのですが、 土曜日と日曜日は飛ばしたいのです。 連番が1000ほど続くので、何かいい方法はないかと考えています。 宜しくお願いいたします。   A B 1 月  1 2  火  2 3 水  3 4  木  4 5 金  5 6 土 7 日 8  月  6 9 火  7   ・  ・   ・  ・   ・  ・ Excel2002を使用しています。

  • Excelの計算式を教えて下さい。

    下記のような土日を除いた日付の表でセルA11、A12に期首、期末の日付を指定すると、その期間の合計等をセルC11に出るようにしたいのです。 9行以降は行の挿入で新たなデータが追加されます。 どのような式でできるのでしょうか?お教え下さい。 A B C 1 10/01 金 1 2 10/04 月 2 3 10/05 火 5 4 10/06 水 3 5 10/07 木 2 6 10/08 金 1 7 10/11 月 4 8 10/12 火 2 9 10 ------------------------------------ 11 10/05 (期首) 15 (合計=セルC11) 12 10/11 (期末)

  • Excelで1ヶ月分の日付列を設定する方法

    Excelで1ヶ月分の日付列を設定する方法を教えてください。 自分のオフィスでは、毎日の仕事時間を記録する表をExcelで作っています。社員が個人個人で時間を書き込み、1ヶ月分で一枚の表になります。 この表には "日付の列" があるのですが、毎月、この日付の列は自分で書き直さなければならないようになっています。 以下のように並んでいます。(締めが17日なので、18日から始まります。) 18 水 19 木 20 金 21 土 22 日 23 月 24 火 25 水 26 木 27 金 28 土 29 日 30 月 31 火 1 水 2 木 3 金 4 土 5 日 6 月 7 火 8 水 9 木 10 金 11 土 12 日 13 月 14 火 15 水 16 木 17 金 初日の18を 2006/10/18 と入れたら、日付と曜日が自動的に並ぶようにしたいのですが、いくつか問題があって、うまく設定できずにいます。 1. 行を変えてはいけない。 2. 2月や4月など31日まで無い月は、その行を空白とする。 3. すべての社員のPCに分析ツールがインストールされているわけではなく、EDATE関数が使えない。 4. マクロを含めたくない。 5. シートは1枚で。 なにか良いアイデアないでしょうか? 足し算・引き算でうまくいかなければ、やはりマクロしかないのでしょうか?

  • エクセル2010 列による条件付き書式

    宜しくお願いします。 ==================================================    1  2 3 4 5 6 7 8 9 10 11 12 13 14    月 火 水 木 金 土 日 月 火 水 木 金 土 日 予定 時間  ==================================================== 上記のような表があり、土曜と日曜の日付だけを黒塗りしたいです。 行であればデータのフィルタでできると思うのですが 列でフィルタをできるのでしょうか? 土日の部分だけ黒塗り(灰色の網掛け)、またはフィルタを掛けて 土日だけ表示させたいです。 簡単な方法があれば教えてください。 宜しくお願いします。

  • Excel 配列数式の応用?

    先の質問で、下記のことができるようになりました。 下記のような土日を除いた日付データでセルA11、A12に期首、期末の日付を指定すると、その期間の合計がセルC11に{=SUM(IF((A1:A9>=A11)*A1:A9<=A12),C1:C9,""))}の式で出せるようになりました。 平均もSUMをAVERAGEに変えて出せるのですが、 期間中のマイナスのデータ個数 =COUNTIF(C3:C9,"<0") のような値を 期首、期末の日付の指定で求める式は、どのような式でできるのでしょうか?お教え下さい。 ( 9行以降は行の挿入で新たなデータが追加されます。A列・・日付 B列・・曜日 C列・・数値等) 列行 A  B  C  1 10/01 金 3 2 10/04 月 0 3 10/05 火 空欄 4 10/06 水 -2 5 10/07 木 文字 6 10/08 金 -1 7 10/11 月 4 8 10/12 火 2 9 10 ------------------------------------ 11 10/04 (期首) 2 (←セルC11にマイナスのデータ数を出したい) 12 10/11 (期末)

  • エクセル関数で時間を別の表に分ける

    いつもお世話になっております。 下記のことはエクセル関数で、どうしたらできるのか教えてください。 Sheet1    A    B    C      D  1 あああ 大阪  月・火・水 10:00-11:00 2 いいい 大阪  月     10:00-12:00 3 ううう  東京  火・水   11:00-12:00 4 えええ 福岡  水     11:00-12:00 5 おおお 福岡  木     15:00-16:00 シート1には【A】列に名前 【B】列には地名 【C】列には曜日、【D】列には時間が入っています。 シート1の表を参考にシート2は下記のような表をどう入力すればいいですか?    A          B         C         D         E         F         G   1  月        月         火           火          水        水          木  210:00-11:00 10:00-11:00  10:00-11:00   10:00-11:00  10:00-11:00   10:00-11:00    5:00-16:00 3 大阪                  大阪        東京        大阪       東京        福岡 4 あああ                 あああ        ううう      あああ      ううう      おおお 5 いいい 6 7 811:00-12:00 11:00-12:00  11:00-12:00   11:00-12:00    11:00-12:00   11:00-12:00 9 大阪                              東京         福岡      東京 10いいい                           ううう         えええ     ううう とっても見にくい参考で申し訳ございません。 よろしくお願いします。

  • EXCELの事で質問します。

    EXCELの事で質問します。 EXCELで下記の様なデータがありまして、それを結合して1つのセルにしたいのですが、上手くいきません。 ----------------------------   列1         列2   2010/03/31     3 ---------------------------- 列1は日付で、列2は文字列なわけですが、これを、 列2(3) + ”-”+ 列1(yy/mm)    つまり、3-1003にしいたのですが、=B2&"-"&A2 といった式?にすると、日付がシリアル値?になってしまい、 1-40268 といった値になってしまいます。 分かり難い文章で恐縮ですが、この様な場合はどういった式にすれば良いのでしょうか? 似たような質問が無いか探したのですが、思うように見つかりませんでした。 ご教授下さいませ。

  • エクセル2003の表示を教えてください。

    エクセル2003の表示を教えてください。 A1セルに2010年7月1日B1セルに数式で=CHOOSE(WEEKDAY(A25,1),"日","月","火","水","木","金","土")により曜日を表示してます。C1に土日だったら〇、そうでなければスペースとなる式を教えていただけますでしょうか。 sum関数しかわからないレベルの知識しか持っておりません。 どうぞよろしくお願いいたします。

  • エクセルで日付同日連続

    B列4行目以降 (同日が2行連続した日付)に、例えば月の初めを入力すると 下記のように同日が連続(ここでは2行分)させる方法はどのようにしたら よろしいでしょうか? 1,日付は月の初めから月末まで。 2,日付は週の初め(月曜日)から1週間分(次週の月曜日)。 3,2,の日付は不特定日(但し、月曜日から)です。  等々といろいろ条件が出来てしまいますが、 ここでは1,から3,を行いたいです。 B列4行目以降の日付 H23年9月1日(木) H23年9月1日(木)・・・・上行と同日 H23年9月2日(金) H23年9月2日(金) H23年9月3日(土) H23年9月3日(土) H23年9月4日(日) H23年9月4日(日) H23年9月5日(月) H23年9月5日(月) H23年9月6日(火) H23年9月6日(火) H23年9月7日(水) H23年9月8日(木) H23年9月8日(木)    ・    ・    ・ エクセル2000です。 3行分など自由行にしたい場合は、改めて質問させていただく方がよろしいいでしょうか? 初心者ですがよろしくお願いします。

  • エクセル2003 日付を入れると曜日が入る関数

    A列に日付を入れると B列に曜日(日/月/火の様な)が入るような関数式はありますか。 教えてください。 宜しくお願い致します。

専門家に質問してみよう