簡體   English   中英

根據每個行之間2個相鄰單元格之間的另一個值對Excel中的列求和

[英]Summing a column in Excel based on a another value falling between each rows 2 adjacent cells

我有一個Excel電子表格,可以對所選帳戶的直接借記進行分析,我有一個查找表"Sheet2" ,如圖所示,其中包含我需要的信息。

我感興趣的表有3列我感興趣的, amountto and from日期。

Sheet1 B13我想在Sheet2:D5:D:100上執行=sum() ,但僅在B1中的日期在范圍內時,才將其添加到總和中。

我可以使用-sumifs()來對列進行總計,甚至可以基於日期對一行進行-sumifs() ,但不知道從何處開始。 我想我需要使用count()之類的東西?

我不一定要尋找一個直接的答案,而是對自動計算的一個粗略解釋,以便將來我可以輕松地完成這種事情!

在此處輸入圖片說明

普通的舊字體?

    A       B           C
1       2013-03-14  
2   6   2013-01-01  2013-01-02
3   8   2013-03-12  2013-03-23
4   5   2013-05-21  2013-06-01
    =SUMIFS(A2:A4;B2:B4;CONCATENATE("<=";B1);C2:C4;CONCATENATE(">=";B1))

我認為最好將數組公式與總和混合使用。 就像是

=SUM((B1>Sheet2!$D$5:$D$100)*(B1<Sheet2!$E$5:$E$100)*Sheet2!$C$5:$C$100)

現在,這里發生的事情分為幾個部分:

  1. 第一組內部括號(B1> Sheet2!$ D $ 5:$ D $ 100)檢查B1中的日期是否大於其他工作表中的第一個日期。 該值為1表示為true,0表示為false。
  2. 第二組內支架(B1
  3. 如果兩個條件都為真,則這些乘以1或0的值僅是1。 因此,當日期對齊時,第三部分就開始播放,並計算總和。
  4. 此公式是一個數組公式,因為這些操作中的每一個都會應用於您定義范圍內的每一行

要在Excel中輸入數組公式,必須使用CTRL + SHIFT + ENTER輸入公式。 括號{}將出現在公式周圍。 它看起來像

{=SUM((B1>Sheet2!$D$5:$D$100)*(B1<Sheet2!$E$5:$E$100)*Sheet2!$C$5:$C$100)}

如果有效。 如果您無法完全理解,請發表評論,我會幫助您。

假設您希望通過幾個日期來計算總和(從C1的第一部分開始),我將使用以下三種方式之一進行設置。

使用帶有額外列的額外工作表,其中為sheet1中的每個日期計算dateLowerBound <date <dateUpperBound,並使用帶有該額外列的SUMIF作為鍵。

使用DSUM可以支持復合標准,但是它的語法似乎總是讓我為考慮使用DSUM感到生氣。

編寫一個VB宏(假設工作表的結構是合理的靜態的,並且在定義明確的點上可以重新計算總計,可以將其掛接到日期單元格和/或日期的onChanged事件上到Sheet2數據表區域。

暫無
暫無

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

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