コピペするより速い・ラク・正確
ビジネスで使えるWebアプリとしてすっかり定着した「Googleスプレッドシート」。その使い勝手はExcelとよく似ており、多くのExcel関数は、Googleスプレットシートでもそのまま使えます。
しかし、片方でしか使えない関数も存在し、ここで解説する「IMPORTHTML」(インポート・エイチティーエムエル)関数もその1つ。IMPORTHTML関数は、Webページにある表やリスト(箇条書き)の内容を抽出し、それを編集してページを更新したり、ほかの資料に引用したりする用途で役立ちます。
例えば、自社のWebページに以下のような表があり、この内容(文字列)だけをデータとして抽出したいとしましょう。
普通にやると、マウスでドラッグして表の内容を選択してコピーし、ほかのファイルに貼り付けることになります。しかし、大きな表は選択するのが面倒ですし、そのまま貼り付けると余計な書式まで残ってしまいます。
IMPORTHTML関数を使えば、1つの数式で1つの表の内容を丸ごと抽出できます。数式をコピーして引数を編集すれば、ほかの表の抽出もカンタンです。
Webページにあるコンテンツを頻繁に利用する人は、次の手順を参考にIMPORTHTML関数の使い方をマスターするといいでしょう。なお、残念ながらExcelでは使えないのでご注意ください。
IMPORTHTML関数でWebページの表やリストを抽出する
最初にIMPORTHTML関数の構文を確認しましょう。
IMPORTHTML
(URL, クエリ, 指数)
1つめの引数[URL]では、抽出したい表やリストがあるWebページのURLを「"」(ダブルクォーテーション)で囲んで指定します。「https://」から入力してください。
2つめの引数[クエリ]では、以下のいずれかを「"」で囲んで指定します。
- table......表(<table>タグ)の内容を抽出する
- list......リスト(<ol>タグや<ul>タグ)の内容を抽出する
3つめの引数[指数]では、Webページの何番目に登場する表やリストを抽出するのかを指定します。例えば、上から2番目にある<table>タグの内容を抽出したい場合、「2」と入力します。ページの見た目ではなく、HTMLのソースコードにおける順序であることに注意してください。
ここでは本サイトの記事「Excel関数一覧 機能別」にある表やリストを、サンプルとして抽出してみます。
1IMPORTHTML関数を入力する
セルA1に「=IMPORTHTML」と入力します。途中で表示される候補をクリックしてもOKです。
21つめの引数を指定する
「(」を入力し、1つめの引数[URL]を指定します。最後に「,」を入力しましょう。
32つめの引数を指定する
2つめの引数[クエリ]を指定します。ここでは表を抽出するため「"table"」と入力しました。最後に「,」を入力します。
43つめの引数を指定する
Webページの最初の表を抽出するため、3つめの引数[指数]には「1」を指定しました。最後に「)」を入力して[Enter]キーを押します。
51番目の表の内容が抽出された
Webページにある1番目の表の内容が抽出されました。セルA1以降の行と列にもデータが入力されるため、Excel関数でいう「配列」を返す関数といえます。
6ほかの表の内容を抽出する
続けて、ほかの表の内容も抽出してみましょう。セルA1の数式をコピーして......
別のセル(ここではセルC1)に貼り付けます。そして、3つめの引数を「2」に変更します。
72番目の表の内容が抽出された
2番目の表の内容が抽出されました。表を1つ1つ選択してコピペする必要がなく、圧倒的にラクです。
8リストの内容を抽出する
今度は表ではなく、リストを対象にしてみましょう。ここでは先ほどの数式を、新しいシートのセルA1にコピーしました。そして、2つめの引数を「"list"」、3つめの引数を「6」に変更します。
リストの内容が意図通りに抽出されました。
9抽出したテキストを編集する
IMPORTHTML関数で抽出したテキストを編集したいとき、そのまま編集するとエラーになります。これはIMPORTHTML関数の結果が返されるセル範囲に、余計なデータが入力されたと認識されるためです。
テキストを編集するには、IMPORTHTML関数の結果があるセル範囲をコピーして[値のみ貼り付け]を実行しましょう。関数の結果ではなく、通常のデータとして扱えるようになります。
HINT表やリストが何番目かを調べるには?
関連リンク
関連記事
翻訳を関数で! GOOGLETRANSLATE関数を使って日本語のテキストをまとめて英語にする方法
Googleドライブで表計算ができる「Googleスプレッドシート」にはExcelにはない独自の関数があり、「GOOGLETRANSLATE関数」もその1つ。指定したセルにある日本語のテキストを英語に翻訳し、別のセルに一気に表示できます。使い方を見ていきましょう。