2016-06-12 11 views
0

日曜日の夕方にグループのロータを作っているので、日付のリストを自動化できるかどうか少し調べてみることにしました。私は最終的には、ほとんどすべての解決策を作り出しました。今私が持っている唯一の問題は、日曜日の日付を1つではなく接頭辞で表示するには2つのセルが必要だということです。接頭辞をつけた月の日曜日を自動的に一覧表示する

私はオンラインのMicrosoft Office Excelブックhere(のリンクを持っていることは、この

Single Column

ようになりたいのに対し、テーブルは現在この

Two Columns

のように見えます編集可能)

現在、私はこのような式を使用していますs

=DATE(YEAR($B$3), MONTH($B$3), MOD(7-DATE(YEAR($B$3), MONTH($B$3), 1)+ 1,7)+1) //For the first Sunday of the month 
=DAY(DATE(YEAR($B$3), MONTH($B$3), MOD(7-DATE(YEAR($B$3), MONTH($B$3), 1)+ 1,7)+1))&VLOOKUP(DAY(DATE(YEAR($B$3), MONTH($B$3), MOD(7-DATE(YEAR($B$3), MONTH($B$3), 1)+ 1,7)+1)),$E$4:$F$12,2,TRUE) //For the first Sunday of the month with a prefix 

=IF(YEAR(B4+7)>$B$3,"",B4+7) //Subsequent Sundays 
=DAY(IF(YEAR(B4+7)>$B$3,"",B4+7))&VLOOKUP(DAY(IF(YEAR(B4+7)>$B$3,"",B4+7)),$E$4:$F$12,2,TRUE) //Subsequent Sundays with Prefix 

私はこれを達成するための助けに感謝します。

+0

日付の最初の列を「d \ t \ h」のカスタム番号書式に変更するだけです。 '5th'を出力しますが、残念なことに' 1th'と '2th'と' 3th'も出力します。 –

+0

@ScottCranerだからこそ、私はそのようにしていないよ – Dan

答えて

2

数式ソリューションの場合は、次の操作を実行できます。

A1: The first date in any month (e.g. 1-Jun-2016) 

A2: = IF(SUM(INT((EOMONTH($A$1,0)-1)/7)-INT(($A$1-2)/7))>=ROWS($1:1), TEXT($A$1-DAY($A$1)+1+7*ROWS($1:1)-WEEKDAY($A$1-DAY($A$1)),"d")&MID("thstndrdthththththth",1+2*(MOD(TEXT($A$1-DAY($A$1)+1+7*ROWS($1:1)-WEEKDAY($A$1-DAY($A$1)),"d"),10)*(ABS(MOD(TEXT($A$1-DAY($A$1)+1+7*ROWS($1:1)-WEEKDAY($A$1-DAY($A$1)),"d"),100)-12)>1)),2),"") 

と記入してください。 4か月か5日の日曜日に自動的に調整されます。 ROWS($1:1)部分は、その後の日曜日のための7日付をインクリメントするために使用されている

=A1-DAY(A1)+1+7*ROWS($1:1)-WEEKDAY(A1-DAY(A1)) 

月の最初の日曜日は、によって計算されます。式の残りの部分は、日付のための適切な接尾辞を計算することである

=SUM(INT((EOMONTH($A$1,0)-1)/7)-INT(($A$1-2)/7)) 

月の日曜日の数は、5空白行にするかどうかを決定するために使用する、によって計算されます。

+0

ありがとう – Dan

関連する問題