「債券価格が”100.16″って書いてあるけど、これ100.16ドルじゃないの?」
米国債券や不動産の世界では、価格を分数で表す独特の慣習があります。”100.16″は実は「100と16/32」、つまり100.5ドルという意味なんです。この表記をそのまま計算に使うと、金額がズレてしまいますよね。
ExcelのDOLLARDE関数を使えば、分数表記の価格をふつうの小数にサッと変換できます。この記事では、基本の書き方からDOLLARFR関数との使い分け、債券ポートフォリオの実務例、エラー対処法まで一気に解説していきます。
ExcelのDOLLARDE関数とは?
DOLLARDE関数は、分数表記のドル価格を小数表記に変換する関数です。読み方は「ダラー デシマル」で、DOLLAR(ドル)+ DE(Decimal=小数)が語源です。
たとえば、米国の債券市場では価格を32分の1単位で表します。「100.16」と書かれていたら「100 + 16/32 = 100.5」ドルという意味です。DOLLARDE関数はこの変換を自動でやってくれますよ。
対応バージョンはExcel 2007以降およびMicrosoft 365です。Excel 2003以前では分析ツールアドインの追加が必要になります。Googleスプレッドシートでも同名のDOLLARDE関数が使えるので、移行作業でもそのまま流用できます。
なぜ分数表記が使われているのか
「最初から小数で書けばいいじゃん」と思いますよね。これは歴史的な事情で、米国の証券市場では長らくスペイン由来の8分の1単位(pieces of eight)で価格を表してきた名残なんです。
特に米国債(Treasury Bond)は今でも32分の1単位、さらに細かい銘柄では64分の1や128分の1単位で取引されています。ブルームバーグやロイターの端末で表示される価格も、この分数表記が標準です。海外金融機関とのやり取りで価格データを受け取るとき、DOLLARDE関数が活躍します。
DOLLARDE関数の書き方と引数
基本構文
=DOLLARDE(分数表現ドル価格, 分母)
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 分数表現ドル価格 | 必須 | 整数部と分子を小数点で区切った数値 |
| 分母 | 必須 | 分数の分母にあたる整数(1以上) |
引数はたった2つなので、シンプルですね。
「分数表現ドル価格」の読み方
この引数の仕組みがDOLLARDE関数の一番大事なポイントです。
たとえば「1.05」を指定した場合、整数部が「1」、小数点以下の「05」が分子になります。分母に「16」を指定すると、1 + 5/16 = 1.3125 という計算です。
つまり「小数点の右側は小数ではなく、分子として扱われる」ということです。ここを間違えると計算結果がまったく変わってしまうので、注意してくださいね。
分子の桁数と分母の関係
地味につまずくのが「分子の桁数」の扱いです。分母が2桁の場合(16や32など)、分子も2桁で書く必要があります。
たとえば32分の1単位で「100と4/32」を表現したいとき、100.4 と書くと「100 + 4/32」ではなく 「100 + 40/32」 と解釈されてしまいます。正しくは 100.04 のように2桁で書いてください。
| 入力 | 分母 | 解釈される分子 | 結果 |
|---|---|---|---|
| 100.4 | 32 | 40 | 101.25(100 + 40/32) |
| 100.04 | 32 | 4 | 100.125(100 + 4/32) |
桁合わせを意識しないと、債券の価格評価で大きなズレが生じます。データ取り込み時に小数点以下の桁数をそろえておくのが安全です。
DOLLARDE関数の基本的な使い方
実際にDOLLARDE関数を使ってみましょう。
値を直接入力するパターン
米国債券の価格「100.16」を32分の1単位で小数に変換する場合です。
=DOLLARDE(100.16, 32)
結果は 100.5 になります。100 + 16/32 = 100.5 ですね。
セル参照を使うパターン
セルA1に分数表現の価格、セルB1に分母が入っている場合はこう書きます。
=DOLLARDE(A1, B1)
複数の債券価格を一括変換したいときは、この書き方のほうが便利ですよ。分母が常に32など決まっているなら、=DOLLARDE(A1, 32) のように直接書いてしまってもOKです。
計算の仕組みを確認してみよう
DOLLARDE関数の内部計算はとてもシンプルです。
| 入力 | 分母 | 計算式 | 結果 |
|---|---|---|---|
| 1.05 | 16 | 1 + 5/16 | 1.3125 |
| 100.16 | 32 | 100 + 16/32 | 100.5 |
| 50.04 | 8 | 50 + 4/8 | 50.5 |
| 1.1 | 4 | 1 + 1/4 | 1.25 |
| 99.31 | 32 | 99 + 31/32 | 99.96875 |
整数部はそのまま、小数点以下の数字を分母で割って足す。これだけです。
マイナスの価格を渡したとき
オプションのデルタ計算など、たまにマイナス値を扱う場面もあります。
=DOLLARDE(-100.16, 32)
結果は -100.5 で、整数部・分子ともに符号が反転して計算されます。スプレッド計算でマイナス値が出ても、そのまま渡せば期待どおりの結果になりますよ。
DOLLARDE関数の実践的な活用例
債券ポートフォリオの時価評価
複数の米国債券を保有している場合、分数表記の価格を小数に変換してから合計金額を計算できます。
| 銘柄 | 分数表記価格 | 分母 | 数式 | 小数価格 | 額面 | 時価(額面×小数価格÷100) |
|---|---|---|---|---|---|---|
| 米国債A | 99.24 | 32 | =DOLLARDE(B2,C2) | 99.75 | 1,000,000 | 997,500 |
| 米国債B | 101.16 | 32 | =DOLLARDE(B3,C3) | 101.5 | 500,000 | 507,500 |
| 米国債C | 98.08 | 32 | =DOLLARDE(B4,C4) | 98.25 | 2,000,000 | 1,965,000 |
変換後の小数価格なら、SUM関数でそのまま合計できます。額面と組み合わせれば、ポートフォリオ全体の時価評価額もすぐに出せます。
不動産価格の換算
米国の不動産市場では、8分の1単位で価格を表す場合があります。
=DOLLARDE(250.06, 8)
結果は 250.75 です。250 + 6/8 = 250.75 ですね。分母を変えるだけで、さまざまな分数単位に対応できますよ。
コモディティ価格の小数変換
コーンや小麦などの先物価格は、4分の1単位(クォーター単位)で表示されるのが慣例です。
=DOLLARDE(450.02, 4)
結果は 450.5 で、450 + 2/4 = 450.5 ドル/ブッシェルという計算になります。シカゴ商品取引所(CBOT)のデータを取り込むときに重宝します。
為替損益と組み合わせる
円換算する場合は、為替レートを掛けるだけです。
=DOLLARDE(B2, 32) * 額面 / 100 * 為替レート
複数銘柄をまとめて評価するときは、SUMPRODUCT関数で 額面 × 小数価格 × 為替レート を一気に集計できますよ。
DOLLARFR関数との組み合わせ
DOLLARDE関数で変換した値を計算し、結果をDOLLARFR関数で分数表記に戻すこともできます。
=DOLLARFR(DOLLARDE(100.16, 32) * 1.02, 32)
この数式は、債券価格100.16(32分の1単位)を小数に変換して2%上乗せし、再び32分の1単位の分数表記に戻しています。レポート上では分数表記のほうが読みやすいので、計算は小数で・表示は分数で、という使い分けが定番です。
DOLLARDE関数とDOLLARFR関数の使い分け
DOLLARDE関数とよく似た関数にDOLLARFR関数があります。この2つはちょうど逆の変換を行うペア関数です。実務ではセットで使うことがほとんどなので、両方の役割をしっかり押さえておきましょう。
比較表で違いを整理
| 項目 | DOLLARDE | DOLLARFR |
|---|---|---|
| 変換方向 | 分数表記 → 小数 | 小数 → 分数表記 |
| 読み方 | ダラー デシマル | ダラー フラクション |
| 入力例 | =DOLLARDE(100.16, 32) | =DOLLARFR(100.5, 32) |
| 結果例 | 100.5 | 100.16 |
| 使いどころ | 分数価格を計算に使うとき | 計算結果を分数表記に戻すとき |
実務での使い分けパターン
債券の評価業務を例にすると、典型的な流れはこうなります。
- 取引データを受領(分数表記) → DOLLARDE関数で小数に変換
- 利回り計算・損益計算を実施(小数のまま処理)
- レポート出力時に分数表記に戻したい → DOLLARFR関数で逆変換
「計算するならDOLLARDE、表示するならDOLLARFR」と覚えておくと使い分けやすいですよ。
同じ値を変換した結果を比較
=DOLLARDE(100.16, 32) → 100.5
=DOLLARFR(100.5, 32) → 100.16
=DOLLARDE(100.5, 32) → 101.5625(誤用例)
3行目のように、すでに小数になっている価格をDOLLARDEに渡すと「100 + 50/32」と解釈されておかしな結果になります。入力データが分数表記か小数かを必ず確認してから関数を選びましょう。
なお、数値の表示形式を変えるDOLLAR関数は通貨記号を付ける関数で、まったく別の機能です。名前が似ているので混同しないようにしましょう。
DOLLARDE関数のよくあるエラーと対処法
#NUM! エラー
分母に0以下の値を指定すると #NUM! エラーが出ます。
=DOLLARDE(1.05, 0) → #NUM! エラー
=DOLLARDE(1.05, -1) → #NUM! エラー
分母は必ず1以上の正の整数を指定してください。CSVから取り込んだデータで分母列が空欄になっていると0扱いになってエラーが出るので、IFERROR関数でラップしておくと安全です。
=IFERROR(DOLLARDE(A1, B1), "分母エラー")
#VALUE! エラー
引数に数値以外(文字列など)を指定すると #VALUE! エラーになります。
=DOLLARDE("abc", 16) → #VALUE! エラー
=DOLLARDE("100.16", 32) → 環境により #VALUE! になることあり
セル参照を使っている場合は、参照先が数値になっているか確認してみてください。CSVや外部システムから取り込んだ価格データは見た目が数値でも文字列扱いになっていることがあるので、VALUE関数で明示的に数値化してから渡すと確実です。
分母に小数を指定した場合
分母に小数を指定すると、小数部分が切り捨てられます。
=DOLLARDE(1.05, 16.9) → DOLLARDE(1.05, 16) と同じ結果
エラーにはなりませんが、意図しない計算になることがあります。分母には整数を指定するようにしましょう。心配な場合はINT関数で囲んで明示的に整数化するのもアリです。
結果がおかしい場合のチェックポイント
「変換結果が思っていた値と違う…」というときは、以下を順番に確認してみてください。
- 小数点以下の桁数が分母に合っているか(32なら2桁、128なら3桁)
- 分母が正しい単位か(米国債なら32、不動産なら8、農産物先物なら4が多い)
- 入力値がすでに小数表記になっていないか(DOLLARDEは分数表記専用)
- CSVデータの場合、価格が文字列として読み込まれていないか
特に1番目の桁ズレは結果が見た目には正しく見えてしまうので、検算が必須です。サンプルを1〜2件、電卓で確認するのが確実ですよ。
まとめ
DOLLARDE関数は、分数表記のドル価格を小数に変換する関数です。
- 構文は
=DOLLARDE(分数表現ドル価格, 分母)の2つだけ - 小数点の右側は「小数」ではなく「分子」として扱われる
- 分母の桁数に合わせて分子の桁数(小数点以下)をそろえる必要がある
- 米国債券(32分の1)・不動産(8分の1)・農産物先物(4分の1)の価格換算に便利
- 逆変換にはDOLLARFR関数を使い、計算は小数・表示は分数で運用する
- 分母には1以上の整数を指定すること(0以下は #NUM! エラー)
- 文字列が混在するデータはIFERROR関数でガードすると安全
日本国内の実務で使う場面は限られますが、米国市場のデータを扱うときには欠かせない関数です。セットでDOLLARFR関数も覚えておくと、分数表記と小数の変換が自在にできるようになりますよ。
