バフェット・コードのブログ

企業分析に役立つ記事を配信中

API v2のサポート終了に伴う、BCODE 関数の仕様変更と対応のお願い

このページについて

API をご利用の皆さんには先日ご連絡をさせていただきましたが、バフェットコードのAPI v2 は 2022年2月28日 を持ってサポートを終了します。

これまでエクセルアドイン・スプレッドシートアドオンでは、API v2を利用してきましたが、この度API v3 に対応した新バージョンをリリースいたしました。また、それに伴い、エクセルアドイン・スプレッドシートアドオンで動作する "BCODE 関数" の利用方法に変更があります。

このページでは、

  • 新バージョンの利用方法
  • BCODE関数の仕様変更と対応方法

について説明します。現行のBCODE関数は、API v2と同様 2022年2月28日 以後データが取得できなくなります。お手持ちのシートについては、必要に応じてご自身で新しい形式で書き変えていただく必要があります。

なお、新バージョンへの以降に際して各自の対応が必要となるのはBCODE関数のみで、CSV出力機能については、新バージョンをインストールすれば今まで通りご利用いただけます。

 

新バージョンの利用方法

エクセルアドインをご利用の方

下記の手順に従って、最新バージョンのエクセルアドインをインストールしてください。このバージョンでは、2022年2月28日までは新しい BCODE 関数と既存のBCODE関数を並行して動かすことができます。

なによりもまず、このバージョンを自身のPCにインストールしてください。

blog.buffett-code.com

スプレッドシートアドオンをご利用の方

バフェット・コードの開発チームが常に最新バージョンをリリースしているため、特別な対応は不要です。スプレッドシートアドオンでは、2022年2月28日までは新しい BCODE 関数と並行して既存のBCODE関数を動かすことができます。

BCODE関数の仕様変更と対応方法

エクセルアドイン・スプレッドシートアドオンともに変更手順は共通です。今後は新しい形式でBCODE関数をご利用いただくとともに、お手持ちのシートに古い形式で書かれたBCODE関数は、必要に応じて2022年2月28日までに修正をお願いします。

この記事では、「お手持ちのシートに記載されたBCODE関数の書き直し方法」について解説します。新しいBCODE関数のより詳細な使い方については、下記を参照してください。

docs.buffett-code.com

仕様変更の概要

今までのBCODE関数は、

BCODE(銘柄コード, 年度, 四半期, 科目名, [is_raw_value], [is_with_units])

という形式を取っていました。今後は

BCODE(銘柄コード, 年度&四半期, 科目名, [is_raw_value], [is_with_units])

という形式になります。

例えば、銘柄コード2801の 2020年度第4四半期の売上(net_sales)を取得する場合、今までは

BCODE("2801", "2020", "4", "net_sales")

としていたところを、今後は

BCODE("2801", "2020Q4", "net_sales")

とすることになります(関数内の引数が4つから3つに減っています)。

仕様変更の理由

API v2までは時価総額やPERなど、毎日変わる数値については最新の営業日の数値しか取得できませんでした。

しかしAPI v3では日付指定でそれらの数値を取得できるようになりました。そのためのバージョンアップになります。

 

「時価総額("market_capital")やEPSの予想値 ("eps_forecast") 」といった、営業日毎のデータを時系列で取得することができます(API のv3/dailyを利用)。以前から取得要望が多いデータでしたが、旧仕様では実現が困難だったため、仕様変更に踏み切りました。

新しい形式の BCODE 関数では

BCODE("2801", "2021-01-06", "market_capital")

BCODE("2801", "2021-01-07", "eps_forecast")

とすることで、日付指定でデータ取得をする事が可能になります。

具体的な対応方法

繰り返しになりますが、お手持ちのシートについては、必要に応じてご自身で新しいBCODE関数の形式で書き変えていただく必要があります。対応期限はAPI v2のサポート終了日、2022年2月28日です。

ここでは、既存のBCODE関数を新しい形式に書き換える、具体的な方法を記載します。

四半期ごとの財務数値の取得

年度と四半期をそれぞれ指定していた箇所を、 "Q" 文字を使った形式に変更してください。

  • これまで: BCODE("2801", "2020", "4", "net_sales")
  • これから: BCODE("2801", "2020Q4", "net_sales")

is_raw_value(値を丸めるかどうか)、is_with_units(単位を表示するか否か)に関しては、これまで通り項目名(propertiy_name)の右に順に渡してください。

最新の指標の取得

今までのBCODE関数では、「指標を取得する際には、事業年度と四半期にそれぞれ空文字( "" )を指定する」としてきましたが、今後は、その指標が、四半期の決算ごとの値であるか、営業日ごとに変わる値なのかによって、指定の仕方を変える必要があります。

営業日ごとに変わる指標の場合、例えば直近営業日の時価総額の取得は

  • これまで: BCODE("2801", "", "", "market_capital")
  • これから: BCODE("2801", "latest", "market_capital")

のように、期間指定 を "latest" に書き換えます。"latest" は "直近営業日" を意味します。

一方、四半期ごとに変わる指標の場合、例えばEPS(実績)の直近四半期の値を取得するには

  • これまで: BCODE("2801", "", "", "eps_actual")
  • これから: BCODE("2801", "LYLQ", "eps_actual")

と期間指定を "LYLQ" に書き換えます。 "LYLQ" は "直近四半期" を意味します。

is_raw_value(値を丸めるかどうか)、is_with_units(単位を表示するか否か)に関しては、これまで通り項目名(propertiy_name)の右に順に渡してください。

各指標について、"LYLQ"、"latast" のどちらを指定すれば良いのかは下記を参考にしてください。

"latest" を指定する
  • stockprice
  • trading_volume
  • market_capital
  • enterprise_value
  • eps_forecast
  • per_forecast
  • pbr
  • per_pbr
  • ebitda_forecast
  • ev_ebitda_forecast
  • psr_forecast
  • pcfr_forecast
  • dividend_yield_forecast
  • dividend_yield_actual
  • debt_market_capital_ratio
  • cash_market_capital_ratio
  • listing_years
  • net_sales_growth_rate_forecast
  • operating_income_growth_rate_forecast
  • net_income_growth_rate_forecast
"LYLQ" を指定する指標
  • num_of_shares
  • eps_actual
  • bps
  • ebitda_actual
  • roe
  • real_roe
  • net_profit_margin
  • total_asset_turnover
  • financial_leverage
  • roa
  • roic
  • doe
  • gross_margin
  • operating_margin
  • net_sales_operating_cash_flow_ratio
  • sga_ratio
  • depreciation_gross_profit_ratio
  • r_and_d_ratio
  • interest_op_income_ratio
  • interest_coverage_ratio
  • net_sales_progress
  • operating_income_progress
  • net_income_progress
  • net_sales_per_employee
  • trade_receivables
  • accounts_receivable_turnover
  • inventory_turnover
  • trade_payables
  • trade_payable_turnover
  • working_capital
  • ccc
  • tangible_fixed_assets_turnover
  • debt
  • debt_assets_ratio
  • debt_monthly_sales_ratio
  • operating_cash_flow_debt_ratio
  • net_debt
  • adjusted_debt_ratio
  • de_ratio
  • current_ratio
  • net_debt_net_income_ratio
  • equity
  • equity_ratio
  • free_cash_flow
  • cash_assets_ratio
  • cash_monthly_sales_ratio
  • accrual
【エクセルのみ】"is_raw_value" のデフォルト値の変更対応

BCODE関数の第4引数 "is_raw_value" は、「数値をRAWデータで表示するかどうか」のオプションです。

以前より、エクセルアドイン並びにスプレッドシートアドオン関数リファレンス では

アドインは少数値を丸めたり、百万円単位の財務数値を調整したりと、数値を見やすいようにフォーマットします。TRUEにするとこれらのフォーマット処理が無効になります。(省略するとFALSE)

としていましたが、エクセルアドインはこれまでずっと「省略すると TRUE 」で作動しておりました。ドキュメントと齟齬があり、ご迷惑をおかけしました。

新しいBCODE関数では、ドキュメント通り「省略するとFALSE」の挙動になる修正を行っており、例えば売上( net_sales )は "is_raw_value" を未指定にすると、これまでの円単位から100万円単位での表示になります。v3移行後も、これまで通りフォーマットせず値を使いたい場合は "is_raw_value" に TRUE を指定してください。

スプレッドシートアドオンは、これまでもドキュメント通り "is_raw_value" のデフォルト値は FALSE でしたので、上記対応は不要です。

移行に伴うお問い合わせについて

お問い合わせフォームからお問い合わせください。