![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
エクセルで11日から翌月10日までの横方向のスケジュール表があります。
この表を日曜から始まるカレンダー形式にする方法を教えてください。
エクセルのA1に数字で11、B1に12、C1に13と日付が入力されています。今月は30日でT1が30、AD1が10となりますので同じ数字は入らないことになります。日付の数字だけで月の数字はありません。
A2は曜日で土、以降B2が日、C2が月・・・・の文字列
A3からは予定事項(A)が入力されており、空欄もあります
A4からは予定事項(B)が入力されており空欄はありません。
日曜から始まるカレンダー表になるように手作業で作っていますが、関数か、マクロで簡単に作る方法を教えてください。
曜日を基準にして配置すればいいのだろうと思っていますが、丸投げのようになって恐縮ですが、よろしくお願いします。
サンプルではカレンダーに罫線が入っていますが、これは後から手作業でもいいです。
![「エクセルのスケジュール表からカレンダーを」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/2/174657_552790aa27c52/M.jpg)
No.3ベストアンサー
- 回答日時:
No.2です。
たびたびごめんなさい。
投稿後思ったのですが、アップした画像を見ると各行にわざわざ「曜日」を入れる必要はないように思います。
↓の画像のように1行目(7行目)に曜日を入力しておけばその列は○曜日というのは判断できますので、
各週は3行使用するだけで良いのではないでしょうか?
↓の画像の場合の数式を載せておきます。
1行目~3行目は前回と同じです。
B8セルに
=IF(COUNTIF($2:$2,DATE($A$1,$C$1,0)-WEEKDAY(DATE($A$1,$C$1,0))+COLUMN(H1)+IF(WEEKDAY($A$2)<5,7)+7*(ROW(A3)/3-1)),DATE($A$1,$C$1,0)-WEEKDAY(DATE($A$1,$C$1,0))+COLUMN(H1)+IF(WEEKDAY($A$2)<5,7)+7*(ROW(A3)/3-1),"")
B9セルに
=IF(B8="","",INDEX($4:$4,,MATCH(B8,$2:$2,0))&"")
B10セルに
=IF(B8="","",INDEX($5:$5,,MATCH(B8,$2:$2,0))&"")
と数式を各々入れておき、B8~B10セルを範囲指定 → B10セルのフィルハンドルでH列までコピー!
そのまま(3行が範囲指定されている状態で)H10セルのフィルハンドルで下へ3行ずつコピー!
これで画像のような感じになります。
※ あくまで私的感覚ですが、
こちらの方が少しすっきりしているように思われます。m(_ _)m
![「エクセルのスケジュール表からカレンダーを」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/9/667667_5527c9787fdef/M.jpg)
tom04 様 ありがとうございました。お蔭様で解決しました。
わざわざ改良版まで教えていただき助かりました。
おっしゃるように大変見栄えが良くなりますね、気づきませんでした。
大切に使わせていただきます。
簡単で恐縮ですが、お礼申し上げます。
No.2
- 回答日時:
こんばんは!
必ず11日から始まる1ヶ月のカレンダーを作成すればよい訳ですよね?
一案です。
シリアル値で考えた方が何かと便利ですので、↓の画像のように西暦年と月の数値を入れるセルを設けておきます。
画像ではA1セルに「西暦年」・C1セルに「月」の数値をそれぞれ入力するとします。
A2セル(セルの表示形式はユーザー定義から d としておきます)に
=IF(DATE($A1,$C1,COLUMN(K1))<EDATE(DATE($A1,$C1,11),1),DATE($A1,$C1,COLUMN(K1)),"")
A3セルに
=IF(A2="","",TEXT(A2,"aaa"))
という数式を入れます。
A2・A3セルを範囲指定 → A3セルのフィルハンドルで右へ(AE列まで)コピー!
これで次の月の10日までのカレンダーが表示されます。
(4行目・5行目はご自身で予定なりを入力します)
次にB8セルに
=IF(COUNTIF($2:$2,DATE($A$1,$C$1,0)-WEEKDAY(DATE($A$1,$C$1,0))+COLUMN(H1)+IF(WEEKDAY($A$2)<5,7)+7*(ROW(A4)/4-1)),DATE($A$1,$C$1,0)-WEEKDAY(DATE($A$1,$C$1,0))+COLUMN(H1)+IF(WEEKDAY($A$2)<5,7)+7*(ROW(A4)/4-1),"")
B9セルに
=IF(B8="","",TEXT(B8,"aaa"))
B10セルに
=IF(B8="","",INDEX($4:$4,,MATCH(B8,$2:$2,0))&"")
B11セルに
=IF(B8="","",INDEX($5:$5,,MATCH(B8,$2:$2,0))&"")
という数式をそれぞれに入れます。
(この画面から各セルにコピー&ペーストの方が簡単だと思います。)
最後にB8~B11セルを範囲指定 → B11セルのフィルハンドルで右へ7列分(H列まで)コピー!
そのまま(4行が範囲指定されている状態で)下へ4行ずつコピーします。
これで画像のような感じになります。m(_ _)m
![「エクセルのスケジュール表からカレンダーを」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/e/667667_5527bf4510c79/M.jpg)
No.1
- 回答日時:
その手のカレンダー作るの面倒だったなあ。
WEEKDAY関数とかMOD関数とか使って工夫しましよ。
左上の最初のセルに前月の最終日が来るようにしておき、(当月の1日-1の計算で求められます)
その値に1を連続して加算して表にします。
WEEKDAY関数(WEEKDAY(yy/mm,1))で対象の月の1日が何曜日かを確認します。(日曜日なら1が、土曜日なら7が返ってきます)
さらにその値を7で割り余りを求めます。(MOD関数を使います)
その余りの値を左上の最初のセルに加算します。(0~6までの値なので、一番上の横一列が前月になることはありません)
これで見た目カレンダー作成完了です。
あとは、当月をどこかに入力しておき、その値を参照して左上の最初のセルを計算させればOK。
自分なら、日を並べる表の上あたりに年、月を示す数値をいれて
DATEVALUE関数で対象月の1日に相当するシリアル値を取得させますね。
また、そうやって作ったカレンダーは日付がシリアル値になっているので注意してください。
質問の例ではさらにDAY関数などを使ってシリアル値を日にちに相当する数値に直すとよいかもしれません。
計算式が長くなってしまう場合は、他にこの計算をさせる作業列や作業行を設け、
そこから演算結果の値だけを引っ張ってくるのもよいと思います。
ああ・・・前月の日付も表示されるので、
条件付き書式でセルの背景色と同じ色になるようにしておくと
見た目はきれいにできるかもしれません。
これは自分で作った場合の一例ですので、
他のかたがもっとスマートに作成するやり方を教えてくだされば
そちらを参考にしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでカレンダーを作りたい 5 2023/05/16 07:32
- Excel(エクセル) エクセルの条件付き書式について エクセルでカレンダーを作りました。縦に日付が並んでいて、横にスケジュ 3 2022/10/10 15:32
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Excel(エクセル) 下記エクセルの式がなぜこうなるのか理由が知りたいです。 6 2022/08/20 00:43
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELの散布図で日付が1900年に...
-
エクセルのツールバーから数値...
-
祝日と土曜、日曜の合計をカウ...
-
Excel分数の表示について
-
特定の文字列を含む、住所を抽...
-
Excelについての質問です。 B2...
-
文字2桁、3桁交じりの文字列...
-
Excelで表を作ったところに文字...
-
【マクロ】2回実行したら、エ...
-
【EXCEL】画像の黄色部分の抽出...
-
マイクロソフトのPADを使ってい...
-
絶対参照
-
マクロエクセルのブロック解除
-
在庫管理表に使うエクセルの関...
-
Excelピボットテーブルの1行目
-
エクセルのクイックアクセスツ...
-
DATE関数で現在の年齢を出した...
-
ユーザー定義関数をアドイン登...
-
職場の人から聞かれており、こ...
-
【マクロ】毎回、ファイル名が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報