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#
コードのコピー
// 新しいワークブックを作成します
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の計算と若干の不一致が発生する場合があります。