2013-10-08 48 views
1

我有數據的時間序列表(按行交易,日經柱,開始A1):SUMPRODUCT行

>Series 9/30/12 10/31/12 11/30/12 12/31/12 
Deal 1  750.0  750.0  750.0  750.0 
Deal 2  300.0  150.0  300.0  300.0 
Deal 3  500.0  500.0  600.0  500.0 
Deal 4  340.0  500.0  250.0  340.0 
Total  1890.0  1900.0  1900.0  1890.0 

我想概括之間的差異每行都在兩列中,使用日期作爲變量,並且只在方差爲正數時使用。真正的訣竅是我不想通過交易來增加和減少價值網。我能夠通過指定我想要使用的兩列來使其工作,從而使得交易4從10/31到9/30增加160(它忽略了交易2從10/31減少到150的9/30)

= SUMPRODUCT((IF((C2:C5) - (B2:B5)> 0,(C2:C5) - (B2:B5))))

一旦我嘗試將任何類型的日期變量應用於選定的範圍,它會崩潰。我嘗試過使用幾種不同的操作符來允許日期由可變單元格選擇,但一旦我能夠接受公式,它就會回到淨值。

+2

您想要的結果(來自所提供的數據)的示例可能會有所幫助。 – pnuts

+0

上面的代碼產生正確的結果(160)。如果它是正數,我只想總結列之間的差異。當它試圖創建一個變量來選擇我想比較的日期時:= SUMPRODUCT((IF((IF($ B $ 1:$ E $ 1 = $ C $ 1,B2:E5)) - ( IF($ B $ 1:$ E $ 1 = $ B $ 1,B2:E5))> 0,SUMPRODUCT((IF($ B $ 1:$ E $ 1 = $ C $ 1,B2:E5)) - (IF($ B $ 1:$ E $ 1 = $ B $ 1,B2:E5))))) – cbroas

回答

0

以L1和M1作爲一個範圍所需的界限,一個公式是可能的(但它沒有,而不可收拾 - 希望的東西要簡單得多就會轉起來!):

= IFERROR(SUMPRODUCT( (64 +比賽(M $ 1,$ A $ 1:$ E $ 1,0)&「2:」& CHAR(64+比賽(M $ 1,$ A $ 1:$ E $ 1,0) )&「5」) - INDIRECT(CHAR(64 + MATCH(L $ 1,$ A $ 1:$ E $ 1,0))&「2:」& CHAR(64 + MATCH(L $ 1,$ A $ 1:$ E (64 + MATCH(M $ 1,$ A $ 1:$ E $ 1,0))&「2:」& CHAR(64 + MATCH(M $ 1, $ A $ 1:$ E $ 1,0))&「5」) - INDIRECT(CHAR(64 + MATCH( L $ 1,$ A $ 1:$ E $ 1,0)&「2:」& CHAR(64 + MATCH(L $ 1,$ A $ 1:$ E $ 1,0))&「5」)))), 「)

在M2中並複製到M5。

+1

哇,我從來沒有想過將日期關聯到列的序列引用,然後應用運算符。這工作,非常感謝幫助! – cbroas

+0

我認爲這個想法顯示了承諾 - 但從來沒有料到這樣一個可怕的結果! – pnuts