ゴールシーク関数は、既知の結果または望ましい結果に基づいて、数式の入力値を提供します。ゴールシークを実行するには、DioDocs for Excelが提供されているIRangeインターフェイスのGoalSeekメソッドのgoalおよびchangingCellパラメータを使用します。
goalパラメータは望ましい結果を指定し、changingCellパラメータは値を変更するセルを指定します。
GoalSeekメソッドはブール型のメソッドであり、対応する値が見つかった場合はtrueを返します。値が見つからない場合、メソッドはfalseを返し、changingCellの値は変わりません。
GoalSeekメソッドを使用するときに正しい結果を得るには、次のガイドラインに従う必要があります。
次のサンプルコードは、goalを150000 に設定し、changingCellを B3に設定して、GoalSeek メソッドを使用して3月の経費を算出する方法を示します。
C# |
コードのコピー
|
---|---|
// Create a new workbook. var workbook = new Workbook(); // Set MaximumIterations and MaximumChange. workbook.Options.Formulas.MaximumIterations = 1000; workbook.Options.Formulas.MaximumChange = 0.000001; var activeSheet = workbook.ActiveSheet; // Add row header titles. activeSheet.Range["A1:A4"].Value = new string[] { "January Expense", "February Expense", "March Expense", "Average" }; // January Expense. activeSheet.Range["B1"].Value = 100000; activeSheet.Range["B1"].NumberFormat = "$#,##0"; // February Expense. activeSheet.Range["B2"].Value = 180000; activeSheet.Range["B2"].NumberFormat = "$#,##0"; // March Expense. activeSheet.Range["B3"].NumberFormat = "$#,##0"; // Average of all three monthly expenses. activeSheet.Range["B4"].Formula = "=AVERAGE(B3,B2,B1)"; activeSheet.Range["B4"].NumberFormat = "$#,##0"; // Calculate the value of cell B3 using the GoalSeek method. activeSheet.Range["B4"].GoalSeek(150000, activeSheet.Range["B3"]); activeSheet.Range["A1:B4"].AutoFit(); // Save the Excel file. workbook.Save("GoalSeek.xlsx"); |
ゴールシーク使用前 | ゴールシーク使用後 |
---|---|
制限事項
場合によっては、Excelの計算と若干の不一致が発生する場合があります。