ダイヤモンドザイのニュース一覧のFEEDを取り込んで優待変更区分を判定して一覧を作ってみる

はじめに

 私は、GoogleSpreadSheetの関数をガチャガチャ書いて遊ぶのが好きなんですが、本日は、ダイヤモンドザイが提供している株主優待ニュースのFEEDを取り込んで、タイトルからそのニュースが新設なのか廃止なのか変更なのかを表示する列を追加するということをやってみたいと思います。完成形のイメージは下記のようなものになることです。


新設された優待ならA列に「新設」と書きます。廃止の知らせの場合には、A列に「廃止」と書かれます。

利用する関数

まず、最初にフィードを取得する関数です。Google SpreadSheetには、IMPORTFEEDという便利な関数があり、これを使うと、FEED情報を取り込むことができます。FEEDとは何かというと、記事の更新一覧みたいな情報を取得することができます。

=IMPORTFEED("https://diamond.jp/zai/list/feed/rsszol?cc=kabunushiyutai-news")

次に、タイトルに書かれている「- 株主優待【新設・変更・廃止】最新ニュース[2022年]」の部分を取り除くために、REGEXREPLACEという関数を使います。この関数で、「- 」以降の文字列を取り除いてしまいます。

=ARRAYFORMULA(REGEXREPLACE(C2:C,"- .*",""))

次にその中にある文字列を探すためにFIND関数という関数を利用します。見つからない場合にはエラーになるので、IFERROR関数を使って見つからなかった場合の処理も記載します。

長いのですが、下記のように書きます、IF分をネストさせています。イメージ的にいうと、新設という文字を探して見つかれば新設をセット、見つからなければ、廃止という文字を探してセット、見つからなければ改悪という文字を探し、さらにそれば見つからなかったら、変更という文字を探し、それも見つからなかったらその他を返すという構造になっています。

=ARRAYFORMULA(IFERROR(IF(FIND("新設",B2:B)>0,"新設","----"),IFERROR(IF(FIND("廃止",B2:B)>0,"廃止","----"),IFERROR(IF(FIND("改悪",B2:B)>0,"改悪","----"),IFERROR(IF(FIND("変更",B2:B)>0,"変更","----"),"その他")))))

関数を利用するメリット

関数を利用するメリットとしては、このような情報提供元の情報に、一定の規則に基づいてちょっと情報を付与していきたいというようなことができるのでそういう風に使うと便利になるかと思います。

その他の応用方法について

例えば、こちらの情報から証券コードを取り出して、自分の手持ちの株があるかどうかという情報も付与しようと思えば付与できたりします。このように、いろいろな要望をGoogle SpreadSheetの関数を利用することによって実現でき足ります。

参考リンク

0 件のコメント: