毎月の土曜日と日曜・祝日の日付を自動入力したいのですが、
皆様の知恵を貸して下さい。
■やりたい事
・年度、月をドロップダウンリストで選択すると、土日祝枠にその日付が
表示される
(ボタンは写っていませんが、リストは設置してあります)
*追記
月毎に土曜、日曜祝日の回数が違うので大目に枠を用意し、
余った枠(8/25の下)はその都度削除します。
画像では 8/3を、A列に「月」、 B列に「/」、 C列に「日」
と列を分けてありますが、A3セル1つのセルに反映されても
かまいません。
宜しくお願いします。
No.4ベストアンサー
- 回答日時:
皆さんの回答をご覧になって、結構面倒であることに驚かれているでしょう。
実際、そう簡単には出来ない処理ではあります。
私からも例に漏れず面倒なやり方です。
とりあえず、図の通りです。
他の皆さんの回答も同様ですが、おそらく、図(回答)の通りに作って、
出来上がってから切り取り・貼り付けしてやる方が楽です。
もちろん、他の場所に作業列を作って、式を適切に書き換えられるなら
最初から他の場所に作って方が早いです。
そこはご自身とご相談くださいませ。
さて、A1セル・C1セルに入力規則によるドロップダウンがあるものとして進めます。
図の右からですが、J:Mに「祝日一覧」を作っています。
最初から面倒ですが、これが無いと「祝日の判断」が出来ませんから必須です。
残念ながら、エクセルには「祝日」の概念が無いのです。
F:H列は作業列です。
F1:=IF(MONTH(DATE($A$1,$C$1,ROW()))<>$C$1,"",DATE($A$1,$C$1,ROW()))
G1:=IF(IF(F1<>"",WEEKDAY(F1)=7),ROW(),"")
H1:=IF(IF(F1<>"",OR(WEEKDAY(F1)=1,COUNTIF($J$1:$O$18,F1))),ROW(),"")
という式を入れ、31行目までスマートフィルしてあります。
(1か月の最大日数は31日ですから、31行目まででOKですね。)
「3年分じゃ足りん」「会社の創立記念日も欲しい」「盆暮れ正月も必要」
と言うときは、祝日一覧の範囲を拡げて、
H1:H31のCOUNTIF関数の第1引数を拡げてやってください。
問題の土曜・日曜一覧です。
A4:=IFERROR(INDEX(F:F,SMALL(G:G,ROW(A1))),"")
C4:=IFERROR(INDEX(F:F,SMALL(H:H,ROW(A1))),"")
条件付き書式:式が「=OR(C4<>"",A4<>"")」
書式「外枠」
として、15行目辺りまでフィルしておきます。
(2015年まででここに抽出される最大日数は8日分です。ちなみに2015年5月。)
必要に応じて、行数は調整しましょう。
この条件付き書式がミソです。
> 余った枠(8/25の下)はその都度削除します。
面倒でしょ?式まで消えてしまいますし。
ここまでで完成です。
あとは、作業列を非表示にするなり、祝日一覧を他のシートに移すなり、
適当にお好みのフォーマットに整えればOKです。
以上、参考まで。
知恵を寄せて頂いきました皆様、ありがとうございました。
お陰様で作業を進めて行けそうです。
今回はtsubuyuki様をベストアンサーとして選ばさせていただきましたが、
皆様にも同様に感謝致しております。
有難うございました。
No.5
- 回答日時:
>……A3セル1つのセルに反映されてもかまいません。
おっしゃっているように、日付/曜日を表示するセルの値としては、なるべく「年月日の形で 1 つのセルに持たせる」ことをお勧めします。そのほうが日付データを他のいろいろな計算に使うことができます。年月日データのうち月だけとか月日だけ、曜日だけを表示するといったことは、セルの書式でごく簡単にできます。
一例を。
他の方もおっしゃっているように、祝日は一覧を用意して検索します。そのため、ある月の祝日を表示する表は、日曜とは別表に分けないと厳しいです。添付図では、次式を入力しました。
A1 2013
C1 11
A3 =date(a1,c1,1)+mod(7-weekday(date(a1,c1,1)),7)
A4 =if(month(a3)=month(a3+7),a3+7,"")
C3 =a3+1
E1 =small(index(I$2:I$18+9^9*((month(I$2:I$18)<>C$1)+(weekday(I$2:I$18)=1)+(weekday(I$2:I$18)=7)),),1+row(e3)-row(E$3))
「date(a1,c1,1)」というのは、2013 年 8 月 1 日のシリアル値です。WEEKDAY 関数は、(日)、(月)、…、(土)に対応する曜日の番号 1、2、…、7 を返す関数。「MOD(割られる数、割る数)」は、余りを求めています。INDEX は、配列を数式中に導入できる状態のものにしています。「1+row(e3)-row(E$3)」は、行の位置に応じた 1 から始まる順位です。
E 列の各セルの日付は、大きすぎる値(祝日の一覧で月が異なるか土日であるために 9^9 が足された値)の場合に、非表示になるようにしています。2100 年 1 月 1 日のシリアル値が 73,051 で、9^9 = 387,420,489 なので、「セルの書式設定>表示形式タブ>ユーザー定義>種類ボックス」に、「[>80000]"";m/d」と入力しました。
ここまでの操作で添付図どおりの外観になりますが、空白のようになっているセルの枠線を消したい場合は、いったん枠線を全部消し、条件を満たしたセルだけ線が引かれるようにします。A3:A7、C3:C7、E3:E7 のセル範囲の線を消した後、同じ範囲に対して、ホームタブ「条件付き書式」で「指定の値を含むセルだけ…>セルの値>次の値より小さい」と選び、「80000」などと入力し、「書式」ボタンから線を指定します。「""」や「大きすぎる値」のセルでは、線が消えたままとなります。
No.3
- 回答日時:
祝日も含めて表示させるとなりますと、しかも同じ月の中で日付を祝日を含めて昇順で表示させるとなりますと操作がさらに複雑となります。
こちらの指示通りで一度挑戦してみてください。シート1お望みの表を表示させるとして例えばA1セルには2013年でしたら2013と入力します。また、8月でしたらC1セルに8と入力します。
土曜日の日付については祝日であっても無関係に表示させるとしてA3セルには次の式を入力してC3セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(MONTH(DATE($A$1,$C$1,8+(ROW(A1)-1)*7-WEEKDAY(DATE($A$1,$C$1,1))))<>$C$1,"",IF(COLUMN(A1)=1,$C$1,IF(COLUMN(A1)=2,"/",IF(COLUMN(A1)=3,DAY(DATE($A$1,$C$1,8+(ROW(A1)-1)*7-WEEKDAY(DATE($A$1,$C$1,1)))),""))))
問題は日曜日と祝日の日付についてです。
シート2に祝日に関するデータベースとして例えば次のように表を作成します。
A1セルには2011年なら2011と入力してB1セルには祝日の文字を入力します。A2セルから下方には2011年の祝日を例えば2011/1/1のように入力します。
B列には該当する祝日の名前などを入力します。C列は作業列として用意します。
2011年について、すなわち1年当たりに3列を用意します。2013年ならば例えばG1セルに2013と入力し、G2以下には祝日を2013/1/1のように入力します。H2以降には祝日の名前を、I列は作業列とします。
C,F,I列の作業列にはシート1からのデータを受けて表示させることにしますが、シート2にはシート1での指定年や、指定月を表示させるセルを用意します。
K1セルには次の式を入力します。
=Sheet1!A1
L1セルには次の式を入力します。
=Sheet1!C1
その上で各作業列には次の式を入力します。
C2セルには次の式を入力して下方にドラッグコピーします。
=IF(OR(A2="",A$1<>$K$1),"",IF(AND(YEAR(A2)=$K$1,MONTH(A2)=$L$1),MAX(C$1:C1)+1,""))
F2セルには次の式を入力して下方にドラッグコピーします。
=IF(OR(D2="",D$1<>$K$1),"",IF(AND(YEAR(D2)=$K$1,MONTH(D2)=$L$1),MAX(F$1:F1)+1,""))
I2セルには次の式を入力して下方にドラッグコピーします。
=IF(OR(G2="",G$1<>$K$1),"",IF(AND(YEAR(G2)=$K$1,MONTH(G2)=$L$1),MAX(I$1:I1)+1,""))
その上でその月の日曜日になる日付と祝日をL2セル以降に表示させるためにL2セルには次の式を入力してL6セルまで下方にドラッグコピーします。
=IF(MONTH(DATE($K$1,$L$1,8+(ROW(A1)-1)*7-WEEKDAY(DATE($K$1,$L$1,7))))<>$L$1,"",DATE($K$1,$L$1,8+(ROW(A1)-1)*7-WEEKDAY(DATE($K$1,$L$1,7))))
また、L7セルには次の式を入力して下方にドラッグコピーします。
=IF(ROW(G1)>MAX(INDEX(A:I,1,MATCH($K$1,A$1:I$1,0)+2):INDEX(A:I,100,MATCH($K$1,A$1:I$1,0)+2)),"", INDEX(INDEX(A:I,1,MATCH($K$1,A$1:I$1,0)):INDEX(A:I,100,MATCH($K$1,A$1:I$1,0)),MATCH(ROW(A1),INDEX(A:I,1,MATCH($K$1,A$1:I$1,0)+2):INDEX(A:I,100,MATCH($K$1,A$1:I$1,0)+2),0)))
これでシート2での作業は終わります。
シート1に戻ってE3セルには次の式を入力してG3セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(ROW(A1)>COUNT(Sheet2!$L:$L)-1,"",IF(COLUMN(A1)=1,$C$1,IF(COLUMN(A1)=2,"/",DAY(INDEX(Sheet2!$L:$L,MATCH(SMALL(Sheet2!$L:$L,ROW(A1)+1),Sheet2!$L:$L,0))))))
No.2
- 回答日時:
こんばんは!
一案です。
ドロップリストではないのですが・・・
↓の画像(小さいと思いますので、拡大して確認してください)で説明します。
左側がSheet1で右側のSheet2に祝日データをシリアル値で作成しておきます。
Sheet1のA1セルに西暦年・C1セルに月の数値を入力すると
日付・曜日・祝日名を表示するようにしてみました。
作業用の列を2列使います。
Sheet1の作業列E2セルに
=IFERROR(IF(MONTH(DATE(A$1,C$1,ROW(A1)))=C$1,DATE(A$1,C$1,ROW(A1)),""),"")
F2セルに
=IFERROR(IF(OR(WEEKDAY(E2,2)>5,COUNTIF(Sheet2!$B$1:$E$21,E2)),ROW(),""),"")
という数式を入れ31日分オートフィルで下へコピーしておきます。
A4セル(セルの表示形式は「日付」)に
=IFERROR(INDEX(E:E,SMALL(F:F,ROW(A1))),"")
B4セルに
=TEXT(A4,"aaa")
C4セルに
=IFERROR(IF(COUNTIF(Sheet2!$B$1:$E$21,A4),INDEX(Sheet2!$A$1:$A$21,SUMPRODUCT((Sheet2!$B$1:$E$21=A4)*ROW($A$1:$A$21))),""),"")
という数式を入れ、A4~C4セルを範囲指定 → C4セルのフィルハンドルで下へコピー!
これで画像のような感じになります。m(_ _)m
No.1
- 回答日時:
データが多くなるので、まずは、開始年月日と終了年月日を決め、祝日のリストは以下のURLの作成要領から祝日のデータをコピーし、
https://sites.google.com/site/ekuserudekarenda/
土日は7日毎にドラッグコピーで作成して、土日祝日の全リストを作りフィルター機能で表示を選択してはいかがでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) ExcelにおけるVLOOKUPでの祝日表示について 5 2022/09/18 22:23
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- その他(Microsoft Office) エクセルについて教えてください。 3 2023/05/19 18:19
- Excel(エクセル) セルに特定の色が出た時だけ、式を発動させたい 4 2022/06/17 10:32
- Visual Basic(VBA) 祝日を除いた月曜から土曜までの1週間分の日付行を選択し、別シートへカットアンドペーストしたい 13 2023/07/13 22:46
- Excel(エクセル) 出勤簿の土、日、休日に色付けできない 2 2022/08/04 20:10
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) Excelで祝日を除く1回目の金曜日を返す 3 2023/01/31 16:07
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
【お題】マッチョ習字
【大喜利】 「精神を鍛えるため」にと、ジムから書初めの宿題を出されたマッチョたちが半紙に書いてきたこと
-
食べられるかと思ったけど…ダメでした
「この煮物、だいぶ放置しちゃったけど大丈夫かな…」 「食べ物じゃないけど、なんか食べたらすごく美味しそうな気がする」
-
2024年においていきたいもの
2024年もあとわずかですが、いま抱えているもので「これは来年にもっていきたくないなぁ」というものを教えて下さい。
-
土日祝日のみのカレンダー
Excel(エクセル)
-
Excelによる土日と祝祭日の算出関数
Excel(エクセル)
-
excelのCOUNTIF関数で、『範囲=色のついたセル』に設定したいです。
Excel(エクセル)
-
-
4
エクセルで、土日のみのカレンダー作成
Excel(エクセル)
-
5
土日祝を空白にする関数を教えてください
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
Microsoft Officeを2台目のPCに...
-
MS Officeで。オートシェイプの...
-
エクセルでXLOOKUP関数...
-
会社PCのメールが更新されない
-
大学のレポート A4で1枚レポー...
-
Office 2021 Professional Plus...
-
【Excel VBA】PDFを作成して,...
-
office2019 のoutlookは2025年1...
-
マクロ1があります。 A1のセル...
-
マクロ自動コピペ 貼り付ける場...
-
Outlook で宛先が複数の場合の人数
-
Windows 11で、IME言語バー(IM...
-
outlookのメールが固まってしま...
-
会社のOutlookにてメールを予約...
-
teams設定教えて下さい。 ①ビデ...
-
office365って抵抗感ないですか?
-
パソコンを買い替える際、前の...
-
エクセルマクロ(超初心者)
-
Microsoft Formsの「個人情報や...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
Microsoft Officeを2台目のPCに...
-
office2019 のoutlookは2025年1...
-
outlookのメールが固まってしま...
-
【Excel VBA】PDFを作成して,...
-
大学のレポート A4で1枚レポー...
-
エクセルでXLOOKUP関数...
-
マクロ自動コピペ 貼り付ける場...
-
会社PCのメールが更新されない
-
Excel 日付を比較したら、同じ...
-
Office 2021 Professional Plus...
-
Excel 小生ど素人です、数式を...
-
officeソフトについて教えてく...
-
Microsoft Formsの「個人情報や...
-
マクロ1があります。 A1のセル...
-
Excel テーブル内の空白行の削除
-
特定の語句を含むワードファイ...
-
Outlook で宛先が複数の場合の人数
-
office365って抵抗感ないですか?
-
teams設定教えて下さい。 ①ビデ...
おすすめ情報