web-dev-qa-db-ja.com

月の日曜日の数を計算します

Microsoft Excelでは、特定の月の日曜日の数を特定しようとしています。私は予算のスプレッドシートをまとめています。月曜日の5日が4日ではなく、一部のサブアカウントで追加の資金が得られます。

私が参照しなければならない唯一のセルは、セルA1にあり、現在の月に等しいシートのタイトルです。例えば ​​6/1/14

8
wbeard52

_A1_が月の開始日である場合、これを試してください。

_=SUMPRODUCT(N(TEXT(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))),"ddd")="Sun"))
_

_"Sun"_を開始日で置き換え、EOMONTH(A1,0)を終了日で置き換えることで、_A1_および任意の日付範囲を変更するだけで、曜日にこれを使用することもできます。

12
Jay-ar

あなたが言及した日付が常に月の最初である場合、これも機能します:

=INT((WEEKDAY(A1-1)+EOMONTH(A1,0)-A1)/7)
9
teylyn

以前の答えと非常に似ていますが、少しだけきれいです...

=SUMPRODUCT(N(WEEKDAY(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))))=1))
3
user743733
=DAY(EOMONTH(A1,0))-NETWORKDAYS.INTL(A1,EOMONTH(A1,0),11)

編集:これはExcel 2016で機能しますが、NETWORKDAYS.INTLがいつ導入されたかはわかりません。

3
SRCP

私はこの猫を(いわば)皮を剥ぐ別の方法を見つけたと思います。

日付の入力を避け、投影用の大きなシート(たとえば、18か月間)がある場合は、代わりに、月と年が何であるかを数式に伝え、それに応じて書式設定することができます。これは、問題の曜日を含むヘッダーセルへの絶対参照と結合され、はるかにコンパクトでクリーンなテーブルになります(私の意見では)。

A3 = Jan、B3 = 2017、C2:I2 = 3 Char Day Abbreviation(i.e. Sun)

セルC3に数式を入力します

=SUMPRODUCT(N(TEXT(ROW(INDIRECT(DATEVALUE(TEXT(CONCAT($A3,"/",$B3),"mm/dd/yyyy"))&":"&EOMONTH(DATEVALUE(TEXT(CONCAT($A3,"/",$B3),"mm/dd/yyyy")),0))),"ddd")=C$2))

ハッピーハンティング

1
Jeremy Cast

受け入れられる回答 のわずかなバリエーション。ここでは、A1の月の最初の日は必要ありません。

これは、A1を次のように置き換えることで実現されます。

date(year(today()),month(today()),1)

これは、あなたが今月のためにそれを望んでいると仮定しています。

=SUMPRODUCT(N(TEXT(ROW(INDIRECT(date(year(today()),month(today()),1)&":"&EOMONTH(date(year(today()),month(today()),1),0))),"ddd")="Sun"))
1
CalvT