こんにちは、Forkusです!
資料作成、課題提出、何かと普遍的なデータ(人口, 〇〇の割合, 歴史…)を探す機会は多いと思います。一方、よほど重要な資料でない限り、最近はweb上のデータで済ましている人も多いのではないでしょうか。
Webページを当たって「あ、これ使えそうだな」と思ったとき、さっとコピペしてしまうなんてこともありますよね。
しかし、ExcelやSpreadsheetにそのテーブルごとコピペしたら形が崩れてしまった….同じ形にするために、一つ一つ直して….split関数つかって….
めんどくせぇ…(ボソッ)

そこで今回紹介するのは、ImportTHTML(HTMLデータを取り込む)関数さんです。
彼に託された使命はただ一つ、あらゆるwebページから表やリストをキレイに入手すること。
そして、その元ページの情報更新まで、リアルタイムで反映させる保守機能つき。
これ、スプレッドシートなら簡単に実現できます!
目次
1. ImportHTML関数とは
1.1. ImportHTML関数の意味
みなさん “HTML“の意味はご存知でしょうか。
HTML
Hypertext Markup Language (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.
ハイパーテクストは文中のハイパーリンクを指す一方、
マークアップ言語は各タグの用途、例えば、ページレイアウトや見出し・段落・表・リストなどの各要素(elements)を示します。
つまりは、あなたが参考にしたい webページの設計書です。
この部分にはこれがあって…といった位置情報も持っているので、ImportHTML関数をつかってインポートする情報は、正確なんですね。
これが単なるコピペから得られる情報との1番の違いです。
1.2. 欲しいのは表?それともリスト?
まずは、イメージをつかんでみましょう。
今回の欲しいデータは、国連が発表する「世界の国別人口ランキング2017」にある、ランキングデータです。
以下が、表とリストの位置になります↓

今回はこの中の “table”の②を参考にしたいので下の赤枠で囲まれた表以降がそれに当たりますね。
実際にタグの場所をみてみたい方は、上のリンクからページに飛び、マウスを右クリックして「ソースをみる」を選択しましょう。
“table” (表を示すタグ)もしくは “ol”, or “ul” (リストを示すタグ)をcontrol + F で探すと、より具体的に順番がつかめます。
2. ImportHTML関数をつかってみる
2.1. ImportHTML関数の使い方
ImportHTML関数は以下のシンタックス(構文のルール)で作られます。
先程も少し触れましたが、もし “list”を参照する場合、HTML上では、<ul>,<ol>, or <dl>のタグに示されるコンテンツをスプレッドシートに挿入させています。
また、“table”の場合は、<table>タグが示す内容を参照します。
(この関数上で実際に使うのは “table”と “list” だけですが…)

今回はこのURL 中の②番目のテーブル(表)をインポートするので、関数は次のようになりますね!
2.2. 実際にやってみよう
先ほど作った関数をA1セルに入れてみると….

こんな簡単でいいんでしょうか… 一瞬で欲しかったデータがパッと表示されました!
2.3. データの行と列を入れ替えたい!→TRANSPOSE関数を頭につけるだけ
スプレッドシートでもTranspose関数はあるんです!
先ほど使った関数の頭にTRANSPOSEをつけてカッコで閉じるだけ。
今度は、以下の関数をA1セルに入れてみましょう。

無事、行と列が入れ替わりましたね!
以上になります。
ここまで閲覧してくださったみなさま、お疲れ様でした。