2017-06-30 7 views
-2

私は現在、次のことを他のユーザーに分かりました。ソルバーを使用せずに値を求める

enter image description here

Number列は変更されません。ユーザーはMultiplier 1Multiplier 2列に値を入力し、値はOutcome列になります。

ユーザーはOutcome列に値を入力することもできますが、Multiplier 1列は自動的に変更されますか?

現在NumberOutcome列が保護されているため、Outcome列の保護を解除する必要がありますか?

+1

IMO off topi here - しかしあなたは除外しますかGoal Solverと一緒に探しますか? – pnuts

+0

私はゴールシークを外しています。その理由は、ユーザーがメッセージボックスとやりとりすることなくこの機能を許可する方法を考えているからです。 – user8237423

+0

要件が(特に制限的な場合)なぜそのようなものなのかを知ることは、通常は役に立ちます。 – pnuts

答えて

0

ワークシートのSub Worksheet_Change(ByVal Target as range)を使用して、いくつかのVBAコードを使用することをお勧めします。

ユーザがD2に値を入力すると、B2 = 012/D2 /(A2 * C2)という式になります。ユーザが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 
0

これを行うことができます。次はその意志1ピクセル幅の列を追加することによってトリッキー取得

(数回multiplier2)で割っ

結果:あなたの式は、あなた は簡単の関数としてmultiplier1について解くことができるようにシンプルであることに着目し始め元の 結果列の右側の結果(今は数式ではない)の結果として式 が含まれています。

同様に、multiplier1の新しい式を とする乗数1の右側に1ピクセル幅の列を追加します。元の入力 のセルの乗数1と結果のデータ検証を調整して、2つのうちの1つのみを に一度に入力できるようにします(各セルの有効化規則 検証ルールでisblank関数を適切に使用します)。

最後に、2つの1ピクセル幅のセルを右揃えにして、計算された値 がブランクのときに対応する入力可能セル内に表示されるようにします。 はい、扱いにくいですが動作します。

申し訳ありませんが、これは単なる概要ですが、私はアプリケーションでこれを使用しており、それは 素晴らしいです。 vbaはないので、やり直しをやり直すと壊れません。それを試してみてください。

関連する問題