返回列表 上一主題 發帖

[發問] 等比級數相加

回復 1# PJChen

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

   要更簡捷高效的就得等其他人指點了

TOP

回復 3# PJChen

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

TOP

本帖最後由 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函數來引用求值

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題