MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > 数式 > データテーブルの使用 |
DataTableは、一部のセルの値を変更し、特定の問題に対するさまざまな解決方法を見つけ出すセル範囲です。DataTable の機能は、ワークシートで what-if 分析を実行するのに役に立ちます。 What-if 分析は、セルの値を変更したときにワークシートの数式の結果がどのように変化するかを調べるプロセスです。また、財務データの分析を実行することもできます。たとえば、異なる値を変更して、結果の対応する変動を観察します。データテーブルの良い例では、異なる融資総額と金利でを持つ PMT 関数を使用して、住宅ローンの手頃な金額を計算します。
セル範囲に DataTable 数式を適用するには、IRange インターフェースの DataTable メソッドを使用します。これにより、ワークシートで定義した入力値と数式に基づいてデータ テーブルが作成されます。
DataTable メソッには、次のパラメータを指定できます。
テストする変数と数式の数に応じて、1つまたは2つの変数のデータテーブルを作成できます。
1 つ以上の数式の 1 つの変数の値を変更したときに数式の結果がどのように変化するかを調べるには、単入力テーブルを使用します。
次の図では、セル F2 には、入力セル B3 を参照する =PMT(B3/12,B2,-B1)が含まれます。データテーブルの範囲は E2:F7 に設定されています。この場合には、DataTable メソッドは、セル B3 の列入力値、およびセル F2 で定義された数式に基づいてデータテーブルを作成します。データ テーブルは列指向(変数値が1列に配置されている) であるため、数式は値の列の上の行とその右の行に入力されます。次の図は、1 変数データ テーブルが列指向であり、数式がセル F2 に含まれていることを示しています。同様に、データ テーブルが行指向 (変数値が 1 行に配置されている)の場合、数式は最初の値の 1 列左のセルと、値の行の 1 つ下のセルに入力されます。
上記のように、セル E3、E4、E5、E6、および E7 の値を置換すると、支払額の数式を使用してセル F3、F4、F5、F6、および F7 の支払い値の結果が自動的に更新されます。
コードの使用
C# |
コードのコピー
|
---|---|
// 1 変数のデータテーブル TestWorkBook.WorkbookSet.CalculationEngine.CalcFeatures = CalcFeatures.All; fpSpread1.Features.ExcelCompatibleKeyboardShortcuts = true; fpSpread1.ActiveSheet.SetClip(0, 0, 4, 1, "融資総額\n返済期限\n金利\n支払い"); TestActiveSheet.Cells[0, 1].Value = 100000; TestActiveSheet.Cells[1, 1].Value = 180; TestActiveSheet.Cells[2, 1].Value = 0.09; TestActiveSheet.Cells[3, 1].Formula = "PMT(B3/12,B2,-B1)"; TestActiveSheet.Cells["F2"].Formula = "B4"; TestActiveSheet.SetValue(2, 4, new object[,] { { 0.05 }, { 0.055 }, { 0.06 }, { 0.07 }, { 0.08 } }); TestActiveSheet.Range("E2:F7").DataTable("", "B3"); |
VB |
コードのコピー
|
---|---|
TestWorkBook.WorkbookSet.CalculationEngine.CalcFeatures = CalcFeatures.All fpSpread1.Features.ExcelCompatibleKeyboardShortcuts = True fpSpread1.ActiveSheet.SetClip(0, 0, 4, 1, "融資総額" & vbLf & "返済期限" & vbLf & "金利" & vbLf & "支払い") TestActiveSheet.Cells(0, 1).Value = 100000 TestActiveSheet.Cells(1, 1).Value = 180 TestActiveSheet.Cells(2, 1).Value = 0.09 TestActiveSheet.Cells(3, 1).Formula = "PMT(B3/12,B2,-B1)" TestActiveSheet.Cells("F2").Formula = "B4" TestActiveSheet.SetValue(2, 4, New Object(,) {{0.05},{0.055},{0.06},{0.07},{0.08}}) TestActiveSheet.Range("E2:F7").DataTable("", "B3") |
2 変数のデータ テーブルでは、入力値の 2 つのリスト (列と行) を含む数式が使用されるため、数式は 2 つの異なる入力セルを参照する必要があります。
複入力テーブルを使用して、金利とローン期間の値の変化がローン返済額に及ぼす影響を調べることができます。次の図では、セル E2 には、2 つの入力セル B1 と B3 を使用する =PMT(B3/12,B2,-B1) という支払い式が含まれます。DataTable メソッドは、範囲 E2:J7 のデータテーブルを作成します。
上記のように、変数値は行だけでなく列にも置換されます。 列入力セル B3 はセル E3 ~ E7 の値を置換し、行入力セル B1 はセル F2 ~ J2 の値を置換します。
コードの使用
C# |
コードのコピー
|
---|---|
// 複入力テーブル fpSpread1.AsWorkbook().WorkbookSet.CalculationEngine.CalcFeatures = GrapeCity.Spreadsheet.CalcFeatures.All; fpSpread1.ActiveSheet.SetClip(0, 0, 4, 1, "融資総額\n返済期限\n金利\n支払い"); TestActiveSheet.Cells[0, 1].Value = 100000; TestActiveSheet.Cells[1, 1].Value = 180; TestActiveSheet.Cells[2, 1].Value = 0.09; TestActiveSheet.Cells[3, 1].Formula = "PMT(B3/12,B2,-B1)"; TestActiveSheet.Cells["E2"].Formula = "B4"; TestActiveSheet.SetValue(2, 4, new object[,] { { 0.05 }, { 0.055 }, { 0.06 }, { 0.07 }, { 0.08 } }); TestActiveSheet.SetValue(1, 5, new object[,] { { 20000, 30000, 40000, 50000, 60000 } }); TestActiveSheet.Range("E2:J7").DataTable("B1", "B3"); |
VB |
コードのコピー
|
---|---|
' 複入力テーブル fpSpread1.AsWorkbook().WorkbookSet.CalculationEngine.CalcFeatures = GrapeCity.Spreadsheet.CalcFeatures.All fpSpread1.ActiveSheet.SetClip(0, 0, 4, 1, "融資総額\n返済期限\n金利\n支払い") TestActiveSheet.Cells(0, 1).Value = 100000 TestActiveSheet.Cells(1, 1).Value = 180 TestActiveSheet.Cells(2, 1).Value = 0.09 TestActiveSheet.Cells(3, 1).Formula = "PMT(B3/12,B2,-B1)" TestActiveSheet.Cells("E2").Formula = "B4" TestActiveSheet.SetValue(2, 4, New Object(,) {{0.05},{0.055},{0.06},{0.07},{0.08}}) TestActiveSheet.SetValue(1, 5, New Object(,) {{20000, 30000, 40000, 50000, 60000}}) TestActiveSheet.Range("E2:J7").DataTable("B1", "B3") |
[データ テーブル] ダイアログは、[スプレッド] リボンの [What-If 分析] メニューの [データ テーブル] オプションに移動して呼び出すことができます。
[データテーブル]オプションをクリックしてダイアログを呼び出します。
このダイアログでは、目的の行入力セルと列入力セルを入力してデータ テーブルを作成できます。
![]() |
メモ: ワークシートにデータ テーブルを作成するには、行または列の入力セルが現在のワークシート内の単一のセル、少なくとも 1 つの値を入力する必要があります。 |
実行時にデータ テーブル ダイアログを呼び出すには、BuiltInDialogs クラスの DataTable メソッドを使用します。 詳細については、「組み込みダイアログの操作」を参照してください。
データ テーブル ダイアログを使用するキーボード ショートカットは[Alt] + [A] + [W] + [T] です。