「毎回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データを定期的に取得する場合は、管理シートを作る方法がおすすめです。
- 「管理」シートのA列にCSVファイル名、B列にURLを入力します
- 各データ用のシートを作成します
- 各シートの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系関数があります。目的に応じて使い分けましょう。
| 関数 | 取得対象 | 用途例 |
|---|---|---|
| IMPORTDATA | CSV / TSVデータ | 公開CSVファイルを取得 |
| IMPORTHTML | HTMLのtable / list | Webページの表やリストを取得 |
| IMPORTXML | XMLデータ / XPath指定 | 特定のHTML要素をXPathで指定して取得 |
| IMPORTFEED | RSS / 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") を試してみてください。数式を入力するだけでデータが取り込める手軽さを実感できますよ。
