IMPORTDATA関数とデータのインポートどちらが良い?

Web上にあるcsvデータなどを直接インポートできるIMPORTDATA関数。

使い勝手はかなり良いのですが、日本語環境の場合は文字コードの関係で少し問題が・・・

今回はIMPORTDATA関数の使い方を中心に解説しています。

IMPORTDATA関数とは?

Web上にあるcsvデータなどを、そのURLを指定して直接スプレッドシートにインポートできる関数です。

IMPORTDATA関数の構文は以下の通り。

=IMPORTDATA(URL, 区切り文字, locale)

URLはインポートしたデータがあるURLです。

例えば、内閣府のホームページに国民の祝日を載せているページ

(https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html)がありますが、

その中に、国民の祝日データ(csv形式)をダウンロードできるリンクがあります。

そのリンクされた文字列上で右クリックをして「URLをコピー」とすることで得られます。

区切り文字はカンマやタブなどを指定できますが、特に指定しなくても問題ありません。(省略可)

最後のlocalは言語の種類を指定できます。日本語であればjpなどになりますが、こちらも特に指定しなくても問題ありません(省略可)

例えば、上述の内閣府で提供している国民の祝日をIMPORTDATA関数でインポートする場合は、以下のような書き方でデータをインポートです。

=IMPORTDATA(“https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv”,”,”,”jp”)

区切り文字の指定と、Localは省略できるので、下記のような書き方でも同じように取り込めます。

=IMPORTDATA(“https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv”)

データのあるURLを指定するだけでそのデータをスプレッドシートに取り込めるので、とても楽チンですね!!

文字コードによる表示の問題

IMPORTDATA関数はURLを指定するだけでデータを取り込めるので、非常にありがたい関数ではありますが、

前述のように、IMPORTDATA関数を使って実際に「国民の祝日」データを取り込むと、下図のような結果になってしまいます。

見事なまでの文字化け・・・

実際には、下図のようなデータになっています。

これは文字コードの違いによる問題です。

Googleスプレッドシートなどでは、「UTF-8」という文字コードとしてインポートしようとしますが、内閣府で提供されているデータは「Shift-JIS」という文字コードで作られているため、文字化けしてしまうのです。

実際には日本国内で公開されているcsvファイルの多くは、shift-JIS形式のものがほとんどなため、海外のデータや、英数字のみを扱ったデータでない限り、必ず文字化けの問題が起きてしまいます。

残念ながら、この文字化けを解消する方法はありません。

正確にはGASを使って、関数を作る事で回避する手段も取れなくはないですが、いろんなレベルのユーザーが使う環境の場合は、必ずしも良い方法とは言えないと思っています。

英数字のみのデータ、もしくは一部が文字化けしていても英数字のみしか扱わない場合などは、文字化けを無視してデータを扱うという考えもできますが、文字化けしているデータが並んでいるとなんだか気持ち悪いですよねf(–;

データのインポートを使う

使いたいデータのURLを指定して簡単にデータをインポートできる、IMPORTDATA関数はとても便利ではありますが、文字化けを回避するには、関数を使わずにデータをインポートする手段を覚えておいた方が良いと思います。

取り込みたいデータをインポートするには、まずは必要なcsvデータを「リンクのコピー」ではなく、ファイルとしてダウンロードし、Googleドライブに格納します。

その後、インポートの手順を行うのですが・・・

詳細なcsvデータをインポートする方法は以下の記事でまとめていますので、ご確認くださいませ。

簡単に手順を述べると、

  1. 必要なファイルをダウンロードしてGoogleドライブに保存。
  2. ファイルメニューからインポートを利用して、ダウンロードしたファイルを選択。
  3. データの変換などを指定してインポート完了。

ファイルをダウンロードしてからそのデータをインポートするには、以上のような手順になります。

IMPORTDATA関数はURLを指定するだけなので、手順が増える分、少しだけ面倒にはなりますね。

まとめ

Web上にあるcsvデータなどを取り込む(インポートする)にはIMPORTDATA関数が、簡単に取り込めて非常に便利なため、是非覚えておきたい関数の一つです。

しかし、日本語の混じったデータを取り込む(インポートする)には、文字化けの問題があるため、必ずしもIMPORTDATA関数が最適とは限りません。

手順は少し増えてしまいますが、日本語のデータを扱うのであれば、ファイルメニューからデータのインポートをする手順も覚えて、必要に応じて使い分けるようにしましょう!

コメント