スプレッドシートのIMPORTDATA関数の使い方|CSV/TSVデータ取得

スポンサーリンク

「毎回CSVファイルをダウンロードして、スプレッドシートに手動でインポートしている」。そんな作業を繰り返していませんか。

手作業のインポートは手間がかかりますし、データが更新されるたびに同じ作業が発生します。

そんなときに便利なのが IMPORTDATA関数 です。URLを指定するだけで、CSVやTSVのデータをスプレッドシートに自動で取り込めます。

この記事では、IMPORTDATA関数の基本から実務で役立つ活用パターンまで解説します。

IMPORTDATA関数とは?

IMPORTDATA関数(読み方: いんぽーと でーた)は、指定したURLからCSVまたはTSVデータをスプレッドシートに取得する関数です。

名前は英語の「import(取り込む)」と「data(データ)」が由来です。

たとえば、次のようなデータを取得できます。

  • Web上に公開されているCSVファイル
  • API経由で提供されるCSV形式のデータ
  • 社内システムが出力するTSV形式のレポート

URLを入力するだけで、データが自動的にセルに展開されます。CSV(カンマ区切り)とTSV(タブ区切り)を自動で判別してくれるので、区切り文字を指定する必要はありません。

IMPORTDATA関数にできることをまとめると、次のとおりです。

  • CSVファイルのデータをセルに展開する
  • TSVファイルのデータをセルに展開する
  • 定期的にデータを自動更新する(約1時間ごと)
  • QUERY関数やFILTER関数と組み合わせて取得データを加工する

NOTE

IMPORTDATA関数はGoogleスプレッドシート専用の関数です。Excelには同じ関数は存在しません。ExcelでCSVデータを取り込むには、Power Queryの「CSVからデータを取得」機能を使います。

IMPORTDATA関数の書き方(構文と引数)

基本構文

=IMPORTDATA(URL)

カッコの中にデータの取得先URLを指定します。

引数の説明

引数必須/任意説明
URL必須CSVまたはTSVデータのURL。文字列で指定

引数は1つだけです。省略はできません。URLはダブルクォーテーションで囲んで指定するか、URLが入力されたセルを参照します。

TIP

取得先のURLは https:// で始まる公開URLが必要です。認証が必要なページやローカルファイルのパスは指定できません。

IMPORTDATA関数の基本的な使い方

まずはシンプルな例で動きを確認してみましょう。

URLを直接指定してCSVを取得する

公開されているCSVファイルのURLを直接指定する方法です。

=IMPORTDATA("https://example.com/data.csv")

CSVファイルの中身がカンマで区切られている場合、各列に自動で振り分けられます。見出し行があればそのまま取得されます。

セル参照でURLを指定する

URLが長い場合は、別のセルにURLを入力しておく方法が便利です。

たとえば、A1セルにURLを入力しておけば次のように書けます。

=IMPORTDATA(A1)

複数のCSVファイルを取得するときに、URLの管理が楽になりますよ。

TSVデータを取得する

タブ区切り(TSV)のデータも同じ書き方で取得できます。

=IMPORTDATA("https://example.com/data.tsv")

CSVかTSVかは自動判別されます。特別な設定は不要です。

IMPORTDATA関数の実践的な使い方・応用例

公開データセットを取得する

政府や自治体が公開しているオープンデータには、CSVファイルのURLが公開されているものがあります。

たとえば、統計データのCSVファイルのURLをそのまま指定すれば、スプレッドシートにデータを取り込めます。

=IMPORTDATA("https://example.com/opendata/population.csv")

定期的に更新されるデータであれば、スプレッドシートを開くたびに最新のデータが取得されます。

取得したデータをQUERY関数で加工する

IMPORTDATA関数で取得したCSVデータに対して、QUERY関数で条件付きの抽出や集計ができます。

=QUERY(IMPORTDATA("https://example.com/data.csv"), "SELECT Col1, Col3 WHERE Col2 > 100")

Col1、Col2 のように列番号で指定するのがポイントです。取得範囲の左端が Col1 になります。

「取得 → 加工」を1つの数式で完結できるので便利ですよ。

取得したデータをFILTER関数で絞り込む

FILTER関数と組み合わせれば、条件に合うデータだけを取り出せます。

=FILTER(IMPORTDATA(A1), INDEX(IMPORTDATA(A1),,2)>1000)

2列目の値が1000より大きい行だけを抽出する例です。IMPORTDATA関数を2回呼び出している点に注意してください。

TIP

FILTER関数よりもQUERY関数のほうが数式がシンプルになるケースが多いです。条件付きの加工にはQUERY関数を先に検討してみてください。

複数のCSVファイルを管理シートで一括管理する

複数のCSVデータを定期的に取得する場合は、管理シートを作る方法がおすすめです。

  1. 「管理」シートのA列にCSVファイル名、B列にURLを入力します
  2. 各データ用のシートを作成します
  3. 各シートのA1セルに =IMPORTDATA(管理!B1) のようにURLを参照します

URLが変わった場合も管理シートを修正するだけで済みます。

よくあるエラーと対処法

IMPORTDATA関数で「データが取得できない」ケースをまとめました。

症状原因対処法
#N/A エラーURLが間違っている・ページが存在しないURLをブラウザで開いてCSVデータが表示されるか確認する
#N/A エラーURLにアクセス権限がない認証が必要なURLは取得できない。公開URLに変更する
#VALUE! エラー引数が空、または不正な形式URLを正しく文字列で指定する
リソースの取得エラーサーバーがリクエストを拒否しているサイト側でアクセス制限がかかっている可能性がある
データが1列にまとまる区切り文字がカンマでもタブでもないセミコロン区切りなどは自動判別できない。元データの形式を確認する
古いデータが表示されるキャッシュが更新されていないスプレッドシートを再読み込みする。数式を一度消して再入力する
数式が動作しないIMPORT系関数の上限に達している1スプレッドシートあたり50個の制限を確認する(次のセクションで解説)

#N/A エラーが最もよく出ます。まずはURLをブラウザで直接開いて、CSVデータが表示されるか確認してみてください。

IMPORTDATA関数の注意点(50関数制限、リアルタイム更新等)

IMPORTDATA関数を使ううえで知っておきたいポイントをまとめます。

1スプレッドシートあたり50関数の制限

IMPORT系関数(IMPORTDATA / IMPORTHTML / IMPORTXML / IMPORTFEED / IMPORTRANGE)は、1つのスプレッドシートに合計50個までしか使えません。50個を超えると数式がエラーになります。

大量のCSVを取得したい場合は、スプレッドシートを分けて管理する方法を検討してください。

リアルタイム更新ではない

IMPORTDATA関数はデータをリアルタイムに監視しているわけではありません。スプレッドシートを開いたときや、約1時間ごとに自動で再取得されます。

すぐに最新データを取得したい場合は、数式を一度消して再入力するか、スプレッドシートを再読み込みしてください。

公開URLのみ対応

取得先のURLは https:// で始まる公開URLが必要です。社内ネットワーク内のURLやログインが必要なページは取得できません。

社内データを連携したい場合は、IMPORTRANGE関数で別のスプレッドシートから取得する方法を検討しましょう。

大きなデータは動作が重くなる

行数が多いCSVファイルを取得すると、読み込みに時間がかかります。必要なデータだけを含む軽量なCSVファイルを用意するのがおすすめです。

WARNING

IMPORTDATA関数で取得するデータの正確性は、取得先のデータソースに依存します。重要な意思決定に使う場合は、元のデータソースでも最新の値を確認してください。

Excelとの違い

IMPORTDATA関数はGoogleスプレッドシート専用の関数です。Excelには存在しません。

項目GoogleスプレッドシートExcel
IMPORTDATA関数使えるなし
CSVデータ取得の代替手段IMPORTDATA関数Power Query「CSVからデータを取得」
操作方法セルに数式を入力するだけGUIウィザードで設定
自動更新約1時間ごとに自動更新手動更新または自動更新設定
Web上のCSV取得URLを指定するだけPower Queryの「Webから」で設定

ExcelでCSVデータを取り込みたい場合は、「データ」タブ → 「データの取得」 → 「ファイルから」でPower Queryを使います。GUIで設定する方式なので、数式1つで完結する手軽さはありません。

CSVの自動取得を数式で手軽にやりたいなら、スプレッドシートのIMPORTDATA関数が圧倒的に便利です。

IMPORT系関数の使い分け

Googleスプレッドシートには、IMPORTDATA以外にもデータを取得するIMPORT系関数があります。目的に応じて使い分けましょう。

関数取得対象用途例
IMPORTDATACSV / TSVデータ公開CSVファイルを取得
IMPORTHTMLHTMLのtable / listWebページの表やリストを取得
IMPORTXMLXMLデータ / XPath指定特定のHTML要素をXPathで指定して取得
IMPORTFEEDRSS / Atomフィードニュースサイトの更新情報を取得
IMPORTRANGE別のスプレッドシート別ファイルのセル範囲を取得

使い分けのポイント: CSVファイルならIMPORTDATA、Webページの「表」が欲しいならIMPORTHTML、HTMLの特定要素をピンポイントで取りたいならIMPORTXMLです。

別のスプレッドシートからデータを取得したい場合は、IMPORTRANGE関数を使います。URLではなくスプレッドシートキーで指定する点が異なりますよ。

TIP

IMPORT系関数はすべて合わせて1スプレッドシートあたり50個までの制限があります。複数のIMPORT系関数を使う場合は、合計数を意識しておきましょう。

まとめ

IMPORTDATA関数は、CSVやTSVのデータをURLから自動取得できる便利な関数です。

ポイントを整理します。

  • 構文は =IMPORTDATA(URL) で、引数は1つだけ
  • CSV(カンマ区切り)とTSV(タブ区切り)を自動判別する
  • 約1時間ごとにデータが自動更新される
  • 公開URLのみ対応(認証が必要なページは不可)
  • IMPORT系関数は合計50個までの制限がある
  • Googleスプレッドシート専用でExcelには存在しない(Power Queryが代替)
  • QUERY関数FILTER関数と組み合わせてデータ加工もできる
  • IMPORT系関数(IMPORTHTML / IMPORTXML / IMPORTFEED / IMPORTRANGE)と目的に応じて使い分ける

まずは、公開されているCSVファイルのURLで =IMPORTDATA("URL") を試してみてください。数式を入力するだけでデータが取り込める手軽さを実感できますよ。


関連記事

タイトルとURLをコピーしました