【×Excel→○スプレッドシート】ImportHTML関数を使って自在にデータを収集しよう

こんにちは、Forkusです!

資料作成、課題提出、何かと普遍的なデータ(人口, 〇〇の割合, 歴史…)を探す機会は多いと思います。一方、よほど重要な資料でない限り、最近はweb上のデータで済ましている人も多いのではないでしょうか。

Webページを当たって「あ、これ使えそうだな」と思ったとき、さっとコピペしてしまうなんてこともありますよね。

しかし、ExcelやSpreadsheetにそのテーブルごとコピペしたら形が崩れてしまった….同じ形にするために、一つ一つ直して….split関数つかって….

めんどくせぇ…(ボソッ)

Forkus
めんどくせえことはしないに限る。

そこで今回紹介するのは、ImportTHTML(HTMLデータを取り込む)関数さんです。

彼に託された使命はただ一つ、あらゆるwebページから表やリストをキレイに入手すること。
そして、その元ページの情報更新まで、リアルタイムで反映させる保守機能つき。

これ、スプレッドシートなら簡単に実現できます!

1. ImportHTML関数とは

1.1. ImportHTML関数の意味

みなさん “HTML“の意味はご存知でしょうか。

HTML
Stands for “Hypertext Markup Language.” HTML is the language used to create webpages. “Hypertext” refers to the hyperlinks that an HTML page may contain. “Markup language” refers to the way tags are used to define the page layout and elements within the page.

Hypertext Markup Language (HTML)
↓ 訳
HTMLはハイパーテクストマークアップ言語の略。webページの構成につかわれます。
ハイパーテクストは文中のハイパーリンクを指す一方、
マークアップ言語は各タグの用途、例えば、ページレイアウトや見出し・段落・表・リストなどの各要素(elements)を示します。

つまりは、あなたが参考にしたい webページの設計書です。

この部分にはこれがあって…といった位置情報も持っているので、ImportHTML関数をつかってインポートする情報は、正確なんですね。

これが単なるコピペから得られる情報との1番の違いです。

“tag”は、日本語で言えば「名札」のこと。電子の世界では、テクストの書式、役割や場所を示す名札になります。以下では、まず、表やリストについて解説します。

1.2. 欲しいのは表?それともリスト?

まずは、イメージをつかんでみましょう。
今回の欲しいデータは、国連が発表する「世界の国別人口ランキング2017」にある、ランキングデータです。

以下が、表とリストの位置になります↓

今回はこの中の “table”を参考にしたいので下の赤枠で囲まれた表以降がそれに当たりますね。

ヒント
実際にタグの場所をみてみたい方は、上のリンクからページに飛び、マウスを右クリックして「ソースをみる」を選択しましょう。
“table” (表を示すタグ)もしくは “ol”, or “ul” (リストを示すタグ)をcontrol + F で探すと、より具体的に順番がつかめます。

2. ImportHTML関数をつかってみる

2.1. ImportHTML関数の使い方

ImportHTML関数は以下のシンタックス(構文のルール)で作られます。

=IMPORTHTML(“参照したいURL”,”table or list”,その順番)

先程も少し触れましたが、もし “list”を参照する場合、HTML上では、<ul>,<ol>, or <dl>のタグに示されるコンテンツをスプレッドシートに挿入させています。
また、“table”の場合は、<table>タグが示す内容を参照します。
(この関数上で実際に使うのは “table”と “list” だけですが…)

Forkus
ならむずかしそうな話すんじゃねーよハゲ。

今回はこのURL 中の②番目テーブル(表)をインポートするので、関数は次のようになりますね!

=IMPORTHTML(“https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations)”,”table”,2)

2.2. 実際にやってみよう

先ほど作った関数をA1セルに入れてみると….

こんな簡単でいいんでしょうか… 一瞬で欲しかったデータがパッと表示されました!

2.3. データの行と列を入れ替えたい!→TRANSPOSE関数を頭につけるだけ

スプレッドシートでもTranspose関数はあるんです!
先ほど使った関数の頭にTRANSPOSEをつけてカッコで閉じるだけ。

今度は、以下の関数をA1セルに入れてみましょう。

=TRANSPOSE(IMPORTHTML(“https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations)”,”table”,2))

無事、行と列が入れ替わりましたね!

以上になります。
ここまで閲覧してくださったみなさま、お疲れ様でした。

ImportHTML関数は次回紹介するQuery関数と一緒に使用することをオススメします。vlookup 関数より分かりやすく、そして簡単にあなたの欲しい情報を、今回入手したデータから持ってくることが出来ます! 是非一緒にマスターしましょう↓

【×Excel→○スプレッドシート】最も強力なQuery関数で自在にデータを操ろう

2019.02.09

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA