こんにちは!もり(@moripro3)です!
GoogleスプレッドシートのIMPORTFEED関数の使い方をシリーズでお届けしています。
前回の記事では、関数の基本的な使い方を紹介しました。スプレッドシートに「フィード」と「アイテム」のデータを取得しましたね。
タカハシさん主宰のノンプロ研では、学習のアウトプットとしてブログを書いているメンバーが多数います。(私もそのひとり!)
そこで今回は、IMPORTFEED関数を活用して、コミュニティメンバーのブログ更新状況をスプレッドシートに一覧化してみます。
前回のおさらい:IMPORTFEED関数でアイテムを取得
IMPORTFEED関数とは、XML形式のフィードを、スプレッドシートにインポートする関数です。
引数が4つあります。
引数 | 省略の可否 | 説明 |
---|---|---|
フィードURL | 必須 | フィードURLを指定する |
クエリ | 省略可 | 取得するデータの内容を指定する |
見出し | 省略可 | 先頭行に列見出しを含めるかを指定する |
アイテム数(※) | 省略可 | 直近のアイテムから順に、取得する数を指定する |
※アイテムとは「記事」のことです。
IMPORTFEED関数でスプレッドシートに一覧化する
スプレッドシートにメンバーの一覧を作成します。ここでは、下記の列を作成します。
- 手入力する項目
- A列:メンバー名
- B列:ブログのフィードURL
- IMPORTFEED関数で取得する項目
- C列:ブログタイトル
- D列:最新記事のタイトル
- E列:最新記事のURL
- F列:最終更新日(最新記事の投稿時刻)
イメージがこちらです。ここまで準備したら、C列~F列に関数を入れて、Webデータを取得していきましょう!
引数の共通設定
IMPORTFEED関数の4つの引数のうち、第3引数と第4引数は全員共通にします。
- フィードURL
- クエリ
- 列見出しの有無
- 取得するアイテム数
・第3引数[列見出しの有無]
→ false を指定します。スプレッドシート上に見出しを作成しているので、IMPORTFEED関数で取り込むときは見出し不要です。
・第4引数[アイテムの取得数]
→ 1 を指定します。最新の1件のみを取得するためです。
ブログのタイトルを取得する
C列に「ブログタイトル」を取得します。クエリは feed title です。
C3セルに入力する数式
=IMPORTFEED($B3,"feed title",false,1)
先頭行(ここでは3行目)に関数を入力したら、最終行までコピーしましょう。
最新記事のタイトルを取得する
D列に「最新記事のタイトル」を取得します。クエリは items title です。
D3セルに入力する数式
=IMPORTFEED($B3,"items title",false,1)
※最新記事が取得できない場合の対処法は前回の記事をご覧ください。
最新記事のURLを取得する
E列に「最新記事のURL」を取得します。クエリは items url です。
E3セルに入力する数式
=IMPORTFEED($B3,"items url",false,1)
IMPORTFEED関数で取得したURLには、自動でリンクが作成されます。その記事を読みたい場合、すぐにアクセスできるので便利です!
最終更新日(投稿時間)を取得する
F列に「最終更新日」を取得します。クエリは items created です。
F3セルに入力する数式
=IMPORTFEED($B3,"items created",false,1)
これで、メンバーのブログ更新状況の一覧ができました!
一度関数を入力すれば、ブログが更新されるたびに、スプレッドシートにも自動で反映されます。
最終更新日の日付形式を整える
最後に、F列の「最終更新日」の表示形式を整えます。例えば3行目の「Tue, 22 Jan 2019 02:45:28 +0000」は「2019/1/22」と表示させたいですよね。
さらに、タイムゾーンが日本時間でないWebサイト(末尾が+0000)の場合、Date Createdが9時間遅れているので、時刻を判定して日付も調整します。
スプレッドシートの関数を組み合わせて、日付を整形していきます。やりたいことはこの2つです。
- 9時間のズレを補正する
- YYYY/MM/DD形式の表示にする
方針は、「Date Createdから年・月・日の3つを取得し、DATE関数で日付形式にする」です。
DATE関数についてはこちらをご参照ください。
年月日・時刻を取得する
スプレッドシートのmid関数で下記の4つを取得します。
- 年(year)
- 月(month)
- 日(day)
- 時刻(hour)
取得結果がこちらです。
月の変換と日時補正
次に、月の変換と日時補正をします。
①「月」の英語表記を数字に変換する
②9時間遅れのズレを補正する
まずは①の「月」変換です。1月、2月、3月といった「月」の英語表記を数字に変換します。
別シートに対応表を作成します。このシート名は「カレンダー」としておきます。
VLOOKUP関数で、英語表記を数字に変換します。関数の使い方はこちらをご覧ください。
次に②の日時補正です。
IMPORTFEED関数の取得結果が「Tue, 22 Jan 2019 21:00:00(1月22日 21時)」の場合、実際の投稿日時は、「Wed, 23 Jan 2019 06:00:00(1月23日 6時)」です。
IF関数を使用して、日付を9時間補正します。
・時刻+9時間が24未満の場合 → 補正前の日付
・そうでない場合 → 補正前の日付+1(翌日)
①・②の関数を、K列・L列に入力します。
結果がこちらです。
YYYY/MM/DD形式に変換する
ここまでで、年・月・日の3つが揃いました。DATE関数を使用して日付形式にします。
これで一覧の完成です!作業・整形用に使用した列(G列〜L列)はグループ化してたたみましょう。
まとめ
今回の記事では、GoogleスプレッドシートのIMPORTFEED関数を使用して、ブログ更新状況の一覧を作成しました。
- コミュニティメンバーのブログ更新状況をスプレッドシートにまとめる
- 会社の業務に必要なWebサイトの更新状況をスプレッドシートに一覧化して、部署で共有する
など、活用方法はたくさんありますね。
IMPORTFEED関数の第2引数[クエリ]に指定できる全一覧は前回記事で紹介していますので、クエリの指定をアレンジして、ぜひオリジナルの一覧を作ってみてください!
連載目次:IMPORTFEED関数でブログ情報を取得する
GoogleスプレッドシートのIMPORTFEED関数を使って、ブログ更新情報の一覧を作る方法を紹介しています。