簡體   English   中英

Excel 2013-總計日期范圍

[英]Excel 2013 - Sum with a date range

美好的一天,我終於決定尋求幫助。 我有1個工作簿,多個工作表。 公式給了我#值! 我了解它的數據類型錯誤。 我只是想查看1列日期內的范圍,然后在2個單獨的列中添加一列數字,然后將這2列相除並乘以30。這等於。 SUM(D31 / C31)* 30。 僅使用數字時,此小公式非常有用。 我將總小時數除以生產量乘以每小時30美元。 顯然,我將在一年中的每個月執行此操作。

2張紙的標簽如下。 下面的公式位於“每月”工作表中。 它是參考表“總成本”。 我希望我能給您足夠的信息,也許您也許有時間來幫助我。 注意:我的范圍相當長,因為它應該可以全年工作,所以我使其深度達到10,000行。

式:

=SUMPRODUCT(('Overall Cost'!$B$3:$B$10000<=DATE(2015,9,30))*('Overall Cost'!$B$3:$B$10000>=DATE(2015,9,1)),SUM(('Overall Cost'!$D$3:$D$10000)/SUM('Overall Cost'!$C$3:$C$10000))*30)

樣本數據:

               "B"      "C"    "D"
                       SQ FT   Hours
              Date       OH     OH
Wednesday   8/10/15     3427    232
Thursday    8/11/15     5536    232
Friday      8/12/15     2364    232
Monday      8/1/15      6408    232
Tuesday      9/4/15     2499    232
Wednesday    9/5/15     870     232

您不能在這樣的SUMPRODUCT函數中使用SUM函數 SUMPRODUCT嘗試逐行處理每一行,並且SUM將所有行總計為一個圖形。

您還將獲得#DIV/0! 由於SUMPRODUCT強大的計算模式而導致的錯誤。 您多余的行(范圍從10000開始)可以被截斷到B列中的日期范圍。由於它們是標准,因此可以推斷出C列和D列中的最后一個日期之后的行中沒有數字是有意義的。

=SUMPRODUCT(('Overall Cost'!B$3:INDEX('Overall Cost'!B:B, MATCH(1E+99, 'Overall Cost'!B:B ))<DATE(2015, 10, 1))*
            ('Overall Cost'!B$3:INDEX('Overall Cost'!B:B, MATCH(1E+99, 'Overall Cost'!B:B ))>=DATE(2015, 9, 1)), 
             'Overall Cost'!$D$3:INDEX('Overall Cost'!D:D, MATCH(1E+99,'Overall Cost'!B:B)), 
          30/'Overall Cost'!$C$3:INDEX('Overall Cost'!C:C, MATCH(1E+99,'Overall Cost'!B:B )))

我還調整了您的數學層次結構。 列C和D的除法運算與列D乘以C上30所產生的分數的乘積相同。

帶有INDEX限制器的SUMPRODUCT

如果您在C列中沒有零值,則應該沒問題。 如果這樣做,則可能必須引入IFERROR函數或其他條件。該公式還僅將計算限制在沒有空白單元格的空白“安全區域”的情況下。

如果您仍在接收#DIV/0! 錯誤,則C列中必須有空白單元格或具有0的單元格。 #DIV/0! 字面上的錯誤是: 您正在嘗試將數字除以零。

可以使用IFERROR函數解決此問題,但是需要額外的處理層,因此您需要使用Ctrl + Shift + Enter↵來完成以下公式。

=SUMPRODUCT((oc!B$3:INDEX(oc!B:B, MATCH(1E+99, oc!B:B ))<DATE(2015, 10, 1))*
               (oc!B$3:INDEX(oc!B:B, MATCH(1E+99, oc!B:B ))>=DATE(2015, 9, 1)),
             oc!$D$3:INDEX(oc!D:D, MATCH(1E+99,oc!B:B)),
             IFERROR(30/oc!$C$3:INDEX(oc!C:C, MATCH(1E+99,oc!B:B )), 0))

遇到#DIV/0!時,可以通過強制分子為零,分母為1來模擬非CSE公式#DIV/0! 情況。

=SUMPRODUCT((oc!B$3:INDEX(oc!B:B, MATCH(1E+99, oc!B:B ))<DATE(2015, 10, 1))*
              (oc!B$3:INDEX(oc!B:B, MATCH(1E+99, oc!B:B ))>=DATE(2015, 9, 1))*
              (oc!$C$3:INDEX(oc!C:C, MATCH(1E+99,oc!B:B ))<>0),
             oc!$D$3:INDEX(oc!D:D, MATCH(1E+99,oc!B:B)),
         30/(oc!$C$3:INDEX(oc!C:C, MATCH(1E+99,oc!B:B ))+
              (oc!$C$3:INDEX(oc!C:C, MATCH(1E+99,oc!B:B ))=0)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM