[[20181003103538]] 『曜日自動 関数』(yha) ページの最後に飛ぶ

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

 

『曜日自動 関数』(yha)

=IF($D$1<>2,WEEKDAY(DATE($J$1-MONTH($J$1)&DAY($J$1),$J$1-YEAR($J$1)&DAY($J$1),A15)," "))

D1には 月の数字
J1には 2018/10/3 のような表示の仕方で年月日
A15には =IF($J$1-YEAR($J$1)&DAY($J$1)=2," ",29) 29日がある月はこの式から29日を表示する関数が入れてあります。
B15にA15の曜日を自動で表示させたいのですが上の関数でWEEKDAYの所にエラーが
でていまい#NUM!となります。どのように表記を変えれば良いでしょうか。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


前スレの数式の意味を理解出来ていないようです。

「2018/10/3」はいわゆるシリアル値と呼ばれるもので、整数にすると43376(1900/1/1から数えて43376日目という意味)なのです。

YEAR、MONTH関数は●●年や●●月を整数で返す関数なので、単位が異なるため引き算はできません。
単位が同じDAY関数だけは引き算出来るんですけどね。

それを踏まえて数式を組み立てれば・・・。
(名無し) 2018/10/03(水) 11:02


そもそも本当は何がしたいのでしょうか。
J1に記載された日付の月末をA15に、月末の曜日をB15に表示ってことですかね?
(名無し) 2018/10/03(水) 11:09

A15自体もおかしい気がします
何をしたいか分からないので(特にD1の必要性)、
取り敢えずJ1のみ利用して…

A15 : =IF(MONTH(J1)=2,””,29)
B15 : =IF(A15=“”,””,TEXT(WEEKDAY(DATE(YEAR(J1),MONTH(J1),DAY(A15)),1),”aaa”))

(通行人B) 2018/10/03(水) 11:20


数式タブに数式の検証という機能があるので
数式に不安がある場合はどこでエラーが出るかご自身で確認してみては?
また、最初から入れ子にせず、小さい式から期待値通りの結果が返って来るか確認しながら組むといいと思います。
そうすることでA15のようなミスにすぐ気付けると思います。
(通行人B) 2018/10/03(水) 11:30

名無しさん
返答ありがとうございます!

前スレとは全く違うファイルで違う形式の曜日自動設定をしたくて質問させて頂きました。

「2018/10/3」はいわゆるシリアル値と呼ばれるもので、整数にすると43376(1900/1/1から数えて43376日目という意味)なのです。
YEAR、MONTH関数は●●年や●●月を整数で返す関数なので、単位が異なるため引き算はできません。
単位が同じDAY関数だけは引き算出来るんですけどね。

これすごく解りやすい説明でありがたかったです。
ネットで調べていたのですがわからなくて。。
ありがとうございます、組みなおしてみます!

通行人Bさん
返答ありがとうございます。

したい事の説明が足りていなかったようですみません!
日報を作成していて20日締めなもので31日のスペースは31日がない月は日付も曜日も表示しないで空白にする為に数式を入れていて月はD1に入っているのでえそこを参照にしているのですが。
A15 : =IF(MONTH(J1)=2,””,29)
B15 : =IF(A15=“”,””,TEXT(WEEKDAY(DATE(YEAR(J1),MONTH(J1),DAY(A15)),1),”aaa”))
は日付も11月でも31日が表示されるので
=IF($D$1=1,31,IF($D$1=3,31,IF($D$1=5,31,IF($D$1=7,31,IF($D$1=8,31,IF($D$1=10,31,IF($D$1=12,31," ")))))))
と入れるのにD1を使っています。

(yha) 2018/10/03(水) 13:22


 やりたいことは ↓ なこと?

 ・A7:A37に「21〜翌月20」の日にちを表示
  ただし、存在しない日にちは空白にする
  例えば11月なら30日までなので、A17は空白
 ・B列に曜日を表示

 だとして、確認
 1)D1の月とJ1の日付の関係は?
    J1の月 = D1?
 2)11月なら、30の次を空白にせず「1」にするのではダメなんですか?
 3)2月はうるう年なら29日までありますけど、わかってます?

 ところで前回質問の回答は試してくれたんですかね?

 以上、確認まで
(笑) 2018/10/03(水) 14:18

(笑)さん
返答ありがとうございます
やりたい事はそうです!
・A7:A37に「21〜翌月20」の日にちを表示
  ただし、存在しない日にちは空白にする
  例えば11月なら30日までなので、A17は空白
 ・B列に曜日を表示
これです!

1)J1の月 = D1です!
2)1にするのでも大丈夫なんです。11月だったら31日がでないようにしたいです。
3)うるう年忘れていました。そうですよね。

以前のものは試させて頂きました!
ですが、なぜかうまくかわりませんでした、すみません。
(yha) 2018/10/04(木) 09:36


 >2)1にするのでも大丈夫なんです。

 だったら前回の回答をくり返すだけなんですけどね。
 A列がシリアル値でもいいんでしょ?

 >なぜかうまくかわりませんでした

 具体的に、どのセルがどうなってしまったんですか?
 こちらでは問題なくできています。

 一応、書いておくと

 ■A列
 A7 =IF(J1="","",DATE(YEAR(J1),MONTH(J1),21))
 または
 A7 =IF(J1="","",EOMONTH(J1,-1)+21)
 または
 A7 =IF(J1="","",J1-DAY(J1)+21)

 A8 =IF(A7="","",IF(DAY(A7)=20,"",A7+1))

 A8をA37までコピー、A7:A37の表示形式〜ユーザー定義 d

 ■B列
 B7 =TEXT(A7,"aaa")  B37までコピー
 
【重要】 数式で「空白」にするのは "" です
     " " のように半角(全角)スペースを入れないように

 D1セルに月を表示するのなら
 例えば、B1セルに「2018」のような年を入力

 手入力でもいいですけど、J1の日付を参照する場合
 B1 =YEAR(J1)
 D1 =MONTH(J1)

 そうしておくと A7 =DATE(B1,D1,21) のようにもできます。

 以上
(笑) 2018/10/04(木) 11:56

(笑)さん、ご返答、解説ありがとうございました!

単にエラー表示にAB列ともになってしまい、どこがエラーなのかさっぱりわからず元の表を新しくコピーして再度表に頂いた通り入力した所きちんとなりました!!
空白にもならずで感動です。
A7の表記の仕方もそんなにあるんですね。
これから活用させて頂きます。
すごく助かりました!!感謝です。

ちなみにJ1に入れた日にちを締め日にしたい場合は
A7 =IF(J1="","",DATE(YEAR(J1),MONTH(J1-1),21))
でできますでしょうか??
ご教授いただければ幸いです。
(yha) 2018/10/04(木) 14:02


 締日にしたいというのは、例えば10月なら

 J1セル         A7セル
 2018/10/ 1〜10/20 → 2018/ 9/21
 2018/10/21〜10/31 → 2018/10/21

 ということ?

 だったら
 A7 =IF(J1="","",DATE(YEAR(J1),MONTH(J1)-(DAY(J1)<21),21))

 J1セルに =TODAY() が入っているのなら(もしくは常に日付が入っているのなら)
 空白かどうかの判定は不要なので

 A7 =DATE(YEAR(J1),MONTH(J1)-(DAY(J1)<21),21)

 ↓ でも同じことです
 A7 =DATE(YEAR(J1),MONTH(J1)-IF(DAY(J1)<21,1,0),21)

 A8は前回の回答のままで

 以上
(笑) 2018/10/04(木) 15:03

 ↓ でもいいです

 A7 =EOMONTH(J1,-1-(DAY(J1)<21))+21

 参考まで
(笑) 2018/10/04(木) 15:16

(笑)さん

返信がおそくなりすみませんでした。

そうです。 J1セルは作成日なので〆日の前月に作る場合を当月に作る場合があるので困っていて。
参考ありがとうございました!大助かりです。

(yha) 2018/10/10(水) 11:32


 今さらですけど
 ↓ でもよかったです。

 A7 =EOMONTH(J1-20,-1)+21

 参考まで
(笑) 2018/10/10(水) 13:07

コメント返信:

[ 一覧(最新更新順) ]


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