返回列表 上一主題 發帖

[發問] excel規劃求解問題(是否能自動更新)

本帖最後由 ML089 於 2016-12-10 12:10 編輯

回復 1# m06o2
A1 輸入數值
B1 為變數(需求)
C1 為目標公式求B1值為多少時計算值為0
C1 =A1-(0.9*0.49+9.36*LOG(b1+1)-0.2+LOG(1.5/2.7)/(0.4+1094/(b1+1)^5.19)+2.32*LOG(412000)-8.07)


ALT-F11
選擇 Sheet1 插入輸入Worksheet_Change
當A1改變值時,啟動 目標搜尋 函數,找出B1值。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Range("C1").GoalSeek Goal:=0, ChangingCell:=Range("B1")
    End If
End Sub

20161209 規劃求解問題.rar (9.47 KB)
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 6# m06o2

'放在 ThisWorkbook,每個Sheet都能作用
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Range("C1").GoalSeek Goal:=0, ChangingCell:=Range("B1")
    End If
End Sub


'放在該Sheet中,只有該Sheet才能作用
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Range("C1").GoalSeek Goal:=0, ChangingCell:=Range("B1")
    End If
End Sub
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 8# m06o2


EX:=((1.5*P3*Q3)*((1/(L3*(1+((U3/Q3)^2)*((N3/L3)^(2/3)))^(1/2)))+((1-(1/((1+((U3/Q3)^2))^(1/2))))/N3))-O3))
的關係式是為 0 嗎?
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 11# m06o2

看不太懂
若有公式就直接就直接求解
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

J3 =(1.5*D3*E3)*((1/(C3*(1+((F3/E3)^2)*((B3/C3)^(2/3)))^(1/2)))+((1-(1/((1+((F3/E3)^2))^(1/2))))/B3))-H3
下拉

精度低速度快
Sub 目標搜尋()
    [E3:E30] = 1
    For i = 3 To 30
        Range("J" & i).GoalSeek Goal:=0, ChangingCell:=Range("E" & i)
    Next
End Sub


求解精度比較高
'SolverSolve 函數
'
'開始執行規劃求解解決方案。相當於按一下 [規劃求解參數] 對話方塊中的 [規劃求解]。
'
'使用本函數之前,必須建立對規劃求解增益集的參照。在 Visual Basic 編輯器中,將焦點移至某個模組,按一下 [工具] 功能表上的 [參照],然後選取 [可用參照] 底下的 [Solver.xlam] 核取方塊。如果 [Solver.xlam] 沒有出現在 [可用參照] 底下,按一下 [瀏覽],然後開啟 \office12\library\Solver 子資料夾中的 Solver.xlam。
'
Sub 規劃求解()
    [E3:E30] = 1
    For i = 3 To 30
        SolverOk SetCell:="$J$" & i, MaxMinVal:=3, ValueOf:="0", ByChange:="$E$" & i
        SolverSolve UserFinish:=True
        'SolverFinish KeepFinal:=1, ReportArray:=Array(1)    '1 表示建立答案報告,2 表示建立敏感度報告,而 3 表示建立限制報告
    Next
End Sub

計算流程.rar (804.1 KB)
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 17# m06o2

昨天我有測試 99筆還OK,
要執行1~2000筆會很久吧?
晚上我再試試

目前沒有想法可以解決
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 19# m06o2

[E3:E30] = 1
初始值有修改嗎?
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

        靜思自在 : 虛空有盡.我願無窮,發願容易行願難。
返回列表 上一主題