ノード.jsを使用したダイナミック配列数式の設定

Excelの配列式とは

Excelでは、配列式は個々のセルではなくデータの配列に対して計算を行う特別なタイプの式です。配列式を使用すると、複雑な計算、データの操作、および特定の問題の効率的な解決が可能です。配列式は通常の数式とは異なる方法で入力され、Ctrl + Shift + Enterの使用が必要な場合があります。

Excelの配列式に関するいくつかの重要なポイント:

  1. 構文:


    配列式は通常の式のように書かれますが、値の配列に対する操作を含みます。これらは{ }で囲まれ、これが配列式であることを示します。ただし、これらの{ }は自分で入力する必要はありません。式が正しく入力されると、Excelは自動的にこれらを追加します。
  2. 配列数式の入力:


    配列数式を入力するには、数式バーに数式をタイプします。完了するにはEnterを押すのではなく、Ctrl + Shift + Enterを押します。これにより、Excelはそれが配列数式であることを認識します。正しく入力されると、Excelは数式バーに波括弧で囲まれた数式を表示し、配列数式であることを示します。
  3. 使用例:


    配列式は複数のセルや範囲全体での計算を行うのに便利です。高度な数学的な計算、条件演算、データのフィルタリングなどに利用できます。
  4. 利点:


    配列式を使用すると、1つの式で複雑な計算を行うことができ、効率が向上しワークシートが簡素化されます。大規模なデータセットを処理し、複数の中間ステップが必要な計算を行うことができます。
  5. 制限事項:


    配列式は通常の式よりも理解とトラブルシューティングが難しい場合があります。特に大規模なデータセットや複雑な計算と一緒に広範囲に使用されると、ワークシートのパフォーマンスが低下することがあります。
  6. 例:


    範囲内の値の合計: {=SUM(A1:A5*B1:B5)}


    範囲内の最大値の検索: {=MAX(A1:A5+B1:B5)}




配列式は慎重に使用する必要があり、ワークシートに実装する前にその動作を理解することが重要です。Excelのデータ解析や操作において強力なツールとなります。

Excelダイナミック配列式とは

ダイナミック配列式はExcel 365とExcel 2021で導入された新機能です。これにより、従来の配列式よりもデータの配列をよりシームレスに、効率的に扱うことができます。ダイナミック配列式は自動的に結果を隣接するセルに広げ、Ctrl + Shift + Enterの必要がなく、データの操作が容易になります。

Excelのダイナミック配列式に関するキーポイント:

  1. 自動広げ:


    ダイナミック配列式は出力データのサイズに基づいて自動的に隣接するセルに結果を広げます。つまり、式を入力する前にセルの範囲を選択する必要がないし、Ctrl + Shift + Enterを使って式を確認する必要もありません。
  2. 単一セル入力:


    ダイナミック配列式は1つのセルに入力され、Excelは自動的に隣接するセルに結果を表示します。これにより、式を管理し理解しやすくなり、式を1度だけ入力すれば良いです。
  3. 新機能:


    ダイナミック配列式には、FILTERSORTUNIQUESEQUENCESORTBYRANDARRAYなど、配列をネイティブで処理できる新しい関数が導入されています。これらの関数は複数の値を返したり、配列を直接操作することができ、複雑な計算を簡素化します。
  4. 柔軟な範囲処理:


    ダイナミック配列式は、入力データのサイズや実行される計算に基づいて自動的に広がる範囲のサイズを動的に調整します。この柔軟性により、ワークシートスペースの効率的な使用が可能になり、式の作成が簡素化されます。
  5. パフォーマンスの向上:


    ダイナミック配列式は、特に大規模なデータセットや複雑な計算を扱う場合、従来の配列式と比較してパフォーマンスを向上させることができます。
  6. 互換性:


    ダイナミック配列式はExcel 365とExcel 2021で利用可能です。古いバージョンのExcelでサポートされていない場合があります。
  7. 動的配列数式の例:


    FILTER: 特定の条件を満たす値の配列を返します。


    SORT: 範囲または配列内の値を並べ替えます。


    UNIQUE: リストまたは範囲から一意の値を返します。


    SEQUENCE: 数値や日付のシーケンスを生成します。


    RANDARRAY: ランダムな数値の配列を生成します。




動的配列式は、Excelでデータの操作や分析を強力にサポートし、データの配列を扱い、複雑な計算を効率的に行うことを容易にします。

Excelの配列式と動的配列式の違いとは

Excelでは、配列式と動的配列式の両方を使用して複数の値の計算を同時に行いますが、機能や実装方法において違いがあります。

配列式の特徴

  1. 配列式はExcelの伝統的な式で、データの配列を計算できます。
  2. 数式を入力した後、[Ctrl + Shift + Enter]を押すことで配列数式であることをExcelに伝えます。
  3. 配列数式は、結果を隣接するセルに spilled する能力に制限があります。通常は一つの結果を返しますが、その結果がセル配列になる場合もあります。
  4. 長い間存在し、すべてのExcelバージョンでサポートされています。

動的配列式の特徴

  1. 動的配列式は、Excel 365(Office 365サブスクリプション)およびExcel 2021で導入された新機能です。
  2. 入力データや計算のサイズに応じて、自動的に隣接するセルに結果を spill します。
  3. 動的配列数式は [Ctrl + Shift + Enter] を押す必要はなく、セルに式を入力するだけで、Excelが自動的に隣接セルに結果を展開します。
  4. これらの数式は複数の結果(セルの範囲)を直接返す能力があり、配列数式や [Ctrl + Shift + Enter] は必要ありません。
  5. FILTER, SORT, UNIQUE などの新しい関数を備えており、配列をネイティブに処理し、動的配列形式で結果を返すことができます。
    まとめると、動的配列式は、従来の配列式と比べて、Excelでの配列操作をより現代的で便利な方法で提供し、結果を自動的に流し込んで配列を扱うプロセスを簡略化します。ただし、動的配列をサポートする新しいバージョンのExcelでのみ使用できます。

Excelで動的配列式を設定して計算する方法

Excelで動的配列式を設定するには、データの配列を扱い、結果を自動的に隣接するセルに流すために設計された特定の関数を使用します。

動的配列式の設定手順は次の通りです:

  1. セルの選択:


    動的配列式の結果を表示するセルを選択します。動的配列式は結果を隣接するセルに流し込むため、流し込まれる出力に十分なスペースがあることを確認してください。
  2. 数式の入力:


    選択したセルの式バーに動的配列式を入力します。Excel 365およびExcel 2021で利用可能なFILTERSORTUNIQUESEQUENCESORTBYRANDARRAYなどの動的配列関数のいずれかを使用します。


    たとえば、特定の基準に基づいてデータのリストをフィルタリングするためにFILTER関数を使用することがあります: =FILTER(A2:C15,(A2:A15=F4)*(C2:C15=G4),"")




  3. Enterキーを押す:


    式を入力したら、キーボードでEnterを押します。従来の配列式とは異なり、Ctrl + Shift + Enterを押す必要はありません。
  4. spilling 範囲を観察:


    Excelは、式の結果を隣接するセルに自動的に流します。スパイル範囲は、出力データのサイズや、式によって実行される計算に基づいて、動的に調整されます。Excelは、スパイル範囲を境界線と対角矢印アイコンで強調表示し、スパイルデータを含むことを示します。
  5. spilling 範囲と相互作用:


    Excelの他のセル範囲と同様に、スパイル範囲を操作できます。スパイル範囲を他の式で使用したり、それに計算を行ったり、書式を設定したり、グラフやテーブルで参照したりできます。
  6. 数式の更新:


    動的配列数式を修正する必要がある場合は、入力した元のセルの数式を編集してください。編集後、再度Enterを押して変更を確定します。Excelは必要に応じて spilled 範囲を自動的に更新します。
  7. spilled 範囲のクリア:


    スパイルデータをクリアする場合は、元のセルから式を削除するか、スパイル範囲を直接選択してDeleteキーを押します。Excelはスパイル範囲もクリアします。

これらの手順に従うことで、Excelで動的配列式を設定して、データ配列を効率的に分析および操作することができます。これにより、データ分析およびレポートタスクが容易になります。

Aspose.Cellsを使用した動的配列式の設定と更新方法

以下のサンプルコードは、ダミーデータを含む サンプルExcelファイル をロードし、Cell.setDynamicArrayFormula(string, FormulaParseOptions, boolean) 関数で動的配列数式を設定し、[Workbook.refreshDynamicArrayFormulas(boolean)] 関数で数式をリフレッシュし、その後、計算を呼び出して、最後に 出力Excelファイル として保存します。

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "dynamicArrayFormula.xlsx");

// Instantiate an Workbook object
const wb = new AsposeCells.Workbook(filePath);
// Get the first worksheet
const ws = wb.getWorksheets().get(0);

// Getting the F16 
const f16 = ws.getCells().get("F16");

// Set dynamic array formula
f16.setDynamicArrayFormula("=FILTER(A2:C15,(A2:A15=F4)*(C2:C15=25),\"\")", new AsposeCells.FormulaParseOptions(), false);

// Refresh the dynamic array formulas
wb.refreshDynamicArrayFormulas(true);

wb.calculateFormula();
wb.save("out.xlsx");

出力スナップショット: