Microsoft Excelでは、特定の月の日曜日の数を特定しようとしています。私は予算のスプレッドシートをまとめています。月曜日の5日が4日ではなく、一部のサブアカウントで追加の資金が得られます。
私が参照しなければならない唯一のセルは、セルA1にあり、現在の月に等しいシートのタイトルです。例えば 6/1/14
_A1
_が月の開始日である場合、これを試してください。
_=SUMPRODUCT(N(TEXT(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))),"ddd")="Sun"))
_
_"Sun"
_を開始日で置き換え、EOMONTH(A1,0)
を終了日で置き換えることで、_A1
_および任意の日付範囲を変更するだけで、曜日にこれを使用することもできます。
あなたが言及した日付が常に月の最初である場合、これも機能します:
=INT((WEEKDAY(A1-1)+EOMONTH(A1,0)-A1)/7)
以前の答えと非常に似ていますが、少しだけきれいです...
=SUMPRODUCT(N(WEEKDAY(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))))=1))
=DAY(EOMONTH(A1,0))-NETWORKDAYS.INTL(A1,EOMONTH(A1,0),11)
編集:これはExcel 2016で機能しますが、NETWORKDAYS.INTLがいつ導入されたかはわかりません。
私はこの猫を(いわば)皮を剥ぐ別の方法を見つけたと思います。
日付の入力を避け、投影用の大きなシート(たとえば、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))
ハッピーハンティング
受け入れられる回答 のわずかなバリエーション。ここでは、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"))