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

米国株の証券情報の取得にはGOOGLEFINANCE関数が利用できますが、日本株については残念ながら非対応のようです。
そこで[株ドラゴン](https://www.kabudragon.com/)さんのサイトから日本株の株価を取得してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2377902/aa35fad2-ee5c-7a68-9918-e2d7c2abde0c.png)

# Webサイト上のデータをインポートする
まずはIMPORTHTML関数で[株ドラゴン](https://www.kabudragon.com/)さんのWebサイト上のデータをインポートします。
今回は(9433)KDDIの株価情報をインポートしてみます。

https://support.google.com/docs/answer/3093339?hl=ja
> 構文
> IMPORTHTML(URL, クエリ, 指数)

KDDIの株価情報は https://www.kabudragon.com/s?t=KDDI&x=0&y=0 で確認できます。
上記ページ内の「KDDI 過去の株価」の "table" をインポートします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2377902/70760829-5c3e-5296-3292-d838c64bfed0.png)

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

```html
# 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関数に引数を指定してスプレッドシートに入力します。
<code>=IMPORTHTML("https://www.kabudragon.com/s?t=KDDI&x=0&y=0","table",6)</code>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2377902/9d03165e-5754-f90c-6d87-44566a3d6cd5.png)
Webサイト上のデータをインポートできました。

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

https://support.google.com/docs/answer/3098242?hl=ja
> 構文
> INDEX(参照, [行], [列])

参照先は上記でインポートしたデータになるため、作成したIMPORTHTML関数をそのまま使います。
直近日付の終値は、行番号が2、列番号が5のセル（以下の黄色セル）にあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2377902/e68cc6a9-f7b5-3db3-2840-8f56ff23a87f.png)

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

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

INDEX関数に引数を指定してスプレッドシートに入力します。
<code>=INDEX(IMPORTHTML("https://www.kabudragon.com/s?t=KDDI&x=0&y=0","table",6),2,5)</code>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2377902/aec70ab4-d96d-d323-6c18-c0790b338eaf.png)

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

# 関連記事
* [Googleスプレッドシートで米国株の株価を取得する](https://qiita.com/WhimsicalTheo/items/6811bd81ab4e814c8d1f)
* [Googleスプレッドシートで米国株の配当利回りを取得する](https://qiita.com/WhimsicalTheo/items/401790003a20253eed08)

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