[[20170112093556]] 『半月毎の日付と曜日の自動表示』(yomogi) ページの最後に飛ぶ

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

 

『半月毎の日付と曜日の自動表示』(yomogi)

半月毎の日誌の日付を「西暦」と「月」のみを入力するだけで、「日」「曜日」を自動表示させたいのですが、前半月は1〜15日(15日間)の固定なので問題ありませんが、後半月は28、29、30、31と変わるため上手く表示出来ません。
どなたかご教示ください。

<やりたいこと>
  A B C D
1 年
2 月
3 前

5 1 木
6 2 金
 ・
 ・
 ・
  14 火
  15 水

================
  A B C D
1 年
2 月
3 後 

5 16 木
6 17 金
 ・
 ・
 ・
  27 月
  28 火

 ※上記は2017/2の例です
 ※A1には2007と入力
 ※A2には2と入力
 ※A3には 前・後 のいずれかを入力
 ※5月の後半月の場合は、29・30・31も表示される

どうぞよろしくお願いします 

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


 まず、A5:A20セルの書式設定は、ユーザー定義で d としておきます。同様に、B5:B20セルは aaa。

 A5:B20セルの数式は、以下のようにします。
 =DATE($A$1,$A$2,ROW()+IF($A$3="前",-4,11))

 次に、このセル範囲に条件付き書式を設定し、翌月分は文字を白にすることで、見えなくしてはどうでしょうか。
 =MONTH(A$5)<MONTH(A5)
(???) 2017/01/12(木) 10:22

 A5 =IF(OR(AND(A$3<>"後",ROW(A5)=20),MONTH((A$1&-A$2)+(A$3="後")*15+ROW(A1)-1)<>A$2),"",(A$1&-A$2)+(A$3="後")*15+ROW(A1)-1)
 B5 =IF(A5="","",A5)

 A5:B5 を20行目までコピー。

 A列 表示形式 d
 B列 表示形式 aaa
 
(GobGob) 2017/01/12(木) 10:24

あ、私の案だと、「前」のときに16日まで表示されてしまいますね。ん−、手直しが必要そう。
(???) 2017/01/12(木) 10:25

 というわけで、前半16日を消すため、A5:B20セルの数式は、以下のように変えてください。
 =IF(AND($A$3="前",19<ROW()),"",DATE($A$1,$A$2,ROW()+IF($A$3="前",-4,11)))
(???) 2017/01/12(木) 10:29

 表示形式「標準」でOK案っす。

 A5 =IF(OR(A4=15,MONTH((A$1&-A$2)+(A$3="後")*15+ROW(A1)-1)<>A$2),"",(A$3="後")*15+ROW(A1))
 B5 =IF(A5="","",TEXT(A$1&-A$2&-A5,"aaa"))

 A5:B5 20行目までコピー。

 ※ A4 空白のこと。
 
(GobGob) 2017/01/12(木) 10:32

 ちょっと見直し

 A5 =IFERROR(IF(A4=15,"",TEXT((A$1&-A$2)&-((A$3="後")*15+ROW(A1)),"d")*1),"")

 でもOK。
 
(GobGob) 2017/01/12(木) 10:38 ⇒ 10:39 見直し

(???)様、(GobGob)様 早速のご指導有難うございました。
どちらも方法も、私の希望通りの表を作成することができました。
本当に、本当に有難うございました。
でも、こんなことがすぐに解決できるなんて、非常に尊敬致します。
また機会があれば宜しくお願い申し上げます。
(yomogi)
(yomogi) 2017/01/12(木) 11:06


追加でご質問です。
1行目の上に 5行追加したいのですがその場合、計算式はどのなるのでしょうか?
そもそも計算式の意味があまり理解できておりませんので、お手数をお掛けします。
宜しくお願い致します。


 最初は考えたって判らないのだから、5足したり引いたり、試行錯誤して身につけて欲しいところです。ROW()は、対象となるセルの行を得る関数です。
 =IF(AND($A$8="前",24<ROW()),"",DATE($A$6,$A$7,ROW()+IF($A$8="前",-9,6)))
(???) 2017/01/12(木) 11:34

ご指導有難うございました。
いろいろ数値変えてみましたが、上手くいかなかったのでご相談させていただきました。
ご指摘ごもっともです。しっかり勉強致します。
有難うございました。
(yomogi) 2017/01/12(木) 11:44

 オイラの二つ目、三つ目案はROW関数の引数だけA1に戻せばOK。
(GobGob) 2017/01/12(木) 12:55

(GobGob)様
ご指導有難うございました。
GobGob様のようになれるよう、今後もしっかり勉強して参ります。
(yomogi) 2017/01/12(木) 13:09

 A5=IF(AND($A$3="前",ROW()<20),ROW()-4,IF(MONTH(DATE($A$1,$A$2,ROW()+10))=$A$2,ROW()+10,""))
下方向にコピー
(mm) 2017/01/16(月) 18:11

コメント返信:

[ 一覧(最新更新順) ]


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