有人問到:如果想要求取二個日期之間,每個星期幾的數量分別為多少,該如何處理?(參考下圖)

日期置於儲存格 A2 和儲存格 A3。

【參考做法】

儲存格D2:=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT($A$2&":"&$A$3)))=ROW(1:1)))

複製儲存格D2,貼至儲存格D2:D8。

$A$2&":"&$A$3:日期轉換成數字,再產生字串。本例為:「41299:41491」

INDIRECT($A$2&":"&$A$3):轉成一段儲存格範圍,例如$41299:$41491。

ROW(INDIRECT($A$2&":"&$A$3)):本例為執行ROW($41299:$41491),產生 41299, 41300,  … ,41491 的陣列。

WEEKDAY(ROW(INDIRECT($A$2&":"&$A$3))):找出陣列數值中,每個數值為星期幾代表的數字。例如:41299,41300,41301, … 分別代表 6, 7, 1, … 。

將上式與 ROW(1:1)=1 判斷是否相同,如果是代表是星期日。(公式複製向下時,ROW(1:1)會變為ROW(2:2)=2,…)

公式中的「--」,乃將公式中的 True / False ,藉由運算轉換為 1 / 0 陣列。

最後再以 SUMPRODUCT 函數加總 1 即為所求。

 

【參考資料】

相關函數說明,請閱微網站:

SUMPRODUCT:http://office.microsoft.com/zh-tw/excel-help/HP010342935.aspx

arrow
arrow
    全站熱搜

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