[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『曜日を見る』(休日を見る関数)
日付を横計表示で各日付に対して「休み」を設定します。
設定と言ってもVLOOKUPで別のシートからもって来るだけですが…
当日が休みの場合は値を「0」休みではない場合は計算式(1日前の数字を見る)
しかし、当日が休みでなく、前日が休みの場合は休み前の数字を見る
通常の月曜日なら金曜日を見る
金曜日を休みに設定している場合は、木曜日を見る
このような計算式を作るにはどうしたらいいでしょうか?
関数でもマクロでも良いのですが…
|[A] |[B] |[C] |[D] |[E] |[F] |[G] |[H] |[I] |[J] |[K] [1] |商品CD|3月10日 |3月11日 |3月12日 |3月13日 |3月14日 |3月15日 |3月16日 |3月17日 |3月18日 |3月19日 [2] | |=VLOOKUP(B$1,$M:$N,2,0)|=VLOOKUP(C$1,$M:$N,2,0)|=VLOOKUP(D$1,$M:$N,2,0)|=VLOOKUP(E$1,$M:$N,2,0)|=VLOOKUP(F$1,$M:$N,2,0)|=VLOOKUP(G$1,$M:$N,2,0)|=VLOOKUP(H$1,$M:$N,2,0)|=VLOOKUP(I$1,$M:$N,2,0)|=VLOOKUP(J$1,$M:$N,2,0)|=VLOOKUP(K$1,$M:$N,2,0) [3] |KEY1 | | | | | | | | | | [4] |KEY2 | | | | | | | | | | [5] |KEY3 | | | | | | | | | | [6] |KEY4 | | | | | | | | | | [7] |KEY5 | | | | | | | | | | [8] |KEY6 | | | | | | | | | | [9] |KEY7 | | | | | | | | | | [10]|KEY8 | | | | | | | | | | [11]|KEY9 | | | | | | | | | | [12]|KEY10 | | | | | | | | | |
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
例えば、B2には0または1日前の営業日を返すのでしょうか?
3行目以降のKEYの意味もよくわからないですが。
(ゆたか) 2023/07/07(金) 11:31:59
2行目に入れたのはミスです!
3行目以降のKEYを軸にして別のシートから読み取る形にしてます
別シートの同じキーを読みに行くようにして、しかも、休みだったらという感じにしたいと思ってます。
(休日を見る関数) 2023/07/07(金) 14:25:24
1日前の日付は何故必要になるのですか?
読みに行く別のシートのシート名が日付にでもなっているのでしょうか?
(ゆたか) 2023/07/07(金) 14:36:36
=WORKDAY(B1,-1,休日を指定する範囲)
休日を指定する範囲には、祝日や休日にしたい日を指定します。
参考
https://excelkowaza.com/workday/
(ゆたか) 2023/07/07(金) 16:08:24
木:5 金:5 土:0 日:0 月:5
しかし、金曜が祝日の場合は、
木:5 金:0 土:0 日:0 月:5
この様にしたい。
その為の計算式が分からないので(-_-;)
(休日を見る関数) 2023/07/07(金) 17:21:24
I1が「休」の場合は、0
以外の場合は、その前の平日の2行目のセルを持ってくる
この様な式は可能ですか?
(休日を見る関数) 2023/07/07(金) 17:47:24
I2に入るのは、
休みであれば0
休みでなければ直前の営業日の2行目の値
だと思うのですが、それでは循環してしまわないですか?
I2にH2の値を入れるとします。
しかし、H2はさらにその直前の営業日の2行目、つまりG2の値を参照しています。
しかし、G2はさらにその直前の営業日の2行目、つまりF2の値を参照しています。
しかし、F2はさらにその直前の。。。(以下省略)
どこまでも前の営業日の値を参照ということになりませんか?
(ゆたか) 2023/07/11(火) 13:15:24
このようなマクロや関数などわかりますか?
(休日を見る関数) 2023/07/11(火) 16:09:22
A B C D E F G H I J K 1 商品CD 3月10日 3月11日 3月12日 3月13日 3月14日 3月15日 3月16日 3月17日 3月18日 3月19日 2 ABC 0 0 ABC ABC ABC ABC 0 0 0
3月10日については、前を参照できないので、ここにABCと入れてあります。
C,D,I,J,Kについては、休なので、0を返します。
C2には以下の式が入れてあります。K2までドラッグしてコピーしてください。
=IF(VLOOKUP(C$1,曜日!$A:$C,3,0)="",0,HLOOKUP(VLOOKUP(C$1,曜日!$A:$C,3,0),$1:$2,2,0))
曜日シートは以下のようになります。
A B C D 1 3月10日 金 2 3月11日 休 土 3 3月12日 休 日 4 3月13日 3月10日 月 5 3月14日 3月13日 火 6 3月15日 3月14日 水 7 3月16日 3月15日 木 8 3月17日 休 金 9 3月18日 休 土 10 3月19日 休 日
A列は日付です。
B列は休みの場合に「休」と入力します。
C列に参照すべき平日(1つ前の営業日)を求めています。
D列は参考までに曜日が入れてありますが、特に必要はありません。
C1は前を参照できないので、空白としています。
C2には以下の式が入れてあります。C10までドラッグしてコピーしてください。
=IF($B2="休","",IF(COUNTIF($B$1:$B1,""),INDEX($A$1:$A1,MAX(INDEX(($B$1:$B1="")*ROW($A$1:$A1),))),NA()))
(ゆたか) 2023/07/11(火) 16:50:02
IF($B2="休","",IF(COUNTIF($B$1:$B1,""),INDEX($A$1:$A1,MAX(INDEX(($B$1:$B1="")*ROW($A$1:$A1),))),NA()))
この式はどこに入れるのでしょうか?
値を求めたい場所には、最初の「=IF(VLOOKUP(C$1,曜日!$A:$C,3,0)="",0,HLOOKUP(VLOOKUP(C$1,曜日!$A:$C,3,0),$1:$2,2,0))」が入っているのでという事です。
(休日を見る関数) 2023/07/18(火) 11:23:35
曜日シートのC2に入力して下にコピーしてください。
この式はA列に入っている日付より前の平日を求めています。
>値を求めたい場所には、最初の「=IF(VLOOKUP(C$1,曜日!$A:$C,3,0)="",0,HLOOKUP(VLOOKUP(C$1,曜日!$A:$C,3,0),$1:$2,2,0))」が入っているのでという事です。
こちらの式では、曜日シートのC列で求めたその日より前の平日を参照しています。
つまり、両方入れないとうまく機能しません。
(ゆたか) 2023/07/19(水) 08:42:29
(休日を見る関数) 2023/07/19(水) 09:10:50
=IF(VLOOKUP(C$1,曜日!$A:$C,3,0)="",0,HLOOKUP(VLOOKUP(C$1,曜日!$A:$C,3,0),$1:$2,2,0))
こちらの式ですが、
タイトル行があり
2行目から明細が始まります。
2行目はこの関数で値が表示されるのですが
3行目からも2行目の値が表示されてしまいます。
どのようにすれば良いのでしょうか?
(番号の割り振り) 2023/07/20(木) 16:28:48
その式の代わりに以下をC2に入力して、右、下にコピーしてみてください。
=IF(VLOOKUP(C$1,曜日!$A:$C,3,0)="",0,HLOOKUP(VLOOKUP(C$1,曜日!$A:$C,3,0),INDIRECT("$1:"&ROW()),ROW(),0))
A B C D E F G H I J K 1 商品CD 3月10日 3月11日 3月12日 3月13日 3月14日 3月15日 3月16日 3月17日 3月18日 3月19日 2 ABC 0 0 ABC ABC ABC ABC 0 0 0 3 DEF 0 0 DEF DEF DEF DEF 0 0 0 (ゆたか) 2023/07/21(金) 10:31:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.