Google スプレッドシートや Microsoft Excel のワークシートに含まれるテーブルを再生成する際、AppSheet はそのワークシートのコンテンツを読み取り、分析します。
具体的には、AppSheet は次のものを分析します。
- ワークシートのヘッダーセルのコンテンツ
- ワークシートのセルデータの値
- 各セルの形式
- 各セルのワークシート数式
- ワークシートに定義されたデータ入力規則
AppSheet はこの情報を使用して、ワークシートの各列の名前とデータの種類を判断します。その列についての情報がすでに存在する場合、AppSheet はこの新しい情報を既存の情報と組み合わせます。これにより、AppSheet は新しく追加された列を検出して、その名前と種類を正しく判断します。同時に、AppSheet は既存の列の名前と種類に関する情報を保持しようとします。
各セルのデータ値を分析できるようになる前に、AppSheet は再生成するワークシートに含まれている、すべてのワークシート数式の値を計算する必要があります。これらのワークシート数式を計算するために必要な時間は、再生成するワークシートに含まれるワークシート数式の数と複雑さに依存します。また、これらのワークシート数式が、ワークシート数式を含む他のワークシートのセルを参照しているかどうかにも依存します。
次の例を考えてみてください。再生成されるワークシートのセル A2
にはワークシート数式が含まれており、この数式は他のワークシートのセルのシーケンスを参照しており、ここにもワークシート数式が含まれています。再生成されるワークシートのセル A2
の数式が、ワークシート OtherSheet1 のセル B2
を参照しているとします。ワークシート OtherSheet1 のセル B2
のワークシート数式が、ワークシート OtherSheet2 のセル C2
を参照していて、このセルにもワークシート数式が含まれているとします。この場合、再生成されるワークシートのセル A2
の値を計算するには、AppSheet はまずワークシート OtherSheet2 のセル C2
の値を計算し、次にワークシート OtherSheet1 のセル B2
の値を計算し、それから、再生成されるワークシートのセル A2 の値を計算する必要があります。
AppSheet は Calc Chain を使用して、評価する必要があるワークシート数式を含むセルを追跡します。Calc Chain は、正確な結果を出すために評価する必要があるワークシート数式の正しい順番を反映するように並べられています。たとえば、先ほどの例の場合、Calc Chain にはシート Othersheet2 のセル C2
、Othersheet1 のセル B2
、再生成されたシートのセル A2
の順番で含まれています。
Calc Chain の長さは、ワークシート数式を含む再生成されたワークシートのセルの数に主に依存します。Calc Chain には、再生成されたワークシートの、ワークシート数式を含む各セルへの個別の入力が含まれており、その後に再生成されたワークシート数式が依存するワークシート数式が続きます。再生成されたワークシートの行数が 2 倍になると、Calc Chain の長さも 2 倍になります。再生成されたワークシートの行数が 4 倍になると、Calc Chain の長さも 4 倍になり、以下同様です。
Calc Chain の計算に必要な時間は、含まれるワークシート数式の数と複雑さの両方に依存します。Calc Chain の計算に必要な時間は、ワークシートを再生成するのに必要な時間を大幅に増加させることがあります。Calc Chain の計算時間は、数秒から数十分までの幅があります。多くの複雑な数式を含む多くの行を持つワークシートを再生成する場合、再生成には非常に長い時間がかかります。
再生成されるワークシートに含まれる行数を一時的に減らすことにより、再生成を行うのに必要な時間を大幅に減らすことができます。たとえば、ワークシートには特定のセルの値だけが異なる、ほぼ同様の行が非常に多く含まれているかもしれません。その場合は、以下のことを行うことにより、再生成の時間を短縮できます。
- 再生成されるワークシートのデータの値のコピーを行う。
- 再生成されるワークシートの最初の 3 から 5 行を除いて、すべての行を削除する。
- 切り詰めたワークシートを使用して、再生成を行う。
- 再生成が成功したことを確認する。たとえば、列の名前や種類が正しいことを確認します。テーブルの Spreadsheet formula プロパティに含まれるワークシート数式が正確であることを確認します。
- すべての元のデータの値を、再生成されたワークシート内で復元する。
- AppSheet アプリケーションを使用して更新されたテーブルを同期し、再生成されたテーブルのすべての行を表示できることを確認する。