close

838

二個日期間星期一到星期天出現次數
IFMODQUOTIENTCOLUMNWEEKDAY函數

示範檔

範例檔

838.XLSX

結果檔

838F.XLSX

曾經有位學員提出一個問題!「老師Excel函數中日期類別是否有一個可以統計二個日期間星期一到星期日出現的次數,如下圖所示‧」雖然感覺這個問題是否沒什麼意義,但還是認真找尋一番,答案是「無」。那怎麼辦呢?

錦子老師個人研究的做法如下:

步驟1.C2儲存格中輸入公式「=IF(MOD($B2-$A2+1,7)=0,QUOTIENT($B2-$A2+1,7),IF(COLUMN()-2+7<=WEEKDAY($A2,2)+MOD($B2-$A2+1,7)-1,QUOTIENT($B2-$A2+1, 7)+1,IF(AND(COLUMN()-2>=WEEKDAY($A2,2),COLUMN()-2<=WEEKDAY($A2,2)+MOD($B2-$ A2+1,7)-1),QUOTIENT($B2-$A2+1,7)+1,QUOTIENT($B2-$A2+1,7))))」後,按Enter鍵完成輸入。

公式解析

IF(MOD($B2-$A2+1,7)=0,QUOTIENT($B2-$A2+1,7),…) 首先判斷二個日期相減後的差距天數除以7(一週七天)是否餘數為0(MOD($B2-$A2+1,7)=0),若是則傳回二個日期差距天數除以7的整數部份(QUOTIENT($B2-$A2+1,7)),若不是則做下面的判斷。

IF(COLUMN()-2+7<=WEEKDAY($A2,2)+MOD($B2-$A2+1,7)-1,QUOTIENT($B2-$A2+1,7)+ 1,… 如果二個日期相減後的差距天數除以7餘數不是0,由於差距天數最大值為6,而星期天為7,二者相加等於13,故首先要將星期一到星期天所在欄的欄編號-2+7(COLUMN()-2+7),是否小於等於開始日期的星期幾(WEEKDAY($A2,2))+二個日期相減後的差距天數除以7的餘數減1(MOD($B2-$A2+1,7)-1),若是則傳回二個日期差距天數除以7的整數部份的值加1(QUOTIENT($B2-$A2+1,7)+1),若不是則做下面判斷

IF(AND(COLUMN()-2>=WEEKDAY($A2,2),COLUMN()-2<=WEEKDAY($A2,2)+MOD($B2-$ A2+1,7)-1),QUOTIENT($B2-$A2+1,7)+1,QUOTIENT($B2-$A2+1,7) 如果開始日期的星期幾+二個日期相減後的差距天數除以7的餘數不大於7,則判斷所在欄的欄編號-2是否大於等於開始日期的星期幾(COLUMN()-2>=WEEKDAY($A2,2)),而且要小於等於開始日期的星期幾(WEEKDAY($A2,2))+二個日期相減後的差距天數除以7的餘數減1(MOD($B2-$A2+1,7)-1),若是則傳回二個日期差距天數除以7的整數部份的值加1(QUOTIENT($B2-$A2+1,7)+1),若不是則傳回二個日期差距天數除以7的整數部份的值(QUOTIENT($B2-$A2+1,7))

COLUMN函數解析:

COLUMN() 傳回作用儲存格所在欄的編號值。

MOD函數解析:

MOD(Number,Divisor) 傳回數值除以除數的餘值。

Number:被除數。

Divisor:除數。

QUOTIENT函數解析:

QUOTIENT(Numerator,Denominator) 傳回數值除以除數的整數部份。

Numerator:被除數。

Denominator:除數。

WEEKDAY函數解析:

WEEKDAY(Serial_number,Return_type) 傳回介於1~7的整數,用以識別星期幾。

Serial_number:代表日期的數字。

Return_type:為一數字,用以決定星期幾的代表數字,如下圖所示。

步驟2.將滑鼠指標移到C2儲存格右下角,直到遊標為「+」時,按住滑鼠左鍵不放向下拉至C11儲存格,再向右拉至I11儲存格,如下圖所示。


arrow
arrow

    錦子老師 發表在 痞客邦 留言(0) 人氣()