在不使用Solver的情况下求解价值

时间:2017-06-30 13:09:10

标签: excel equation-solving

我目前在excel中为其他用户提供以下内容。

enter image description here

Number列不会更改。用户将在Multiplier 1Multiplier 2列中输入值,他们将在Outcome列中获得值。

是否有自动方式,用户还可以在Outcome列中输入值,Multiplier 1列会发生变化?

目前NumberOutcome列受到保护,我是否需要取消保护Outcome列?

2 个答案:

答案 0 :(得分:0)

我建议您使用工作表中的Sub Worksheet_Change(ByVal Target as range)使用一些VBA代码。

如果用户在D2中输入一个值,它将输入公式" = D2 /(A2 * C2)"在B2 如果用户在B2中输入一个值,它将输入公式" = A2 * B2 * C2"在D2

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Cells.Count > 1 Then Exit Sub
On Error GoTo LastLine
If Not Intersect(Target, Range("D2")) Is Nothing Then
    Range("B2").Formula = "=D2/(A2*C2)"
ElseIf Not Intersect(Target, Range("B2")) Is Nothing Then
    Range("D2").Formula = "=A2*B2*C2"
End If
LastLine:
Application.EnableEvents = True
End Sub

答案 1 :(得分:0)

这可以做到。首先要注意你的公式如此简单,以至于你  可以很容易地解决乘数1作为函数:

结果除以(数乘以乘数2)

接下来通过添加一个包含公式的1像素宽的列变得棘手  对于(原来是输入而不是公式)原始的结果 结果栏目。

类似地,在包含的乘数1的右侧添加1像素宽的col  你的乘数1的新公式。调整原始输入的数据验证 乘数1和结果的单元格只允许两者中的一个 一次输入(在excel自定义数据中适当使用isblank函数 每个单元格的验证规则)。

最后右对齐两个1像素宽的单元格,使其计算出值  当它们为空时出现在相应的可输入单元格内。  是的它很棘手,但它确实有效。

对不起,这只是一个大纲,但我在应用程序中使用了它 效果很好。没有vba,所以撤消重做不要破坏。尝试它你会喜欢它。