整理されたシートに情報を送信するGoogleアプリスクリプトがあり、シート内のすべての情報を使用してピボットテーブルを作成したいと考えています。これは可能ですが、新しいデータ行をシートに送信しても、ピボットテーブルに自動的には含まれません。新しいデータ行を送信するたびに、ピボットテーブルの範囲を手動で変更する必要があります。シート/ピボットテーブルに新しいデータ行を自動的に含める方法はありますか?
列の範囲を指定するだけでこの問題を回避しました。
たとえば、列AからFに行データがある場合、ピボットテーブルの範囲をSHEET!A:Fに設定します。
ここで行を追加すると、それらの列の新しいデータがピボットテーブルに追加されます。
やり方がある。私はそれを3年前にスプレッドシートで正確に行いました。
Googleフォームを使用して新しい行を送信する場合、方法はありません。
プログラムで範囲を更新しようとすると、名前付き範囲を削除してから再度追加する必要があり、ピボットで#REF
が発生するため、方法もありません。
さて、スクリプトを使用して新しい行を追加する場合は、最後に追加しないでください。代わりに、偽の行を最後に保持し(値がゼロであるためピボットは影響を受けません)、その直前に新しい行を挿入します。範囲(名前付きかどうか)が更新されます。
Googleフォームの場合でも、すべての空白行を応答シートに事前に追加し、名前付き範囲に空白行を含めることで機能する場合があります。
フォームにリンクされたGoogleスプレッドシートで同じ問題が発生しました。解決方法:
ピボットテーブルの範囲を編集して、シートの最後の行の後に空の行を含めます。
ピボットテーブルのデータ範囲が「シート名」!A1:S100の場合は、「シート名」!A1:S101に変更します。
空白にならない列(データ範囲に存在)のピボットテーブルにフィルターを追加し、この列の条件を設定します- '空ではありません'
「タイムスタンプ」列がある場合(そして、それが空にならないことが確実な場合)、この列をフィルターに追加し、「条件によるフィルター」を選択して、条件を '空ではない'にします。
これらの手順により、最後の(空の)行が除外されます。データに新しい行を追加すると、ピボットテーブルが自動的に更新され、データ範囲を再度更新する必要はありません。