ADVERTISEMENT

【Googleスプレッドシート】#N/Aを回避するインポート!IFERROR併用の安全策

【Googleスプレッドシート】#N/Aを回避するインポート!IFERROR併用の安全策
🛡️ 超解決

IMPORTRANGE関数を使って別のスプレッドシートからデータをインポートしているときに、突然「#N/A」エラーが表示されて困った経験はありませんか。このエラーは参照先のセルが空だったり権限が正しく設定されていなかったりと、さまざまな原因で発生します。この記事では、IFERROR関数をIMPORTRANGEと組み合わせることで、#N/Aエラーを安全に回避する方法を詳しく解説します。エラー表示を空白や任意のメッセージに置き換えるテクニックを身につけて、見栄えの良いスプレッドシートを作りましょう。

【要点】IMPORTRANGEの#N/AをIFERRORでスマートに処理する方法

  • =IFERROR(IMPORTRANGE(…), “”) の基本構文: エラー時に空白セルを表示して、シートの見た目を整えます。
  • =IFERROR(IMPORTRANGE(…), “データなし”) でカスタムメッセージ: エラー時に任意の文字列を表示できるため、ユーザーに状況を伝えられます。
  • =IF(IMPORTRANGE(…)=””, “”, IFERROR(…)) で空値も考慮: 参照先が空の場合とエラーの場合を区別して処理できます。

ADVERTISEMENT

IMPORTRANGEで#N/Aエラーが発生する主な原因

IMPORTRANGE関数は、別のスプレッドシートからデータを取得する強力な関数です。しかし、いくつかの状況で#N/Aエラーが返ります。最も多いのは、参照先のシートへのアクセス権限がまだ承認されていないケースです。初めてIMPORTRANGEを使うときは、権限の許可を求められますが、これを忘れると#N/Aになります。また、参照先のセルが空の場合も#N/Aが表示されます。さらに、参照元のシート名やセル範囲が間違っている、またはシート自体が削除されている場合も同様です。これらの原因を理解しておくと、トラブルシューティングが容易になります。

IFERRORを使った安全なIMPORTRANGEの基本手順

ここでは、最もシンプルなIFERRORとIMPORTRANGEの組み合わせ方を説明します。基本構文は次のとおりです。

  1. IMPORTRANGEの基本式を用意する
    まずは通常のIMPORTRANGE関数を書きます。例:=IMPORTRANGE("https://docs.google.com/spreadsheets/d/abc123/edit", "Sheet1!A1:C10") この関数だけだと、権限未承認やデータがない場合に#N/Aが表示されます。
  2. IFERRORでラップする
    IMPORTRANGE全体をIFERROR関数で囲みます。構文は =IFERROR(IMPORTRANGE(...), エラー時の値) です。エラー時の値には空文字 “” や、任意のテキスト(例:”データ準備中”)を指定します。
  3. 実際にセルに入力する
    たとえば、次のように入力します:=IFERROR(IMPORTRANGE("スプレッドシートURL", "Sheet1!A1:C10"), "") これで、エラーが発生したセルは空白になります。

この基本形を覚えておけば、他の関数と組み合わせる際にも応用が利きます。

さらに一歩進んだIFERRORの活用テクニック

エラー時にカスタムメッセージを表示する方法

単に空白にするだけでなく、エラーが起きた理由をユーザーに伝えたい場合があります。そのときは、IFERRORの第二引数に任意の文字列を指定します。たとえば、=IFERROR(IMPORTRANGE("URL","Sheet1!A1"), "参照先データが未準備") とすれば、エラー時に「参照先データが未準備」と表示されます。これにより、他のユーザーがセルを見たときに状況を理解しやすくなります。

参照先が空の場合とエラーを区別する方法

IFERRORだけでは、参照先が空のセル(値が何もない)と、本当のエラーを区別できません。両者を区別したい場合は、IF関数と組み合わせます。たとえば、=IF(IMPORTRANGE("URL","Sheet1!A1")="", "空です", IFERROR(IMPORTRANGE("URL","Sheet1!A1"), "エラー")) この式は、まず参照先が空なら「空です」と表示し、次にエラーなら「エラー」と表示します。ただしこの方法ではIMPORTRANGEを2回呼び出すため、パフォーマンスに注意が必要です。

配列数式として使う場合の注意

IMPORTRANGEを配列として使うとき、IFERRORも配列対応でラップできます。たとえば、=ARRAYFORMULA(IFERROR(IMPORTRANGE("URL","Sheet1!A1:C10"), "")) とすれば、インポート範囲全体にIFERRORが適用されます。ARRAYFORMULAと併用する場合は、式の最後まで正しく配列が展開されることを確認してください。

ADVERTISEMENT

IMPORTRANGEでよくある#N/Aのパターンと対処法

権限承認が必要なときの対処

初めてIMPORTRANGEを使うと、セルに「#REF!」や「#N/A」が表示され、クリックすると「アクセス権限が必要です」と出ることがあります。その場合は、エラーセルをクリックして「アクセス権限を許可」ボタンを押してください。許可後はデータが表示されますが、それでも#N/Aが続く場合は次の原因を確認します。

参照先のセル範囲が間違っている

IMPORTRANGEの第二引数には、シート名とセル範囲を文字列で指定します。シート名にスペースが含まれるときは、シート名をシングルクォーテーションで囲む必要があります。たとえば、='シート 1'!A1:B5 のようにします。この指定を誤ると#N/Aになります。IFERRORで隠す前に、まず参照先の表記を確認しましょう。

参照元のシートが削除された場合

参照元のスプレッドシートが削除されると、IMPORTRANGEは#N/Aを返します。この場合はデータを復元しない限り、エラーのままです。IFERRORで「削除済み」などのメッセージを表示しておくと、後で状況がわかりやすくなります。

IMPORTRANGE単体とIFERROR併用の比較

項目 IMPORTRANGE単体 IFERROR+IMPORTRANGE
エラー表示 #N/Aがそのまま表示される 空白や任意のメッセージに置き換えられる
デバッグのしやすさ エラーが明確で原因を特定しやすい エラーが隠れるため原因究明が難しくなる
シートの見た目 #N/Aが目立ち、見栄えが悪い エラーが目立たず、クリーンな見た目になる
配列数式での使用 そのまま使える ARRAYFORMULAと組み合わせて使う必要がある

まとめ

IMPORTRANGEで発生する#N/Aエラーは、IFERROR関数をひとつ加えるだけで安全に回避できます。基本構文は =IFERROR(IMPORTRANGE(...), "") で、空白または任意のメッセージを表示できます。ただし、エラーを完全に隠してしまうと原因の発見が遅れることもあるため、開発中はIFERRORを使わずにエラーを確認し、最終的なシートだけIFERRORでカバーするといった使い分けも有効です。さらに、IF関数と組み合わせて空セルとエラーを区別する方法も覚えておくと、より精度の高いデータ管理ができるでしょう。応用として、QUERY関数やFILTER関数と組み合わせる際にもIFERRORを活用してみてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。