web-dev-qa-db-ja.com

Googleスプレッドシートのピボットテーブルが更新されない

整理されたシートに情報を送信するGoogleアプリスクリプトがあり、シート内のすべての情報を使用してピボットテーブルを作成したいと考えています。これは可能ですが、新しいデータ行をシートに送信しても、ピボットテーブルに自動的には含まれません。新しいデータ行を送信するたびに、ピボットテーブルの範囲を手動で変更する必要があります。シート/ピボットテーブルに新しいデータ行を自動的に含める方法はありますか?

13
Ben

列の範囲を指定するだけでこの問題を回避しました。

たとえば、列AからFに行データがある場合、ピボットテーブルの範囲をSHEET!A:Fに設定します。

ここで行を追加すると、それらの列の新しいデータがピボットテーブルに追加されます。

10
merlot

やり方がある。私はそれを3年前にスプレッドシートで正確に行いました。

Googleフォームを使用して新しい行を送信する場合、方法はありません。

プログラムで範囲を更新しようとすると、名前付き範囲を削除してから再度追加する必要があり、ピボットで#REFが発生するため、方法もありません。

さて、スクリプトを使用して新しい行を追加する場合は、最後に追加しないでください。代わりに、偽の行を最後に保持し(値がゼロであるためピボットは影響を受けません)、その直前に新しい行を挿入します。範囲(名前付きかどうか)が更新されます。

Googleフォームの場合でも、すべての空白行を応答シートに事前に追加し、名前付き範囲に空白行を含めることで機能する場合があります。

2
Zig Mandel

フォームにリンクされたGoogleスプレッドシートで同じ問題が発生しました。解決方法:

  1. ピボットテーブルの範囲を編集して、シートの最後の行の後に空の行を含めます。

    ピボットテーブルのデータ範囲が「シート名」!A1:S100の場合は、「シート名」!A1:S101に変更します。

  2. 空白にならない列(データ範囲に存在)のピボットテーブルにフィルターを追加し、この列の条件を設定します- '空ではありません'

    「タイムスタンプ」列がある場合(そして、それが空にならないことが確実な場合)、この列をフィルターに追加し、「条件によるフィルター」を選択して、条件を '空ではない'にします。

これらの手順により、最後の(空の)行が除外されます。データに新しい行を追加すると、ピボットテーブルが自動的に更新され、データ範囲を再度更新する必要はありません。

1
Arihant Jain

私の場合、干渉していたのはピボットのFiltersセクションのフィールドでした(以下の赤でハイライトされています)。

フィルターなしでテストすることを確認してください...機能するかどうかを確認してください。次に、フィルターを1つずつ追加して、ピボットを操作します。おそらく、フィルタがピボットに影響を与えて更新されていません。

![enter image description here

0