有網友想要知道一年中每個月份的星期一、星期二、…、星期日的數量,該如何處理?

參考下圖,以2014年為例,找出每個月星期日到星期六的日數:

【輸入公式】

儲存格C2:=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(DATE($A2,$B2,1) & ":" & DATE($A2,$B2+1,0))),1)=COLUMN(A:A)))

DATE($A2,$B2,1):取得該月的第一天。

DATE($A2,$B2+1,0):取得該月的最後一天。【注意這個技巧,求下個月的 0 號日期,即為上個月的最後一天】

INDIRECT(DATE($A2,$B2,1) & ":" & DATE($A2,$B2+1,0)):將該月頭尾日期代入 INDIRECT 函數,轉換為一個儲存格範圍。例如一月為:$41640:$41670。

ROW(INDIRECT(DATE($A2,$B2,1) & ":" & DATE($A2,$B2+1,0))):將上式代入 ROW 函數,本例可得 ROW($41640:$41670)。

接著,將上式帶入 WEEKDAY 函數來取得一個星期幾的傳回值,其中參數「1」表示星期日 = 1、星期一 = 2、…、星期六 = 7。

利用上式來判斷是否等於 COLUMN(A:A),得到一個 True/False 陣列,WEEKDAY 函數前的「--」,可以將 True/False 陣列,經由運算轉換為 1/0 陣列。

最終,透過 SUMPRODUCT 函數,計算 1 的數量,即為所求。

接著,複製儲存格C3,貼至儲存格C2:I13。

至於數字(4、5)左側的符號,是設定格式化的條件,所選取的樣式而來的:

image

arrow
arrow
    全站熱搜

    vincent 發表在 痞客邦 留言(3) 人氣()