
A 回答 (9件)
- 最新から表示
- 回答順に表示
No.9
- 回答日時:
ANo.5です。
> 2011/8/1 に3を加え(WEEKDAY(DATE(D3,H3,1),2)>3)*4-WEEKDAY(DATE(D3,H3,1),2)
> とはどういう意味なのでしょう?
まぁ、演算を整理した結果なんですが
WEEKDAY(○)だと、日曜が1~土曜日が7ですが、WEEKDAY(○,2)とすると月曜が1~日曜が7になります。今回はこっちの方が使いやすいので使っています。
(WEEKDAY(DATE(D3,H3,1),2)>3)*4 は、指定した日(この場合8/1)が、月~水曜の場合0、木曜~日曜の場合4になります。
8/1が月曜日の場合:8/1 +3+0-1 →8/3 が水曜日
8/1が火曜日の場合:8/1 +3+0-2 →8/2 が水曜日
8/1が水曜日の場合:8/1 +3+0-3 →8/1 が水曜日
8/1が木曜日の場合:8/1 +3+4-4 →8/4 が日曜日
8/1が金曜日の場合:8/1 +3+4-5 →8/3 が日曜日
8/1が土曜日の場合:8/1 +3+4-6 →8/2 が日曜日
8/1が日曜日の場合:8/1 +3+4-7 →8/1 が日曜日
と、言う結果になります。
No.8
- 回答日時:
質問者には関係ないかもしれないが、こういう問題はVBA向きだ。
回答の複雑な式を見ていてそう思う。
他に見る人の参考までに。
D4セルに2011,H4に8の場合
(月中の各日について、曜日を判定し月水だけセルに書き出す)
Sub test01()
d = DateSerial(Range("D4"), Range("h4"), 1)
MsgBox d
m = DateSerial(Range("D4"), Range("h4") + 1, 0)
MsgBox m
k = 5
For i = d To m
If Weekday(i) = 2 Or Weekday(i) = 4 Then
Cells(k, "A") = i
Cells(k, "B") = i
Cells(k, "B").NumberFormat = "aaa"
k = k + 1
End If
Next i
End Sub
ーー
結果
2011/8/1月
2011/8/3水
2011/8/8月
2011/8/10水
2011/8/15月
2011/8/17水
2011/8/22月
2011/8/24水
2011/8/29月
2011/8/31水
ーーー
別のやり方で
作業列を使って良いなら、別シートSheet2に
月中日を作って 式は=DATE($D$4,$H$4,ROW()-4) (Sheet2のD4,H4には年、月があるとする。)
2011/8/11
2011/8/2
2011/8/32
2011/8/4
2011/8/5
2011/8/6
以下略
B列のB5に=IF(OR(WEEKDAY(A5)=2,WEEKDAY(A5)=4),MAX(B$4:$B4)+1,"")
月末日まで式を複写。
該当の月・水曜の日付に上から連番を振る。
ーー
Sheet1のA5で =INDEX(Sheet2!$A$1:$A$35,MATCH(ROW()-4,Sheet2!$B$1:$B$35,0),1)
下方向に式を複写する。
B列はA列と同じ値を入れて表示形式の設定をaaaにする。
(imogasi方式)
No.7
- 回答日時:
A5セル
=DATE(D4,H4,4+4*(WEEKDAY(DATE(D4,H4,1),2)>=4))-WEEKDAY(DATE(D4,H4,1),2)
始めに考えたのはIFで分岐
=IF(WEEKDAY(DATE(D4,H4,1),2)>=4,DATE(D4,H4,8)-WEEKDAY(DATE(D4,H4,1),2),DATE(D4,H4,4)-WEEKDAY(DATE(D4,H4,1),2))
一日の曜日で水・日どちらが先に来るか判定する
日曜なら8日からWEEKDAYの第2引数を2として、引き算し日曜を求める。
水曜なら4日からWEEKDAYの第2引数を2として、引き算し水曜を求める。
始めに書いたのは、それを短くしたもの
A6:A12セル
=A5+3+(WEEKDAY(A5,2)=3)
1つ上の行の曜日を求めて 3か4を足す
A13セル
=IF(DAY(A12+3+(WEEKDAY(A12,2)=3))=DAY(A12)+3+(WEEKDAY(A12,2)=3),A12+3+(WEEKDAY(A12,2)=3),"")
足し算したときの日付と 日付に足し算したものを比較し、
同じなら今月なので 1つ上の行の曜日を求めて 3か4を足す
違うなら今月ではないので表示しない

No.6
- 回答日時:
ANo.5です。
失礼、A6に入れる式、先ほどのは編集中の全然無関係の式でした。
これを入れてください
=IF(MONTH(A$5+INT((7*COUNT(A$5:A5)+1*(WEEKDAY($A$5,2)=3))/2))=H$3,A$5+INT((7*COUNT(A$5:A5)+1*(WEEKDAY($A$5,2)=3))/2),"")
No.5
- 回答日時:
いろいろなアプローチがあって面白いですね。
なるべく元の式を生かしたほうがいいのかなと思って補足を待っていたのですが、まだ無いので取り合えずこんな感じで。
A5に =DATE(D3,H3,1)+3+(WEEKDAY(DATE(D3,H3,1),2)>3)*4-WEEKDAY(DATE(D3,H3,1),2)
D3の年、H3の月を使い、その月の第一日曜日、第一水曜日の早いほうを表示しています。
A6に =IF(MONTH(A$5+INT((6+WEEKDAY(A$5))*COUNT(A$5:A5)/2))=H$3,A$5+INT((6+WEEKDAY(A$5))*COUNT(A$5:A5)/2),"")
と、入れて下にコピーしてください。
A$5+INT((6+WEEKDAY(A$5))*COUNT(A$5:A5)/2) でA5の日付以降の水曜日と日曜日を計算しています。
この計算で出された月がH3の月数と一致しなければ空白を表示します。
この回答への補足
=DATE(D3,H3,1)+3+(WEEKDAY(DATE(D3,H3,1),2)>3)*4-WEEKDAY(DATE(D3,H3,1),2)
2011/8/1 に3を加え(WEEKDAY(DATE(D3,H3,1),2)>3)*4-WEEKDAY(DATE(D3,H3,1),2)
とはどういう意味なのでしょう?
No.4
- 回答日時:
A5セルには次の式を入力しては下方にオートフィルドラッグします。
=IF(MONTH(IF(AND(WEEKDAY(DATE(D$4,H$4,1))>1,WEEKDAY(DATE(D$4,H$4,1))<=4),IF(MOD(ROW(A1),2)=1,DATE(D$4,H$4,0)+8+(ROUNDUP(ROW(A1)/2,0)-1)*7-WEEKDAY(DATE(D$4,H$4,4)),IF(MOD(ROW(A1),2)=0,DATE(D$4,H$4,0)+8+(ROUNDUP(ROW(A1)/2,0)-1)*7-WEEKDAY(DATE(D$4,H$4,7)))),IF(MOD(ROW(A1),2)=1,DATE(D$4,H$4,0)+8+(ROUNDUP(ROW(A1)/2,0)-1)*7-WEEKDAY(DATE(D$4,H$4,7)),IF(MOD(ROW(A1),2)=0,DATE(D$4,H$4,0)+8+(ROUNDUP(ROW(A1)/2,0)-1)*7-WEEKDAY(DATE(D$4,H$4,4)),""))))<>H$4,"",IF(AND(WEEKDAY(DATE(D$4,H$4,1))>1,WEEKDAY(DATE(D$4,H$4,1))<=4),IF(MOD(ROW(A1),2)=1,DATE(D$4,H$4,0)+8+(ROUNDUP(ROW(A1)/2,0)-1)*7-WEEKDAY(DATE(D$4,H$4,4)),IF(MOD(ROW(A1),2)=0,DATE(D$4,H$4,0)+8+(ROUNDUP(ROW(A1)/2,0)-1)*7-WEEKDAY(DATE(D$4,H$4,7)))),IF(MOD(ROW(A1),2)=1,DATE(D$4,H$4,0)+8+(ROUNDUP(ROW(A1)/2,0)-1)*7-WEEKDAY(DATE(D$4,H$4,7)),IF(MOD(ROW(A1),2)=0,DATE(D$4,H$4,0)+8+(ROUNDUP(ROW(A1)/2,0)-1)*7-WEEKDAY(DATE(D$4,H$4,4)),""))))
No.3
- 回答日時:
No2の回答には誤りがありました。
このケースでは、以下のような配列を使った数式にしたほうが簡単ですね。
A5セル(この数式を下方向にオートフィル)
=SMALL(IF(WEEKDAY(DATE($C$4,$H$4,0)+ROW($A$1:$A$31))={1,4},DATE($C$4,$H$4,0)+ROW($A$1:$A$31),""),ROW(A1))
配列数式ですので、入力後Ctrl+Shift+Enterで確定してください。
数式の意味は、C4とH4セルで表示されている月の前月の末日(=その月の0日)に1~31の数を加え(翌月の候補になる日付の配列)、この日付の曜日が日曜(1に相当)、水曜(4に相当)に該当する場合はそれぞれの日付を、そうでない場合は空白を返す配列を取得し、最後にこの配列の中から小さい順にデータを求めています。
また、この場合も、MONTH関数などを使って該当しないデータを空白表示するようにしてください。
例:(A6セルに入力する数式)
=IF(OR(A5="",MONTH(A5+7)<>$H$4),"",上記の数式のROW(A1)をROW(A2)にした数式)
No.2
- 回答日時:
添付画像の数式が一部不鮮明でわからないのですが(配列数式を利用しているようですね)、水曜と金曜の日付を取得するなら、それぞれA5セル、A6セルに以下の数式を入力し、その2つのセルを下方向にオートフィルしたほうが簡単なように思います。
A5セル
=DATE($C$4,$H$4,1)+MOD(7-WEEKDAY(DATE($C$4,$H$4,0),2)+2,7)+INT((ROW(A1)-1)/2)*7
A6セル
=DATE($C$4,$H$4,1)+MOD(7-WEEKDAY(DATE($C$4,$H$4,0),2)+4,7)+INT((ROW(A2)-1)/2)*7
月が変わった部分を表示したくないなら、上記の関数の日付の「月」がH4セルと等しくない場合は空白に、そうでない場合は上記の数式を入力するような数式になります。
=IF(MONTH(上記の式)<>$H$4,"",上記の式)
数式を複雑化しないようにするなら、数式を使った条件付き書式で「=MONTH(A5)<>$H$4」として、フォントを白くすることで対応するのが良いと思います。
No.1
- 回答日時:
補足願います。
式は画像では見づらいうえに入力が面倒です。
コピペ出来るように実際の式を補足に貼り付けてください。
この回答への補足
A5:=DATE(D3,H3,7-WEEKDAY(DATE(D3,H3,0)-(OR(WEEKDAY(DATE(D3,H3,1))={3,4,5,6}))*4,3))
A6:=IF(A5="","",IF(MONTH(A5+IF(WEEKDAY(A5)=2,4,3))=$H$3,A5+IF(WEEKDAY(A5)=2,4,3),""))
A7:=IF(A6="","",IF(MONTH(A6+IF(WEEKDAY(A6)=2,4,3))=$H$3,A6+IF(WEEKDAY(A6)=2,4,3),""))
遅れまして申し訳ありません。
<(_ _)>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 下記エクセルの式がなぜこうなるのか理由が知りたいです。 6 2022/08/20 00:43
- Access(アクセス) Access DTPickerの初期表示月を変えたい 1 2022/08/02 08:55
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- その他(クラウドサービス・オンラインストレージ) Googleカレンダーの共有について質問させて頂きます。 現在、個人でのGoogleカレンダーと職場 2 2022/10/19 15:58
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/04/13 10:55
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/12/23 14:57
- Excel(エクセル) エクセルでカレンダーを作りたい 5 2023/05/16 07:32
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルのVBAで集計をしたい
-
【関数】同じ関数なのに、エラ...
-
Office2021のエクセルで米国株...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
エクセルのdatedif関数を使って...
-
【画像あり】オートフィルター...
-
【マクロ】アクティブセルの時...
-
【マクロ】列を折りたたみ非表...
-
他のシートの検索
-
【マクロ】3行に上から下に並...
-
【条件付き書式】シートの中で...
-
ページが変なふうに切れる
-
【マクロ】実行時エラー '424':...
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】【相談】Excelブック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報