- 帖子
- 142
- 主題
- 80
- 精華
- 0
- 積分
- 221
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- OFFICE 2003
- 閱讀權限
- 20
- 註冊時間
- 2011-4-14
- 最後登錄
- 2021-4-28
|
3#
發表於 2011-5-20 10:56
| 只看該作者
我在網路上看到可列出每個月的星期六 '日的一個函數教學,但是我作不出來,
請問該如何作呢? 謝謝!
教學內容如下:
Excel-列出週六日的日期
在 Excel 中提供了多種方便使用的日期函數,如果要列出某年的週六、週日之日期(如下圖),該如何設計?
先在儲存格B1中以資料驗證方式,指定儲存格為「清單」,內容為「2010,2011,2012,2013」。
接著設定一個名稱:DATA
DATA:=INDIRECT("A"&DATE($B$1,1,1)&":A"&DATE($B$1,12,31))
公式中的:"A"&DATE($B$1,1,1)&":A"&DATE($B$1,12,31)
假設儲存格B1的內容為2011,
則公式=A40544:A40908,40544為2011/1/1的數值,而40908為2011/12/31的數值。
再透過INDIRECT函數轉成儲存格位址。也就是當選擇了一個年度時,會產生一組位址和日期數值相同的儲存格陣列。
(1) 找出日期
儲存格B3:{=SMALL(IF(WEEKDAY(ROW(DATA),2)>5,ROW(DATA),FALSE),ROW(1:1))}
ROW(DATA)會將日期位址的陣列轉換回數值(例如:40544、40545、40546…)陣列,而WEEKDAY函數用以找出是否為星期六、日(傳回值為6,7)。
SMALL函數可以依序(藉由ROW函數)由小到大列出日期。
複製儲存格B3,往下貼上。
(2) 顯示星期六、日
儲存格C3:=CHOOSE(WEEKDAY(B3,2)-5,"六","日")
因為WEEKDAY(B3,2)會傳回6或7,所以減5後得1或2,在CHOOSE函數中可得「六或日」。
複製儲存格C3,往下貼上。
(3) 顯示月份
儲存格A4:=IF(MONTH(B4)=MONTH(B3),"",MONTH(B4)&"月")
因為只有該月的第一天會顯示月份,所以只要比對和上一個儲存格所得的月份不同者顯示月份,否則顯示空白。
複製儲存格A4,往下貼上。
同理,如果你想要只找出某一年中星期二的所有日期:
儲存格F3:{=SMALL(IF(WEEKDAY(ROW(DATA),2)=2,ROW(DATA),FALSE),ROW(1:1))}
複製儲存格F3,往下貼上。 |
|