贊助廠商

///本部落格所有文章列表///

搜尋本部落格文章資料

有網友根據這篇:Excel-計算實際年齡(年月日)-DATEDIF文章,提出了一個問題:

如果在 DATEDIF 函數中,使用參數:md(忽略年月,計算天數),當起始日為 2014/7/28,結束日分別是 2014/10/9 與 2014/11/9,結果分別是11和12,為何會有這樣的差異呢?

關於 DATEDIF 函數的語法說明如下:

DATEDIF

語法:DATEDIF(start_date,end_date,unit)

Unit說明

"Y":週期中的整年數

"M":週期中的整月數

"D":週期中的天數

"MD"start_dateend_date間的天數差。(忽略日期中的月和年)

"YM"start_dateend_date間的月數差。(忽略日期中的日和年)

"YD"start_dateend_date間的天數差。(忽略日期中的年)

 

依照我的推估(參考下圖),其天數差的計算可能是如下的運作:

以 1 月的 28 日和每個月的 9 日來計算天數差為例,則是先找出「迄日前一個月的28日距最後一天的天數,再加上迄日當月的天數(9)。

所以不同月份的迄日,將會在使用「md」參數時,會得到不同的天數差。

如果網友有不同的看法,歡迎給我參考!

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

有網友問到:如下圖的資料表,如何將各欄位中有「V」勾選的項目,將第一欄予以加總小計?例如:現貨的小計為 20000+5000+600+1000 = 26600。

這是一個很典型的 SUMPRODUCT 函數的應用,函數的基本語法:

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

SUMPRODUCT:傳回各陣列中所有對應元素乘積的總和。

語法:SUMPRODUCT(array1, [array2], [array3], ...)

array1:要求對應元素乘積和的第一個陣列引數。

array2, array3,...:要求對應元素乘積和的第 2 個到第 255 個陣列引數。

註:各陣列必須有相同的維度(相同的列數,相同的欄數)。否則會傳回錯誤值#VALUE!。並且會將所有非數值資料的陣列元素當成0來處理。

 

【輸入公式】

儲存格B7:=SUMPRODUCT($A$2:$A$6,(B2:B6="V")*1)

B2:B6="V":判斷儲存格範圍中的內容是否為「V」,得列一個 TRUE/FALSE 的陣列。

image

(B2:B6="V")*1:利用「*1」運算,將 TRUE/FALSE 陣列轉換成 1/0 陣列。

image

再透過 SUMPRODUCT 函數運算:

以「現貨」欄位為例:20000X1 + 5000X1 + 600X1 + 500X0 + 1000X1 = 26600。

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

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼