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