Googleスプレッドシートで日本株の株価を取得する


米国株の証券情報の取得にはGOOGLEFINANCE関数が利用できますが、日本株については残念ながら非対応のようです。
そこで株ドラゴンさんのサイトから日本株の株価を取得してみます。

Webサイト上のデータをインポートする

まずはIMPORTHTML関数で株ドラゴンさんのWebサイト上のデータをインポートします。
今回は(9433)KDDIの株価情報をインポートしてみます。

構文
IMPORTHTML(URL, クエリ, 指数)

KDDIの株価情報は https://www.kabudragon.com/s?t=KDDI&x=0&y=0 で確認できます。
上記ページ内の「KDDI 過去の株価」の "table" をインポートします。

Webページのソースを確認すると「KDDI 過去の株価」は6番目の "table" になっています。

# 1番目(72行目)
<table width="940" cellspacing="1" cellpadding="1" border="0">

# 2番目(73行目) ※tableタグは中央付近にある
<tr><td valign="top" align="left" width="640"><table cellspacing="1" cellpadding="1" width="640" border="0">

# 3番目(79行目)
<table cellspacing="0" cellpadding="0" border="0" class="rankingFrame">

# 4番目(82行目)
<table cellspacing="1" cellpadding="1" width="640" border="0">

# 5番目(159行目)
<table cellspacing="0" cellpadding="0" border="0" class="rankingFrame">

# 6番目(162行目) ※これが目的のデータ
<table cellspacing="1" cellpadding="1" width="640" border="0">

※インデントは省略しています。
※2022/1/9現在のソースになります。

上記を踏まえてIMPORTHTML関数の引数を整理すると以下の通りになります。

引数
第一引数 - URL "https://www.kabudragon.com/s?t=KDDI&x=0&y=0"
第二引数 - クエリ "table"
第三引数 - 指数 6

IMPORTHTML関数に引数を指定してスプレッドシートに入力します。
=IMPORTHTML("https://www.kabudragon.com/s?t=KDDI&x=0&y=0","table",6)

Webサイト上のデータをインポートできました。

インポートしたデータから必要な情報を拾う

INDEX関数を使用して、インポートしたデータから必要な情報を拾います。
直近日付の終値を拾ってみます。

構文
INDEX(参照, [行], [列])

参照先は上記でインポートしたデータになるため、作成したIMPORTHTML関数をそのまま使います。
直近日付の終値は、行番号が2、列番号が5のセル(以下の黄色セル)にあります。

上記を踏まえてINDEX関数の引数を整理すると以下の通りになります。

引数
第一引数 - 参照 IMPORTHTML("https://www.kabudragon.com/s?t=KDDI&x=0&y=0","table",6)
第二引数 - [行] 2
第三引数 - [列] 5

INDEX関数に引数を指定してスプレッドシートに入力します。
=INDEX(IMPORTHTML("https://www.kabudragon.com/s?t=KDDI&x=0&y=0","table",6),2,5)

直近日付の終値を拾えました。
INDEX関数の引数を変更すれば前日比や出来高の情報も取得可能です。

関連記事

以上、最後まで読んでいただき、ありがとうございました。