ブログ/開発者向け

Google Sheetsで金のポートフォリオを作る

Google Sheetsに金のポートフォリオテンプレートを取り込み、基準価格を更新して、保有品ごとの参考評価額、購入費用、差額を計算します。

開発者向け

地金、コイン、ジュエリーを保有している場合、合計額だけでは確認しにくいものです。このテンプレートでは保有品ごとに行を分け、購入費用と現在のスポット価格による参考評価額を分離し、計算に使った価格の時刻も表示します。これは参考値を計算するためのシートであり、鑑定結果や買い取り価格の保証ではありません。

テンプレートをダウンロードして取り込む

金ポートフォリオテンプレートをダウンロードします。Google Driveで New → File upload を選び、.xlsxを開いてから File → Save as Google Sheets を選択してください。スプレッドシートのファイルを開く方法はGoogleのヘルプにも説明されています: https://support.google.com/docs/answer/49114。

ワークブックには次の3シートがあります。

  • Portfolio: 保有品の入力と集計。
  • Price Data: 通貨、エンドポイント、時刻、計算に使う24K価格。
  • Read me: 前提と限界。

シート名と列名は、ファイルと数式を一致させるため英語のままです。

保有品を入力する

Portfolioの3つの例を自分のデータに置き換えます。1行は1つの保有品、または同じ条件の品物のグループです。

入力内容
Holding1 oz bar18K ring のような名前
Unitgrams または troy oz
Quantity測定した数量
Purity99.9%、18Kなら75%、または確認できる純度
Purchase costPrice Dataと同じ通貨の購入総額
Purchase date購入日または記録日
Notes販売店やレシートなどの任意メモ

すべての購入費用に同じ通貨を使います。テンプレートはトロイオンスを31.1034768グラムで換算し、元の数量も表示するため換算を確認できます。

基準価格を更新する

テンプレートで使うエンドポイントは次のとおりです。

GET https://api.goldprice.dev/v1/carat?currency=USD

レスポンスにはprice_gram_24ktimestampcurrencyが含まれます。24Kの数値を Price Data → B6 に、レスポンス時刻を B5 に、対応する見積通貨を B7 にコピーし、3つを同じレスポンスから更新します。別の通貨を使う場合は、その通貨の新しい見積を取得してから B3 を変更し、購入費用も同じ通貨にします。B3だけを変えて古いUSDの見積をIDRとして扱わないでください。JSONの価格フィールドは小数文字列なので、シートには数値として入力して計算させます。

ダウンロードファイルには、取り込み直後に数式が動くよう明示した例示データが入っています。実際に使う前に例示価格を置き換えてください。ワークブックは自動取得を行わず、APIキーも保存しません。共有ワークブックで認証が必要な場合はサーバー側のプロキシを使い、シートや他の編集者が確認できるバインドスクリプトに認証情報を置かないでください。

1回クリックの手動更新

更新メニューを追加する場合は、付属のApps Scriptをダウンロードし、Google Sheetsで Extensions → Apps Script を開き、初期コードを置き換えてファイルの内容を貼り付けます。保存してシートを再読み込みしてください。Gold portfolio → Refresh price data メニューは、Price Data → B3 の通貨を使ってキーなしのリクエストを1回だけ実行します。HTTPステータス、レスポンス通貨、正の有限値であるprice_gram_24k、時刻を検証してから B5:B7 を同時に更新します。失敗した場合は前回の価格、時刻、見積通貨を保持します。手動で貼り付ける場合も、同じレスポンスから B5B6B7 を更新してください。タイマーやバックグラウンドのポーリングは作成しません。

計算の仕組み

各行は次の4段階で計算します。

  1. Weight (g)が数量をグラムに換算します。
  2. Spot price/gPrice Dataの24K価格を参照します。
  3. Indicative valueWeight (g) × Purity × Spot price/gを計算します。
  4. ChangeIndicative value − Purchase costを計算します。

例えば、純度75%、10グラム、24K価格128.24なら、10 × 0.75 × 128.24 = 961.80です。これは基準スポット価格による金含有量の値で、加工賃、石、税金、地域プレミアム、販売店のスプレッド、買い取り割引は含みません。

集計欄では数量のある行数、換算後の総重量、購入総額、参考評価額、差額を計算します。空白行は計算列でも空白のままです。

価格と時刻を一緒に記録する

スポット価格は変動します。集計の Price timestamp (UTC) は数式が使ったレスポンスの時刻です。価格を更新するときは時刻も更新してください。レポートとして保存する場合は、元レスポンスまたは時刻を残しておくと計算を再現できます。

よくある間違いと限界

0.999を文字列で入力せず、パーセントとして99.9%と入力します。USDの購入費用とIDRの価格を混ぜず、グラムとトロイオンスも区別してください。Changeは保証された利益ではなく、売却費用を差し引かないスポット価格との差です。このテンプレートは鑑定、会計記録、税務申告、投資助言、保証された売却価格ではありません。実際の取引前には地域のルールと販売店の見積もりを確認してください。

ライブ価格と履歴価格をシートで扱う方法は、Gold Price APIのGoogle Sheetsチュートリアルをご覧ください。

関連ガイド

開発者向け

リアルタイム金価格チャートはどう動くのか?

現物価格、OHLCバー、UTCタイムスタンプ、制御されたポーリングを組み合わせる仕組みを、TypeScriptとSVGの実例で解説します。

読む →
開発者向け

為替のルックアヘッド・バイアスを避けて現地通貨建てゴールドをバックテストする

確定済みのXAU/USD日次バーと過去のFX観測値を組み合わせ、当時は入手できなかったレートを誤って使うことなく、現地通貨建てのゴールド戦略をテストする方法。

読む →
開発者向け

WordPressにライブ・ゴールド価格ウィジェットを追加する

iframeひとつで、無料の設定可能なライブ・ゴールド価格ウィジェットをWordPressに追加できる。GutenbergとElementorの両方で動作し、APIキーもプラグインも不要。

読む →

goldprice.dev

リアルタイムの金価格、ヒストリカルOHLC、マルチソース集計 — REST・SSE経由で提供。