[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『曜日自動 関数』(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
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
前スレとは全く違うファイルで違う形式の曜日自動設定をしたくて質問させて頂きました。
「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
ただし、存在しない日にちは空白にする 例えば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.