DioDocs for Excel
DioDocs for Excel
ゴールシーク関数
機能 > 数式 > ゴールシーク関数

ゴールシーク関数は、既知の結果または望ましい結果に基づいて、数式の入力値を提供します。ゴールシークを実行するには、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の計算と若干の不一致が発生する場合があります。