動的配列数式は、ワークシートのセル範囲に複数の結果を配列として返す数式です。そのため、1つのセルに入力された1つの数式に基づいた複数の計算結果が、隣接するセルに出力されます。この動作は「スピル」と呼ばれ、結果が表示される範囲は「スピル範囲」と呼ばれます。スピル範囲演算子(#)を使用すると、スピル範囲全体を参照することができます。
DioDocs for Excelでは、IRange.Formula2プロパティを使用して、ワークシートにて動的配列数式を定義できます。また、交差演算子 (@) を自動的に追加せずに数式を指定できます。動的配列数式を使用するには、Formula2プロパティを使用してIRangeオブジェクトの数式を指定する必要があります。
また、計算エラーの種類を指定するCalcError列挙体を使用できます。
以下のテーブルに、DioDocs for Excelで使用できる動的配列関数について説明します。
関数 | 種類 | 説明 |
---|---|---|
FILTER | 検索/行列関数 | 定義した条件に基づいてデータの範囲をフィルター処理します。 |
RANDARRAY | 数学/三角関数 | 0から1の間で、ランダムな数値の配列を返します。 |
SEQUENCE | 数学/三角関数 | 1、2、3、4 など、配列内の連続した数値の一覧を生成します。 |
SINGLE | 検索/行列関数 | 暗黙的な共通部分と呼ばれるロジックを使用して、単一の値を返します。 |
SORT | 検索/行列関数 | 範囲または配列の内容を並べ替えます。 |
SORTBY | 検索/行列関数 | 範囲または配列の内容を、対応する範囲または配列の値に基づいて並べ替えます。 |
UNIQUE | 検索/行列関数 | 一覧または範囲内の一意の値の一覧を返します。 |
次のサンプルコードは、動的配列数式を有効にし、条件を指定してFILTER関数を使用する方法を示します。
C# |
コードのコピー
|
---|---|
//新しいワークブックを作成します var workbook = new Workbook(); workbook.AllowDynamicArray = true; var sheet = workbook.Worksheets[0]; sheet.Name = "FILTER"; sheet.Range["A1"].Value = "FILTER 関数を使用すると、指定した条件に基づいてデータの範囲をフィルタできます。構文: FILTER(array,include,[if_empty])"; sheet.Range["B3:E19"].Value = new object[,] { { "地域", "営業担当者", "製品", "単位" }, { "東部", "Tom", "林檎", 6380 }, { "西部", "Fred", "葡萄", 5619 }, { "北部 ", "Amy", "梨", 4565 }, { "南部", "Sal", "バナナ", 5323 }, { "東部", "Fritz", "林檎", 4394 }, { "西部", "Sravan", "葡萄", 7195 }, { "北部 ", "Xi", "梨", 5231 }, { "南部", "Hector", "バナナ", 2427 }, { "東部", "Tom", "バナナ", 4213 }, { "西部", "Fred", "梨", 3239 }, { "北部 ", "Amy", "葡萄", 6420 }, { "南部", "Sal", "林檎", 1310 }, { "東部", "Fritz", "バナナ", 6274 }, { "西部", "Sravan", "梨", 4894 }, { "北部 ", "Xi", "葡萄", 7580 }, { "南部", "Hector", "林檎", 9814 } }; sheet.Range["G3:L4"].Value = new object[,] { { "条件", "", "製品", "単位", "", "合計:" }, { 5000, null, null,null,null,null } }; sheet.Range["I4"].Formula = "=FILTER(D4:E19,E4:E19>G4,\"\")"; sheet.Range["L4"].Formula = "=SUM(IF(E4:E19>G4,1,0))"; sheet.Range["E4:E19,G4,J4:J12"].NumberFormat = "#,##0"; //Excelファイルに保存します workbook.Save("filterfunction.xlsx"); |
以下の画像は、上記のコードのようにセルI4でフィルタ機能を適用した出力を表示します。
メモ: さらに、DioDocs for Excel は配列および文字列操作関数もサポートしています。 詳細については、関数一覧を参照してください。