EXCEL 該月份有多少個星期日?

2011-07-30 8:55 pm
請問在EXCEL裡, 要知道today()所屬的月份中有多少個星期日, 公式應該怎樣寫?
更新1:

請直接指教,直接寫出正確的公式,謝謝。

更新2:

4+ 係點解? 又, 點解最後要減27?

更新3:

小NICK, 咁即係點解要加4呢? SIR, 如果今年嘅七月一日係星期四, 咁星期日就只係淨番四個! 咁咪唔啱囉?!

更新4:

小NICK, SORRY, 剛見到你個意見啦, 唔該晒.

回答 (4)

2011-07-31 2:52 am
✔ 最佳答案
=4+(WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY())+1,0))

又或者

=4+(WEEKDAY(DATE(YEAR(NOW()),MONTH(NOW())+1,0))

2011-07-30 18:55:35 補充:
兩條公式都貼漏咗最後四個位, 修正如下:

=4+(WEEKDAY(DATE(YEAR(NOW()),MONTH(NOW())+1,0))-27)

2011-07-30 19:04:15 補充:
原來又係 Yahoo! 嘅 bug, 食晒我公式 < 打後嘅字! .\"/.

正確公式:

=4+(WEEKDAY(DATE(YEAR(NOW()),MONTH(NOW())+1,0))

2011-07-30 19:07:05 補充:
#@#&%*!!!! .\"/.

正確公式:

=4+(WEEKDAY(DATE(YEAR(NOW()),MONTH(NOW())+1,0)) < DAY(DATE(YEAR(NOW()),MONTH(NOW())+1,0))-27)

2011-07-31 07:25:54 補充:
將邏輯化成公式 =4+(1或0), 因每月不是四個星期天便是五個。

而邏輯部份, 每月五個星期天是有特定情況存在, 以月尾日 DATE(Y,M+1,D=0) 例如 DAY()=31, WEEKDAY() 以星期天 =1 計, 不會出現在星期三 WEEKDAY()=4; 同樣情況, 29 號必須要是星期天才會有五個星期天, 是星期一不成, 即 WEEKDAY(29號)=1 少於 DAY()=29 - 27 才正確, 而公式中的 TRUE=1, FALSE=0。

2011-07-31 19:01:23 補充:
終於消化晒漢兄嘅手法~ ^_^ 尤其是將 date range 確切轉化成公式陣列那手法~ 真係獲益良多~

引用漢兄語法, 我原有公式可以更纖瘦~

=4+(WEEKDAY(((MONTH(NOW())+1)&"-1")-1) < DAY(((MONTH(NOW())+1)&"-1")-1)-27)

2011-08-02 18:04:50 補充:
我以上公式和意見, 解決到你問題嗎?
2011-08-03 11:42 pm
=CEILING(DAY(DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(EOMONTH(TODAY(),0))-MOD(WEEKDAY(EOMONTH(TODAY(),0),2),7)))/7,1)


EOMONTH(TODAY(),0) 得出本月的最後一天的日期

我的做法是找出本月最後一個星期日的日期,(e.g.31/7/2011),然後,取其日子(即31) 除以7, 再用Ceiling 取得星期日的日數.

如上例: 31除 7 = 4.42.... 取其ceiling 得 5 <-日數也
2011-07-31 9:08 am
小Nick的自帶常數數學式, 瘦身如下:
=4+(WEEKDAY(MONTH(NOW())&"-1",2) > 35-DAY(DATE(YEAR(NOW()),MONTH(NOW())+1,)))
多提供另一思路:
=INT((DAY(DATE(YEAR(NOW()),MONTH(NOW())+1,))+WEEKDAY(MONTH(NOW())&"-1",2)-1)/7)

2011-07-31 01:29:04 補充:
不求最短, 再多提供兩個思路:
=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(--(MONTH(NOW())&"-1")&":"&DATE(YEAR(NOW()),MONTH(NOW())+1,))))=1))

=SUMPRODUCT(--(TEXT(ROW(OFFSET(INDIRECT("A"&TODAY()),-31,,62,)),"dddm")="sun"&MONTH(NOW())))

2011-07-31 22:28:42 補充:
回004意見, (Month(now())+1)&"1" 祇對1~11月有效, 12月是會出錯
12 + 1 = 13
文字顯示日期格式是不會將13月化成下年一月, 故祇可套用date函數

2011-07-31 23:36:41 補充:
以下公式, 可能是最纖瘦:
=4+(WEEKDAY(EOMONTH(NOW(),0)) < DAY(EOMONTH(NOW(),0))-27)

EOMONTH(End Of MONTH)函數是增益表函數, 2007版本以上可用, 2003版或之前, 便要加載才能使用
2011-07-30 9:08 pm
提供以下網址作參考:
Excel資源天地 http://www.excelexcel.com/Chinese/
內含Excel公式函數表(functions / formula summary) ... Excel快捷鍵(shortcut key summary) 如何只用鍵盤轉換活頁簿(Spreadsheet) ...

希望幫到你
kwun hin


收錄日期: 2021-04-20 00:56:41
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20110730000051KK00499

檢視 Wayback Machine 備份