永发信息网

EXCEL之如何循环计算?高手指点下

答案:6  悬赏:20  手机版
解决时间 2021-03-18 03:16
  • 提问者网友:温柔港
  • 2021-03-17 20:30
现需要解决一个EXCEL中的问题,公式可能无法解决,能解决更好。实在不行就用VBA。

比如A1=20 B1=3

现C1=A1-B1。D1=A1/B1

当第一次计算后,C1和D1都可得到一个值。
但要求,C1与D1的值将要做为下一次的A1,B1的初始值。即,第二次计算时,A1=C1,B1=D1
以此类推,直到A1〈0时,停止计算,问此时A1,与B1的值是多少?

像这样的问题是不是只能用VBA搞定?

我现在就现在A1,B1中输入值,然后想在另外一个单元格中弄个公式,直接计算出A1,B1最后的值,怎么做?

如能用工式解决的优先加分(包括自定义公式)。如果不能用公式解决,请用VBA帮我解决。谢谢。高分求助!
谢 不亮的灯吴,你说的这方法不行,我不能添加辅助列的。如果添加辅助列当然简单了。VBA的方法你会不?公式的我要只输一个工式就能得到结果的。不能用拖的方法。
最佳答案
  • 五星知识达人网友:春色三分
  • 2021-03-17 21:55
Excel里面通过迭代计算可以实现有条件的循环,但你的问题用excel公式不好实现,还是用代码吧:

Sub 循环()
Dim a As Double, b#, c#, d#
a = Range("A1").Value
b = Range("B1").Value

Do Until a < 0
c = a - b
d = a / b
a = c
b = d
Loop
Range("A1").Value = a
Range("B1").Value = b
End Sub

结果是A1=-0.132198731404159...
B1=0.931944679349769...
全部回答
  • 1楼网友:底特律间谍
  • 2021-03-18 01:17
用公式: 一楼"不亮的灯吴"的改进:获取序列后在A1,B1中自动显示需要的结果,(每次C1,D1更改后A1,B1自动更改为需要的数值) 在单元格A1中用公式: =VLOOKUP(TRUE,A2:D11,3,FALSE) 在单元格B1中用公式: =VLOOKUP(TRUE,A2:D11,4,FALSE) 其余步骤: 在a2单元格中输入 =IF(C1<0,TRUE,C1) b2单元格输入=D1 c2单元格输入=IF(C1<0,C1,A2-B2) d2单元格输入=IF(C1<0,D1,A2/B2) 然后把a2,b2,c2,d2单元格都选中,在右下角往下拖拽足够多(100个左右)
  • 2楼网友:何以畏孤独
  • 2021-03-17 23:45
已有标准出生时,设 a姓名 b列为其出生年月 c列为性别 可用,可用公式,==date(year(d2)+if(b2="干部",(if((c2="男"),60,55)),(if((c2="男"),60,50))),month(d2),day(d2)+1), 用if进行多重判断,有点啰嗦,不过还是可以做出来的。
  • 3楼网友:白昼之月
  • 2021-03-17 23:37
Sub Macro1() Dim a As Single, b As Single, c As Single, d As Single a = 20 b = 3 Do While a >= 0 c = a - b d = a / b a = c b = d Loop MsgBox "a" & a & vbCrLf & "b" & b End Sub
  • 4楼网友:低血压的长颈鹿
  • 2021-03-17 22:50
用vba比较容易实现,就是一个循环函数就能解决。 如果用公式的话,你看这样是否可以满足需求。 在a2单元格中输入 =IF(C1<0,"",C1) b2单元格输入=D1 c2单元格输入=A2-B2 d2单元格输入=A2/B2 然后把a2,b2,c2,d2单元格都选中,在右下角往下拖拽,多拽一点,你会看到在a列某行处会有空值,这个地方就是你需要得到的数据了。
  • 5楼网友:你可爱的野爹
  • 2021-03-17 22:26
EXCEL公式不大可能 在Visual Basic编辑器中输入如下代码: '----------------------------------------------------- Public Function LOPAB(ByVal Cell1 As Range, ByVal Cell2 As Range) As String Dim a, b, c, d As Double a = Cell1.Value b = Cell2.Value Do c = a - b d = a / b a = c b = d Loop Until c < 0 LOPAB = a & "," & b End Function '--------------------------------------------- 在某单元格中输入如下公式: =LOPAB(A1,B1) 收工!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯