18

この問題はしばらくの間持続しており、ランダムなタイミングで頻繁に発生し、何も変わりません。問題の再現方法もわかりませんが、何が起こっているのかを詳しく説明します。

通常、importRange関数は問題なく動作し、次のようになります。

ここに画像の説明を入力

スプレッドシート キーが正しく入力されている - 私はしばらくの間、Google スプレッドシートでこの戦略を使用してきました。

ときどき、Google スプレッドシートが壊れているように見えるか、少なくともimportRange関数が壊れているように見えます...そして、次のようなものを生成します:

ここに画像の説明を入力

今日、Google が時々フリーズしているように見えました。importRangeパラメータを!X1:X!X2:X5に調整したり、インポートされているシートのタイトルを変更したりしてみました。

以前は、 !X:Xから!X1:Xに変更すると一部の列が修正されましたが、すべての列が修正されるとは限りませんでした。私が見つけた、これを修正するための唯一の絶対確実な解決策は、両方のスプレッドシートを再作成することです。バックエンド (インポートされるもの) が最終的にレポートになるので、複数のスプレッドシートを参照するという余分な労力を上司に惜しまず、これを修正して完了させたいと思います。

このグリッチの潜在的な原因を知っている人はいますか? 自己解決する場合もあれば、そうでない場合もあります。これはランダムに発生し、特定のスプレッドシートにのみ発生します (私は 8 つほどのセットを持っており、すべてが を使用importRangeしており、同時に影響を受けるのは 2 つまでです)。ですから、正直なところ、これがどこから来ているのかわかりません。

補足: Google は一般的に、今日、すべてのサービスに関して少し応答がありませんでした。私の大学の App Engine メール サービスは、約 30 分間ダウンしていました。リソース/ネットワーク攻撃者の制限により、スプレッドシートでこの種の動作が引き起こされる可能性はありますか?

更新:別のスプレッドシートから同じスプレッドシートデータにインポートしようとしました(つまり、関数に別のスプレッドシート キーを与えました)。別のスプレッドシートにインポートした場合、キーと範囲は有効ですが、元のスプレッドシート (#REF! でいっぱいのもの) では、その範囲は正しくインポートされません。これにより、この不具合は、他のソースからの試みが機能しない単一のスプレッドシートにのみ適用される可能性があると私は信じています。importRangeimportRange

4

11 に答える 11

17

これは少し遅れていますが、検索で見つけたので、他の人に役立つかもしれません-次のようなことを試してください:

=IFERROR(ImportRange(SpreadSheet_GUID,"Bookings!P:P"), 
 IFERROR(ImportRange(SpreadSheet_GUID,"Bookings!P:p"), 
 IFERROR(ImportRange(SpreadSheet_GUID,"Bookings!p:P"), 
         ImportRange(SpreadSheet_GUID,"Bookings!p:p"))))

基本的には、元の住所のバリエーション (大文字/小文字の列文字) を使用して Google に再計算を強制するという考え方です。

于 2014-01-29T11:40:31.653 に答える
6

IMPORTRANGE() 関数の問題は、進行中の問題です。何年にもわたっていくつかのバグがあり、設計どおりに機能するように安定したソリューションを見つけるのは Google 次第です。

それまでは、これが役立つ場合があります。

セルを編集したり、新しいスプレッドシートを作成したり、シートに関数を再試行させるために何か他のことをする代わりに (宝くじをするようなものです)、読み込みに失敗したときに Google シートに関数を自動的に再試行させることができます。

IFERROR() 関数で問題を引き起こしている IMPORTRANGE() 関数をラップします。このようにして、シートはインポートを試行し、失敗した場合にのみ再試行します。関数をネストして、連続して数回試行することができます。

ソース データに名前付き範囲を追加して (ソースを右クリック > 名前付き範囲を定義)、簡単に使用できます。たとえば、「J:J」範囲に対して 3 つの異なる名前付き範囲を作成できます。それらを「J」、「Ja」、「Jay」と呼んでから、インポート先のシートで IFERROR() 関数を呼び出します。

=IFERROR( IMPORTRANGE( "SheetID","J" ), IFERROR( IMPORTRANGE( "SheetID","Ja" ), IFERROR( IMPORTRANGE( "SheetID","Jay" ), IFERROR( IMPORTRANGE( "SheetID", "'TabName'!J:J" ), IFERROR( IMPORTRANGE( "SheetID", "'TabName'!j:j" )))))

この式は、インポートを試行し、成功した場合は配信します。そうでない場合は、合計 5 回連続して自動的に再試行します。これは、成功することを保証するものではありませんが、インポートが成功する可能性が 50% ある場合は、 5 つ続けてネストすると、96% の可能性が得られます。これははるかに優れています。私の個人的な経験では、IFERROR() ネストを実行して以来、失敗していません。

それが役に立てば幸い。

于 2016-10-10T00:45:28.313 に答える
4

同様の問題があり、スプレッドシートへの公開リンクを使用しないことで解決しました。パブリック共有のリンクと、シートを開いたときにアドレス バーからコピーされたリンクが異なることに気付きました。

また、他の Google アカウントから共有スプレッドシートを開く際に問題があることに気付きました。インポートしていた一部のスプレッドシートへのアクセスを再度許可する必要がありました。

私の英語でごめんなさい。

于 2018-07-01T20:22:05.667 に答える
-1

私は同じ問題を抱えていて、以前の IMPORTRANGE があったセルで =IF(ISERROR(A1);IMPORTRANGE();IMPORTRANGE()) を使用し、スプレッドシートの場所と計算設定で反復計算をオンにすることで解決しました。それが誰かを助けることを願っています

于 2020-04-17T08:00:16.457 に答える