dポイントプレゼントキャンペーン実施中!

このようなスタイルの表で、緑色の部分を変更するだけでAの曜日を元にその月の日にちが自動で入力される表が作りたいです
※1日が水曜日から始まる月は「月・火」空白

日曜日と月曜日の間は集計を取るため一行空きます
急ぎなのですがどなたがお助け願います!

「エクセルで曜日から日付を自動入力できる表」の質問画像

質問者からの補足コメント

  • 説明不足でした、自動計算したいのは黄色の「C」列です。

      補足日時:2020/06/03 20:56

A 回答 (4件)

B1は「2002」だけ入力して、セルの書式設定で「yyyy"年"」


C1は「6」だけ入力して、セルの書式設定で「m"月"」
として下さい。

①1日目の処理--------
C2 =IF(WEEKDAY(DATE($B$1,$C$1,1),2)=ROW()-1,1,"")
C3 =IF(WEEKDAY(DATE($B$1,$C$1,1),2)=ROW()-1,1,IF(C2="","",C2+1))

C3の式をC8までコピペ

②2~4周目の処理-------- (空欄が生じない週)
C10 =C8+1
C11 =C10+1

C11の式をC16までコピペ

C10~C16までの式を、C18~C24、C26~C32にコピペ

③末日の処理--------
C34 =IF(C32="","",IF(MONTH(DATE($B$1,$C$1,C32+1))<>$C$1,"",C32+1))
C35 =IF(C34="","",IF(MONTH(DATE($B$1,$C$1,C34+1))<>$C$1,"",C34+1))

C35の式をC40までコピペ

C34~C40までの式を、C42~C48にコピペ

----------------------
ちょっと手間かもしれないですが、これでできます。
月初と月末の処理がExcelの日付の扱いに慣れていないと難しいですね。

1個の式だけで作ると、かなり煩わしい式になるので、
分離して式を設定しました。

お試し下さい。
    • good
    • 0
この回答へのお礼

なるほど!

C2 =DATE($B$1,$C$1,1)
C3 =IF(C2="","",IF(MONTH(C2+1)=$C$1,C2+1,""))
C3以降空白がない週はコピー、末日は条件付き書式で消して対応していたのですが
日の自動移動がこの式では出来なかったのでとても助かりました!
本当にありがとうございます!

お礼日時:2020/06/03 22:18

こんばんは!



一例です。
↓の画像で
B1セル → セルの表示形式 → ユーザー定義から 0年 とし 2020 と数値のみ入力している
C1セル →   同上    →    同上    0月 とし 6 と数値のみ入力
D1セル → セルの表示形式は mmm とし 
=DATE(B1,C1,1)
という数式を入れその月の初日(1日)のシリアル値にしています。

最後にC2セル(セルの表示形式はユーザー定義から d としている)に
=IF(A2="","",IF(MONTH(D$1-WEEKDAY(D$1,2)+COUNTA(A$2:A2))=C$1,D$1-WEEKDAY(D$1,2)+COUNTA(A$2:A2),""))

という数式を入れフィルハンドルで下へコピーすると
画像のような感じになります。

※ 場合によっては最大6週ある月もあるので、
A列は6週分あった方がいいかも・・・m(_ _)m
「エクセルで曜日から日付を自動入力できる表」の回答画像4
    • good
    • 1

まず、該当月の初日の曜日が何曜日かを調べる。

(質問の例では2020年6月1日)
そして、
 月曜日なら、C2セルには「1」
 火曜日なら、C2セルには「0」
 水曜日なら、C2セルには「-1」
 木曜日なら、C2セルには「-2」
…の値が入るように数式を組み上げる。
あとは、該当年と該当月の値をDATE関数を用いて「シリアル値」に変換する。
そして「セルの表示形式」で「d」とするか、TEXT関数で表示形式を指定("d")する。
(2020年6月0日は2020年5月31日、2020年6月-1日は2020年5月30日…になります。必要に応じて表示しないなどの処置をしてください)

そんだけですね。

・・・
考え方を示しましたので、よく考えて作業してみてください。
WEEKDAY関数について調べてみましょう。きっと幸せになれると思います。
あとは算数です。


・・・余談・・・
たぶん、質問者さんは「代わりに数式を作ってください」と【作業依頼】をしているのだろうと思うのですが、
ここはQ&Aサイトですので、【作業依頼】は受けられません。
その代わりに自分で問題を解けるようになるアドバイスを貰う場所と思ってください。

なお、上の説明が分からなければ、何が分からないのかを「お礼」または「補足」に書いてくださると、詳細な説明をしますよ。
    • good
    • 0

曜日だけ入ればいいのなら・・・



実際の入力値がB1「2020年」、C1「6月」であるなら、

A2
=IF(C3="","",TEXT(DATE(SUBSTITUTE($B$1,"年",""),SUBSTITUTE($C$1,"月",""),C3),"aaa"))


実際の入力値がB1「2020」、C1「6」であるなら、

A2
=IF(C3="","",TEXT(DATE($B$1,$C$1,C3),"aaa"))


後は下方向へコピー
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!