Board logo

標題: [發問] 等比級數相加 [打印本頁]

作者: PJChen    時間: 2016-7-2 21:40     標題: 等比級數相加

大大們好,
B2是起始值為1,每增加一層就多3倍,
當E2=2代表第1層+第2層的值=4
當E2=3代表第1層+第2層+第3層的值=13
如何在E1 key入層級時,以公式帶出E2的層級加總?
但其條件限制是只能利用E1的值變化,不能用A欄及B欄的數字去加總或搜尋!
請問有什麼函數可以用?

[attach]24603[/attach]

[attach]24604[/attach]
作者: KCC    時間: 2016-7-2 22:55

回復 1# PJChen

   看看這個是不是你要的
   E2 =SUMPRODUCT(3^(ROW(INDIRECT("1:"&E1))-1))
   或是用SUM+陣列公式

   要更簡捷高效的就得等其他人指點了
作者: PJChen    時間: 2016-7-2 23:27

本帖最後由 PJChen 於 2016-7-2 23:39 編輯

回復 2# KCC

您好,

太感謝您了,可以算出正確答案!可否幫忙解釋下公式的意函?
=SUMPRODUCT(3^(ROW(INDIRECT("1:"&E1))-1))

另外再請教,若1當成第0層時,公式可以怎麼改?目前E1=0時會出現#REF!
層級 個數
0        1
1        3
2        9
3        27
4        81
5        243
6        729
7        2187
8        6561
作者: KCC    時間: 2016-7-2 23:56

回復 3# PJChen

   1. 利用3^(row(1:x)-1)作出 {3^0,3^1......3^X},再加總
   2.SUMPRODUCT(3^(ROW(INDIRECT("1:"&E1+1))-1))
作者: PJChen    時間: 2016-7-3 00:01

回復 4# KCC

謝謝您的解說
作者: PJChen    時間: 2016-7-3 16:46

回復 4# KCC

1. 利用3^(row(1:x)-1)作出 {3^0,3^1......3^X},再加總.....
2.SUMPRODUCT(3^(ROW(INDIRECT("1:"&E1+1))-1))

請問大大,
我從昨天一直在研究這個公式,雖然您幫我作出來了,讓我可以直接套用,但我還無法全部理解....
問題:
1. 紅字的部份要怎麼去理解意函?還有為什麼要把它當作是文字?(我看它用了雙引號")
2. 最外層用了SUMPRODUCT為什麼就能夠自動作出 {3^0,3^1......3^X},再加總.....

Sorry!這對我有點深,麻煩您了...
作者: KCC    時間: 2016-7-3 17:53

本帖最後由 KCC 於 2016-7-3 17:57 編輯

回復 6# PJChen


    一、基本陣列說明
row(1:1)={1},row(1:2)={1;2}

={sum(row(1:2))}=sum({1;2})=3=sumproduct(row(1:2))
第一個是陣列公式,要按ctrl-shift-enter
就像寫vba程式一樣,sum函數+陣列公式可以簡單想像跑迴圈作累加
而sumproduct本身具陣列公式特性,所以不必再按ctrl-shift-enter
小數字ok,如果要作出1~100的陣列,不用陣列公式就得弄出{1;2;3....100}
也可以簡單的row(1:100),配合其他運算函數再按ctrl-shift-enter
如{sum(row(1:100))}就可以加總1~100

二、公式說明
利用3^(row(1:x)-1)作出 {3^0,3^1......3^X},再加總.....
這個我寫錯了,應該是作出 {3^0;3^1......3^(X-1)},再加總.....
實際上應該用分號,代表row函數產生的數列是垂直陣列
但一般懒得打都打逗號
x是當變數,這裡指的就是你在 E1 輸入的值,所以公式是直接寫e1

3^(row(1:x)-1)
3^(row(1:1)-1)={3^(1-1)}={3^0}={1}
3^(row(1:2)-1)={3^(1-1);3^(2-1)}={1;3} 底下依此類推
因為要算的是依變數的值而變動
至於用 " ,indirect函數都要用文字型式輸入 文字&e1 還是文字
所以利用(indirect("1:"&E1)作出(1:1)(1:2)..等的區域給row函數來引用求值




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)