こんにちは!もり(@moripro3)です!
前回の記事では、GoogleスプレッドシートのIMPORTFEED関数を紹介するシリーズの第一歩として、フィードURLの確認方法を紹介しました。
今回は、GoogleスプレッドシートのIMPORTFEED関数を使用して、フィードを取得する方法を紹介していきます。
スプレッドシート内で完結するSUM関数やIF関数などに比べると、外部接続する(Webデータを取得する)関数はちょっと不思議な感じがするかもしれませんね。
ていねいに解説していきますのでご安心ください!
前回のおさらい:フィードとは
フィードとは、Webサイトの概要・更新情報などを配信するデータのことです。
当ブログの「フィードのURL」がこちらです→https://tonari-it.com/feed/
フィードの中身はこのようなXMLファイルでしたね。
IMPORTFEED関数とは
IMPORTFEED関数とは、XML形式のフィードを、スプレッドシートにインポートする関数です。
関数の構文がこちらです。
引数が4つあります。
引数 | 省略の可否 | 説明 |
---|---|---|
フィードURL | 必須 | フィードURLを指定する |
クエリ | 省略可 | 取得するデータの内容を指定する |
見出し | 省略可 | 先頭行に列見出しを含めるかを指定する |
アイテム数 | 省略可 | 直近のアイテムから順に、取得するアイテムの数を指定する |
それでは、実際に使いながら慣れていきましょう!
IMPORTFEED関数でフィードを取得する
新規のスプレッドシートを開きます。
フィードを取得する[クエリ] は feed です。
A1セルに =IMPORTFEED() と入力し、引数を2つ指定します。
- フィードURL(“https://tonari-it.com/feed“)
- クエリ(“feed“)
引数をダブルクォートで囲むのをお忘れなく!
=IMPORTFEED("https://tonari-it.com/feed","feed")
タイトルやURLなどのフィード情報を含む1行が返されます。
第1引数のフィードURLは、「セルの参照」も可能です。
A1セル(黄色)に、あらかじめフィードURLを入力しておきます。
A2セルにIMPORTFEED関数を入力し、フィードURLはA1セルを参照します。
見出しの有無を指定する
第3引数で[見出し]の有無を指定できます。(指定しない場合、無しの扱いになります)
- true = 先頭行に見出しが含まれる
- false = 先頭行に見出しが含まれない
第3引数にtrueを指定して、列の見出しを付けた結果がこちらです。
=IMPORTFEED("https://tonari-it.com/feed","feed",true)
関数を入力するときの注意点
IMPORTFEED関数の結果が返されるセルに値が入力されている場合、取得結果が展開されずエラーとなります。
ここでは、A2セルに”あいうえお”と文字を入力しています。A1セルに関数を入力しても、結果が展開されずエラーとなります。
フィードのタイプを指定して取得する
第2引数[クエリ]に”feed <type>” を指定すると、フィードの特定の属性が返されます。
typeには下記の4種類があります。
引数の指定 | 取得できる内容 |
---|---|
“feed title” | タイトル |
“feed description” | 説明 |
“feed author” | 作成者 |
“feed url” | WebサイトのURL |
いずれも、ダブルクォートで囲むのを忘れずに!
“feed title”を指定して、フィードの「タイトルのみ」を取得した結果です。
IMPORTFEED関数でアイテムを取得する
つぎに、アイテムを取得してみましょう。
アイテムとは「記事」のことです。今ご覧いただいているこのページが、IMPORTFEED関数が指す「アイテム」です。
件数を指定してアイテムを取得する
アイテム数を指定しない場合、フィードに現在公開されているすべてのアイテムが取得されます。スプレッドシート上で見にくくなるので、ここではアイテム数を指定します。
第2引数の[クエリ]に items を指定します。
=IMPORTFEED("https://tonari-it.com/feed","items",true,5)
列見出しあり・最新の5件を取得しています。
※タイムゾーンが日本時間でないWebサイトの場合、Date Createdが9時間遅れています。(経度0度のグリニッジ天文台と比べて日本は9時間進んでる、というアレです)
たとえば、キャプチャ2行目のアイテム「Thu, 17 Jan 2019 02:45:24」は、実際の投稿時刻は「Thu, 17 Jan 2019 11:45:24」です。
アイテムのタイプを指定して取得する
第2引数の[クエリ]に”items <type>”を指定すると、アイテムの特定の属性が返されます。
typeには、下記の4種類を指定できます。
- title(アイテムのタイトル)
- summary(ハイパーリンクと画像を除くアイテムのコンテンツ)
- url(アイテムのURL)
- created(アイテムの投稿日)のいずれかを指定します。
“items title”を指定した結果です。列見出しあり・最新の5件を取得しています。
最新のアイテムが取得できない場合の対処法
フィードを発信しているWebサイトの設定によっては、IMPORTFEED関数でリクエストされた結果をキャッシュとして残しているため、古い結果が配信される場合があります。
対処法を2つ紹介します。
方法1.フィードURLにトレイリングスラッシュ(末尾のスラッシュ)を付ける
https://tonari-it.com/feed/
方法2.フィードURLにパラメータを付与する
https://tonari-it.com/feed?d=1
毎日最新の情報を取得する場合
第1引数に指定するフィードURLを、任意のセルに用意しておきましょう。TODAY関数と結合して、フィードのパラメータに日付を含めます。
TODAY関数と結合したフィードURLを引数に指定します。TODAY関数の結果が毎日変わるので、パラメータが再作成され、毎日最新の情報を取得できるという仕組みです。
これらの方法が不要なWebサイトもありますので、もし、最新アイテムが取得できないときは、「こんな方法もあるんだな」と頭にいれておく程度で大丈夫です。
まとめ
今回の記事では、GoogleスプレッドシートのIMPORTFEED関数の使い方を紹介しました。
- フィード・アイテムの情報を取得する
- 列見出しの有無を指定する
- 取得アイテム数を指定する
- 最新アイテムが取得できない場合の対処法
次回は「IMPORTFEED関数の実践編」をお届けします。コミュニティメンバーのブログの最新記事を取得して、一覧にまとめる方法をお伝えします。
連載目次:IMPORTFEED関数でブログ情報を取得する
GoogleスプレッドシートのIMPORTFEED関数を使って、ブログ更新情報の一覧を作る方法を紹介しています。