请教EXCEL问题,高手乱入

来源:百度知道 编辑:UC知道 时间:2024/06/09 04:54:05
遇到一个问题,比如说有一个数,G,我需要计算的思路是这样的,每次减掉一个固定的数,比如K,得到a1,a1然后再减掉固定数K,得到a2,a2再继续减掉固定数K,得到a3,依次类推,直到an不足固定数K为止,然后,求a1+a2+a3+..............an,以上G,K都是整数

G-K=a1

a1-k=a2

a2-k=a3

........

a(n+2)-a(n+1)=an

求a1+a2+a3+..............an

用一个公式怎么实现
你说我的那个公式可以变成G-k+G-2k+G-3k......怎么变的?

G-k+G-2k+G-3k...... 化简成nG-kn(n+1)/2,其中n的取值为nk<g<(n+1)k.因为N是整数,所以可以取g/k的整数部分为了n即可,excel里面有取整的函数假如说M(),则公式为M(G/k)G-kM(G/k)(M(G/k)+1)/2

最后一行a(n+2)-a(n+1)=an 应该是a(n-1)-k=an吧?

G-k+G-2k+G-3k...... 化简成nG-kn(n+1)/2
n=int(G/K)
int()是向下取整函数.
所以最后公式为:
=int(G/K)*G-k*int(G/K)*(int(G/K)+1)/2

G-k=a1
G-k-k=G-2k=a2
G-3k=a3
.....
G-nk=an
a1+a2+a3+..............an =G-k+G-2k+G-3k......+G-nk

设 A1=G,B1=K,公式为:
=SUM((MOD(ROW(INDIRECT("1:"&A1)),B1)=0)*((ROW(INDIRECT("1:"&A1)))+MOD(A1,B1)))+MOD(A1,B1)-A1

然后按 ctrl + shift + 回车 退出公式编辑状态

我想楼上的楼上的公式应该没问题,但是想过没有,如果G足够大,而K足够小,你说EXCEL的最大行数只有65536,它能放得下那么多行吗?例如G=65537,K=1,那个公式就不行了。这个我想用宏就可以解决,至少G可以比65536大得多,K也可以比较小。代码如下:
Sub G_K()
Dim G As Single, K As Single, sum As Single
G = InputBox("请输入G:")
K = InputBox("请输入K:")
Do While G > K
G = G - K
sum = sum + G
Loop
sum = sum