我正在尝试创建一个斐波那契数列,其增量取决于一列,而重新启动取决于另一列。
鉴于A和B列,我想计算FIB:
A | B |FIB
---|---|---
1 | T | 0 // A=1, B=T -> FIB=0
2 | T | 1 // A!=1, B=T -> FIB=1
0 | F | // B=F -> Do Nothing
2 | T | 1 // A!=1, B=T -> FIB=FIB(-1)+FIB(-2)=1
2 | T | 2 // A!=1, B=T -> FIB=FIB(-1)+FIB(-2)=2
0 | T | 3 // A!=1, B=T -> FIB=FIB(-1)+FIB(-2)=3
2 | F | // B=F -> Do Nothing
1 | F | // B=F -> Do Nothing
2 | T | 5 // A!=1, B=T -> FIB=FIB(-1)+FIB(-2)=5
0 | F | // B=F -> Do Nothing
1 | T | 0 // A=1, B=T -> Restart -> FIB=0
2 | T | 1 // A!=1, B=T -> FIB=1
0 | F | // B=F -> Do Nothing
0 | T | 1 // A!=1, B=T -> FIB=FIB(-1)+FIB(-2)=1
2 | T | 2 // A!=1, B=T -> FIB=FIB(-1)+FIB(-2)=2
当A=1
时,我希望FIB重新启动斐波那契数列。
当B=T
时,我希望FIB递增。
在没有VB的情况下,您看到任何方法吗?
-编辑#1:我的尝试-
我没有添加尝试,因为它们相差很远,但是在这里:
FIB =IF(B, IF(A=1,0,FIB[-1] + FIB[-2]))
这不起作用,因为增量没有考虑到以前的单元格可能为空或可能是重新启动。