作者singermath (singer)
看板Office
标题Re: [问题] excel
时间Fri Oct 5 17:57:00 2007
※ 引述《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
1F:推 issyo:谢谢专业的回答 我研究一下<(__"__)> 10/05 22:52