如果A1不限定自然数,用规划求解可以轻松解决你的问题:
1.在D1单元格中输入公式:
=B1-C1
2. 规划求解,设置目标:D1,目标值:0,即B1=C1。按“求解”按钮,稍一会,就得到求解结果。
相对来说,你这个问题是规划求解最简单不过的问题。规划求解可以求解更复杂得多的问。
而A1限定为自然数的话,B1、C1的公式就不能随意指定了。用上术规划求解,再添加两个约束条件,一个是A1单元格为整数,第二个是A1单元格大于或等于1,这两个条件即约束A1单元格为自然数。如下图:
再次按下“求解”按钮后,Excel提示方案无解。
试下这个VBA代码
Sub AA()
Columns("B") = ""
Dim I, I1, K
For I = 1 To Range("A65536").End(xlUp).Row
For K = Cells(I, "a") To 1 Step -1
Cells(I, "b") = Cells(I, "b") & "," & Cells(I, "a") - K + 1
Next
Next
End Sub
在B1中输入或复制粘贴下列公式
=COLUMN(INDIRECT("A1:"&ADDRESS(1,A1,4)))
下拉填充
结果都显示1
但当你选择单元格中的公式等于号后面的所有部分,按F9,得到的就是你要的结果。