コピペするより速い・ラク・正確

ビジネスで使えるWebアプリとしてすっかり定着した「Googleスプレッドシート」。その使い勝手はExcelとよく似ており、多くのExcel関数は、Googleスプレットシートでもそのまま使えます。

しかし、片方でしか使えない関数も存在し、ここで解説する「IMPORTHTML」(インポート・エイチティーエムエル)関数もその1つ。IMPORTHTML関数は、Webページにある表やリスト(箇条書き)の内容を抽出し、それを編集してページを更新したり、ほかの資料に引用したりする用途で役立ちます。

例えば、自社のWebページに以下のような表があり、この内容(文字列)だけをデータとして抽出したいとしましょう。

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

普通にやると、マウスでドラッグして表の内容を選択してコピーし、ほかのファイルに貼り付けることになります。しかし、大きな表は選択するのが面倒ですし、そのまま貼り付けると余計な書式まで残ってしまいます。

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

IMPORTHTML関数を使えば、1つの数式で1つの表の内容を丸ごと抽出できます。数式をコピーして引数を編集すれば、ほかの表の抽出もカンタンです。

Webページにあるコンテンツを頻繁に利用する人は、次の手順を参考にIMPORTHTML関数の使い方をマスターするといいでしょう。なお、残念ながらExcelでは使えないのでご注意ください。

IMPORTHTML関数でWebページの表やリストを抽出する

最初にIMPORTHTML関数の構文を確認しましょう。

IMPORTHTMLURL, クエリ, 指数

1つめの引数[URL]では、抽出したい表やリストがあるWebページのURLを「"」(ダブルクォーテーション)で囲んで指定します。「https://」から入力してください。

2つめの引数[クエリ]では、以下のいずれかを「"」で囲んで指定します。

  • table......表(<table>タグ)の内容を抽出する
  • list......リスト(<ol>タグや<ul>タグ)の内容を抽出する

3つめの引数[指数]では、Webページの何番目に登場する表やリストを抽出するのかを指定します。例えば、上から2番目にある<table>タグの内容を抽出したい場合、「2」と入力します。ページの見た目ではなく、HTMLのソースコードにおける順序であることに注意してください。

ここでは本サイトの記事「Excel関数一覧 機能別」にある表やリストを、サンプルとして抽出してみます。

1IMPORTHTML関数を入力する

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

セルA1に「=IMPORTHTML」と入力します。途中で表示される候補をクリックしてもOKです。

21つめの引数を指定する

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

「(」を入力し、1つめの引数[URL]を指定します。最後に「,」を入力しましょう。

32つめの引数を指定する

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

2つめの引数[クエリ]を指定します。ここでは表を抽出するため「"table"」と入力しました。最後に「,」を入力します。

43つめの引数を指定する

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

Webページの最初の表を抽出するため、3つめの引数[指数]には「1」を指定しました。最後に「)」を入力して[Enter]キーを押します。

51番目の表の内容が抽出された

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

Webページにある1番目の表の内容が抽出されました。セルA1以降の行と列にもデータが入力されるため、Excel関数でいう「配列」を返す関数といえます。

6ほかの表の内容を抽出する

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

続けて、ほかの表の内容も抽出してみましょう。セルA1の数式をコピーして......

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

別のセル(ここではセルC1)に貼り付けます。そして、3つめの引数を「2」に変更します。

72番目の表の内容が抽出された

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

2番目の表の内容が抽出されました。表を1つ1つ選択してコピペする必要がなく、圧倒的にラクです。

8リストの内容を抽出する

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

今度は表ではなく、リストを対象にしてみましょう。ここでは先ほどの数式を、新しいシートのセルA1にコピーしました。そして、2つめの引数を「"list"」、3つめの引数を「6」に変更します。

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

リストの内容が意図通りに抽出されました。

9抽出したテキストを編集する

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

IMPORTHTML関数で抽出したテキストを編集したいとき、そのまま編集するとエラーになります。これはIMPORTHTML関数の結果が返されるセル範囲に、余計なデータが入力されたと認識されるためです。

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

テキストを編集するには、IMPORTHTML関数の結果があるセル範囲をコピーして[値のみ貼り付け]を実行しましょう。関数の結果ではなく、通常のデータとして扱えるようになります。

HINT表やリストが何番目かを調べるには?

3つめの引数[指数]に指定すべき数字がわからない場合は、Webページのソースコードを表示して<table>タグや<ol>タグ、<ul>タグを検索しましょう。

Webページの表やリストを自動抽出。IMPORTHTML関数でサイトの更新や資料への引用がラクになる

Google Chrome(Windows版)では、[Ctrl]+[U]キーで開いているページのソースコードを表示できます。検索ボックスは[Ctrl]+[F]キーで表示しましょう。

関連リンク

関連記事

翻訳を関数で! GOOGLETRANSLATE関数を使って日本語のテキストをまとめて英語にする方法

Googleドライブで表計算ができる「Googleスプレッドシート」にはExcelにはない独自の関数があり、「GOOGLETRANSLATE関数」もその1つ。指定したセルにある日本語のテキストを英語に翻訳し、別のセルに一気に表示できます。使い方を見ていきましょう。