毎月の土曜日と日曜・祝日の日付を自動入力したいのですが、
皆様の知恵を貸して下さい。
■やりたい事
・年度、月をドロップダウンリストで選択すると、土日祝枠にその日付が
表示される
(ボタンは写っていませんが、リストは設置してあります)
*追記
月毎に土曜、日曜祝日の回数が違うので大目に枠を用意し、
余った枠(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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
架空の映画のネタバレレビュー
映画のCMを見ていると、やたら感動している人が興奮で感想を話していますよね。 思わずストーリーが気になってしまう架空の感動レビューを教えて下さい!
-
土日祝日のみのカレンダー
Excel(エクセル)
-
Excelによる土日と祝祭日の算出関数
Excel(エクセル)
-
エクセルで、土日のみのカレンダー作成
Excel(エクセル)
-
-
4
土日祝を空白にする関数を教えてください
Excel(エクセル)
-
5
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
6
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
7
excelのCOUNTIF関数で、『範囲=色のついたセル』に設定したいです。
Excel(エクセル)
-
8
EXCEL 火曜日と金曜日だけを抜き出したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sheet2に並んだ日付の行にsheet...
-
Microsoft Officeを2台目のPCに...
-
【Excel VBA】PDFを作成して,...
-
outlookのメールが固まってしま...
-
英数字のみ全角から半角に変換
-
エクセルで英文字に入れた下線...
-
Outlook で宛先が複数の場合の人数
-
Microsoftを使用している方
-
Excelファイルで毎月各支店から...
-
マクロ自動コピペ 貼り付ける場...
-
Microsoft Formsの「個人情報や...
-
エクセル:一定間隔で平均値を...
-
Office2021を別のPCにインスト...
-
Microsoft365で写真をアルバム...
-
office365のファイルで「Office...
-
Excel テーブル内の空白行の削除
-
エクセルでXLOOKUP関数...
-
マクロ1があります。 A1のセル...
-
teams設定教えて下さい。 ①ビデ...
-
outlookに追加したアカウントの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
Microsoft Officeを2台目のPCに...
-
会社PCのメールが更新されない
-
エクセル マクロVBAについて教...
-
【Excel VBA】PDFを作成して,...
-
outlookのメールが固まってしま...
-
エクセルにて横に月の行があり...
-
エクセルで自動的にQRを表示さ...
-
大学のレポート A4で1枚レポー...
-
Microsoft Formsの「個人情報や...
-
エクセルやパワポファイルの保...
-
エクセルでXLOOKUP関数...
-
マクロ自動コピペ 貼り付ける場...
-
Excelファイルで毎月各支店から...
-
エクセル:一定間隔で平均値を...
-
outlookに追加したアカウントの...
-
office365のファイルで「Office...
-
Microsoftを使用している方
-
teams設定教えて下さい。 ①ビデ...
-
Outlook で宛先が複数の場合の人数
おすすめ情報