2014-03-03 29 views
0

我的問題是:我不知道哪個excel function(s)我應該利用,以實現我的目標沒有宏。excel公式函數 - 父子單元計算從它的孩子

我的目的是:正如你在圖像的下方看到的,我有一個樹或結構BOM(材質清單)。如果一個細胞有它的孩子,那麼我需要計算父細胞的適當值。

在圖像中,黃色bg函數意味着如果單元格有孩子,則值應該與孩子的值一起計算。

本文檔將作爲一個活文檔,隨着項目的進展而更新,因此我知道可能的最大孩子數量,但我不知道在項目結束時我將使用多少最大值。

例如: D3(最初有2個孩子)可能在1年後有5個孩子,4年後有8個孩子,在項目結束時有13個孩子。但不能超過最大值(比方說25)

我需要一個結構,畢竟formula template是構造的,如果我添加一個新行作爲D3的子元素,那麼excel必須再次使用新的子元素與老的子元素

例如: 方法:總和兒童值 最初: D3 = D4 + D5

一會兒一個新的子加入作爲D6, D3後= D4 + D5 + D6

我當不可t做手動設置。我真正的Excel將有成千上萬的值,和統計的複雜計算

enter image description here

回答

1

好吧,這裏的話,你可以:

F列中添加以下內容(第3行): (確定這是家長,這是最後一個孩子)

=IF(C3<>C4,IF(C3=1,"Parent","End of Children"),"")

在列G添加以下(第3行): (查看最後一個孩子的下一次出現)

=IF(F3="Parent", MATCH("End of Children",F4:F901, 0),"")

E列中添加以下內容(第3行): (基於下一對計算功能最後一個孩子的出現)

IF(F3="Parent",SUM(INDIRECT("D"&ROW(D3)+1&":D"&ROW(D3)+G3)),"")

現在拖動值E3F3G3向上和向下的數據集。

E將有你的價值觀。

希望這是一個開始。

Screenshot of data

+0

這對我來說是一個非常好的開始,謝謝 –

0

我試圖ForkandBeard的答案,而當每一個家長至少有一個孩子它的工作原理。如果情況並非總是如此,則公式可概括如下:

=IF(C3=1,"Parent",If(C3<>C4,"End of Children"),""). 
=IF(F3="Parent", IF(C4<>"Parent",MATCH("End of Children",F4:F901,0),""),"") 
=IF(F3="Parent",SUM(INDIRECT("D"&ROW(D3)+1&":D"&ROW(D3)+G3)),"")