[[20160328012200]] 『第五土曜日の書き出したい。』(tomo) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『第五土曜日の書き出したい。』(tomo)

よろしくお願いします。
祝日というシートがあります。
質問したいのは第五土曜日の有無と書き出す数式がどうしても分かりません
B1は年数です

A6==DATE($B$1,1,1)
以降祝祭日
A39まで
==========
A40以降 第二・第四土曜日列記

A40=DATE($B$1,1,15-WEEKDAY(DATE($B$1,1,6),15))
A41=DATE($B$1,1,29-WEEKDAY(DATE($B$1,1,6),15))
A42=DATE($B$1,2,15-WEEKDAY(DATE($B$1,2,6),15))
A43=DATE($B$1,2,29-WEEKDAY(DATE($B$1,2,6),15))
A42=
以下12月まで
A63=DATE($B$1,12,29-WEEKDAY(DATE($B$1,12,6),15))

A64=これ以降に第五土曜日がある月のみ年月日を書き出したい。
無い場合は書込無し

< 使用 Excel:Excel2013、使用 OS:Windows8 >


 回答ではありません。 m(__)m

 >A64=これ以降に第五土曜日がある月のみ年月日を書き出したい。 
 >無い場合は書込無し

 ・・と言うことですけど、数式での対応だと、
 そこには数式がある訳で、純然たる「書込無し」にはならないです。

 普通、そういう時は、数式処理では「空白文字列」にするんですけど、
 目的が祝祭日リスト(会社休日を含む)として使われるとすると、
 空白文字なんてものが入っていいものか、ちょっと不安になります。

(半平太) 2016/03/28(月) 09:34


 書込無し=空白文字列として・・・

 B41セル =IF(MONTH(A41)<>MONTH(EDATE(A41,0)+7),"",ROW(A1))
 B41セル、B42セルを選択した状態で63行目までフィルコピー

 A64セル =IFERROR(INDEX(A$41:A$63,SMALL(B$41:B$63,ROW(A1)))+7,"")
 A68セルまでフィルコピー

 作業列を使いたくなければ上級者からの回答をお待ちください。
(se_9) 2016/03/28(月) 10:21 修正10:25

(半平太)さん
アドバイスありがとうございます。
>空白文字なんてものが入っていいものか
空白であれば、たぶんですが問題ないと思います。
各月の例えばC2=1/1
 =IF(COUNTIF(祝日,C2)=0,"",VLOOKUP(C2,祝日,2,FALSE))
よろしくお願いします。
(tomo) 2016/03/28(月) 10:25

 半平太さん指摘の空白文字列(長さゼロの文字列)が、リスト内に存在してもいいということなら。
 かつ、専門家さんなら、さくっと1つの式でA64以降を埋めることができるのでしょうけど、素人バージョンで作業列、つかいまくり。
 以下の例は、作業列を H,I列にしています。

 H1 : =DATE($B$1,ROW(A1),0)-WEEKDAY(DATE($B$1,ROW(A1),0)-5,3)+7*5
 I1 : =IF(MONTH(H1)=ROW(A1),H1,"")

 H1:I1 を 12行目までフィルコピー

 A64 : =IFERROR(INDEX($I$1:$I$12,SMALL(IF($I$1:$I$12<>"",ROW($I$1:$I$12)),ROW(A1))),"")

 これをCtrl/SHift/Enter で配列数式として入力して、下に12行フィルコピー

(β) 2016/03/28(月) 10:31


(se_9)さん
(β)さん
ありがとうございました。
どちらも書き出しはうまくいきました。が
困ったことが1つ発生しました
A33=DATE($B$1,12,30) B33に年末休暇
A34=DATE($B$1,12,31) B34に年末休暇
と指定しあり、複数の同一日のリストがあると条件付き書式が適応できないようです
対策はありますか?
祝日Sheetの右側に12ヵ月分のSheetがあり条件付き書式 =COUNTIF(祝日,C$2)=1で
色づけしています。
(tomo) 2016/03/28(月) 10:56

 =COUNTIF(祝日,C$2)=1
 とカウント数が1件だけを対象としているのを

 =COUNTIF(祝日,C$2)>0
 または
 =COUNTIF(祝日,C$2)>=1
 と1件以上で判断させる。
(ねむねむ) 2016/03/28(月) 11:02

ねむねむさん
ありがとうございました。
=COUNTIF(祝日,C$2)>=1
上記で設定できました。
完成です。
皆さんありがとうございました。

(tomo) 2016/03/28(月) 11:18


 >空白であれば、たぶんですが問題ないと思います。 
 > 各月の例えばC2=1/1 
 >  =IF(COUNTIF(祝日,C2)=0,"",VLOOKUP(C2,祝日,2,FALSE)) 

 そう言う使い方なら、空白文字列でもいいですね。納得です。

 なんか、これにもこだわる必要ないかも知れないと思っているんですけど。
      ↓
 >A40以降 第二・第四土曜日列記 
 >A64=これ以降に第五土曜日がある月のみ年月日を書き出したい。

 つまり、頭から各月の第2,4,5土曜日を A40以降に書いとけばいいんじゃないですか?

 (1) A40セル =DATE($B$1,1,15-WEEKDAY(DATE($B$1,1,6),15))
 (2) A41セル =A40+14
 (3) A42セル =IF(A41="","",IF(YEAR(A41+7)>YEAR(A41),"",A41+IF(MONTH(A41+7)=MONTH(A40),7,14)))
   (3)の数式を下にコピー

(半平太) 2016/03/28(月) 11:22


(半平太)さん
勝手に閉じてしまいました。すみません
ありがとうございます。
>つまり、頭から各月の第2,4,5土曜日を A40以降に書いとけばいいんじゃないですか?
↑そうですよね
B列に、第2土曜日、第4土曜日、第5土曜日、A列の日付を判断し書き込む事可能でしょうか?
よろしくお願いします。
B列の書込を各月の日付欄に反映しているので・・・
(tomo) 2016/03/28(月) 12:01

 >勝手に閉じてしまいました。すみません

 いえ、トピ主さんが閉じるは自由です。

 アップした後で、解決済みになったのは知ったのですが、 
 削除することないかと思って、そのままにしました。

 >>つまり、頭から各月の第2,4,5土曜日を A40以降に書いとけばいいんじゃないですか? 
 > ↑そうですよね 
 > B列に、第2土曜日、第4土曜日、第5土曜日、A列の日付を判断し書き込む事可能でしょうか? 
 > よろしくお願いします。 
 > B列の書込を各月の日付欄に反映しているので・・・

 ちょっと、意味が呑み込めないのですが、B列が祝日リストなんですか?
 であれば、A列に日付がある必要がないんじゃないですか?(直接、B列に書けばいいんですから)

 A列とB列の関係がいまひとつ分からないです。

(半平太) 2016/03/28(月) 13:21


(半平太)さん
説明が下手ですみません。
A列は祝祭日 記念日 第2土曜 第4土曜 第5土曜の日付
B列は日付に対しての説明 1/1元旦 1/11成人の日など書き込んであります。

この日付ですが、先ほど以下の数式で取り出した日付に対し第○土曜なのか
数式で、「第2土曜 第4土曜 第5土曜」でB列に表示出来ないかという質問でした。
よろしくお願いします。
> (3) A42セル >=IF(A41="","",IF(YEAR(A41+7)>YEAR(A41),"",A41+IF(MONTH(A41+7)=MONTH(A40),7,14)))
>   (3)の数式を下にコピー
(tomo) 2016/03/28(月) 14:00


 意味が解ってみると、正しい表現だったです <(_ _)>

 B40セル 第2土曜 ←手入力
 B41セル 第4土曜 ←手入力

 B42セル =IF(A42="","",TEXT(IF(MONTH(A42)=MONTH(A40),5,IF(B41>"第4",2,4)),"第0土曜"))

 下にコピー

(半平太) 2016/03/28(月) 14:55


 >数式で、「第2土曜 第4土曜 第5土曜」でB列に表示出来ないかという質問でした。
 昔、作成したものをコピペします。 作業列をたくさん使いますが。

    B1セルには年を
    C2セルに、「1月の第5土曜日」と入力。
    A2には、2016/1/30と表示されます。
 ★ B2には、第5土曜日と表示されます。

    |[A]                           |[B]                             |[C]           |[D]                      |[E]                                                         |[F]                         |[G]                                                                                                |[H]                                                      
 [1]|                              |                            2016|入力欄        |                         |                                                            |                            |                                                                                                   |                                                         
 [2]|=IF(MONTH(H2)=VALUE(D2),H2,"")|=RIGHT(C2,LEN(C2)-FIND("の",C2))|1月の第5土曜日|=LEFT(C2,FIND("月",C2)-1)|=MID(C2,FIND("第",C2,1)+1,FIND("曜",C2,1)-FIND("第",C2,1)-2)|=MID(C2,FIND("曜",C2,1)-1,3)|=CHOOSE(MATCH(F2,{"日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"},0),6,0,1,2,3,4,5)|=DATE($B$1,D2,1)-1-WEEKDAY(DATE($B$1,D2,1)-1-G2,3)+(7*E2)

*************************************************************************

 内容は、ほぼ同じですが、ファイルをアップします。
「カレンダー(一部のみ).xlsx」ファイルの「シート名:日程」において、
 D5に「1月の第5土曜日」と入力すると、A5に「2016/1/30」が返ってきます。
http://ww10.puny.jp/uploader/download/1459145132.zip
 参考資料(ダウンロードパスワード:abc)
(マリオ) 2016/03/28(月) 15:31

(半平太)さん
ありがとうございました。
無事表示できました。
また何かありましたらよろしくお願いします。

(マリオ)さん
貴重なデータありがとうございました。すごいデータですね。
まだ、よく確認してないですがこれから各セル数式確認しながら
いろいろな利用させていただきます。(^_^)v

(tomo) 2016/03/28(月) 16:10


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.