Re: [問題] excel
※ 引述《issyo (二代宅)》之銘言:
: (若是和其他不同軟體互動之問題 請記得一併填寫)
: 您所使用的軟體為: Microsoft Excel
: 版本:2003
: 問題:
: 請問我要如何表達出倍數或級數?
: 如倍數:A2+A4+A6… 這樣
: 級數:A2+A6+A10… 這樣
: 感謝回答
#3442 edwar 推文中的公式是可行的,那是陣列公式用法,在任一或多儲存格輸入該公式後,
再按下 Ctrl+Shift+Enter 即可。
此外,用VBA亦可解決:(試解如下,若有錯誤請多包涵)
按 Alt+F11 進入程式碼編輯視窗,在資料所在Sheet處點兩下輸入程式碼
Sub test()
Dim rng As Range
Set rng=Range("A:A")_
rlast=Range("A" & rng.Rows.Count).End(xlUP).Row
mySum=0 '初始化總值
myStart=2 '從哪個儲存格開始;若為2代表 A2,若為10代表 A10
myD=4 '每次往下幾個儲存格;若為4代表:A2,A6,A10,...
i=0
Do While myStart+i*myD<=rlast
mySum=mySum+Range("A1").Cells(myStart+i*myD)
i=i+1
LOOP
msgbox mySum
End Sub
若覺VBA輸入太麻煩或陣列公式仍不懂,提供另一方法(輔助欄位)
假設你的資料在A欄,欲計算 A2+A6+A10+...
則:
在B1輸入 =if(mod(row(A1)+2,4)=0,A1,0)
往下複製可形成除了 B2,B6,B10,...以外的值皆為0
而B2=A2,B6=A6,B10=A10,...
在C1填入 =sum(B:B) 即為所求
[說明]
row(A1) 可得到A1所在的Row值,會傳回1
同理,row(A10)=10
mod(x,y) 會傳回 x 除以 y 的餘數
例: mod(10,4)=2
if(條件式,成立的話執行這邊,不成立的話執行這邊)
例: =if(5>3,1000,30)
結果會是 1000
=if(5>30,1000,30)
結果會是 30
把三個湊起來就可以解決了
希望能解決你的問題....
(這三個方法中應該是陣列公式最快吧)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.114.34.114
推
10/05 22:52, , 1F
10/05 22:52, 1F
討論串 (同標題文章)