実践ワークショップ

Excelで取引IDの末尾が消える:文字列と口座別キーを確認

16桁の二IDが一つになる模型とローカル比較を日本語化。ID17が無傷でも口座なしの結合で料金−420円が−840円になる反例を示します。

文字列IDが変換で衝突する様子を描く編集用画像。実口座の番号ではありません。
識別子、結合、金額の検査を分けます。

レバレッジを使うFXやCFDでは、短時間で大きな損失が生じることがあります。内容は学習用であり、個別の投資助言ではありません。

この記事の内容

この記事を読むと…

  • 完全IDを文字列で取込み、再出力後まで比較する。
  • 出現回数と価格・料金・残高照合を別に行う。
  • 口座範囲を含むキーで結合の多対多増殖を見抜く。

記事内で用語を調べる

注文約定(Execution) 残高(Balance) コミッション(売買手数料)

業者レポートと表計算で行数・金額合計が一致しても、取引識別子が異なる場合があります。長いIDの数値化で末尾が失われると、後の表結合で別の約定へ手数料を付ける原因になります。架空の二IDで、失われた桁を推測せずインポートからエクスポートまで確認します。

取引IDを文字列として保つ理由

IDは「どの記録か」で「いくらか」ではありません。注文番号の足し算には意味がなく、先頭ゼロを含む各文字が重要です。利益、手数料、数量は別の計算欄です。取引用表計算を作る前に型を決めます。美しい集計画面も曖昧なキーを直しません。

MicrosoftはExcelの数値精度15桁と長いコードの文字列扱いを説明します。全業者が長い番号を使うわけではありません。本稿は約定ID・注文ID等のインポート機序を扱います。省略表示や見慣れた数字だけでなく生の表現を確認します。

列が識別する対象を明示します。MT5のDEAL_ORDERとDEAL_TICKETは注文番号と約定番号で別の意味です。同一注文の部分約定で注文番号が複数回現れても誤りとは限りません。定義した記録の適切なキーで重複を判定し、同じ表示をすべて削除しません。

二つの約定が一つのキーになる模型

独自模型:第16桁を失う

架空IDは2026101300000001と2026101300000002です。制御した数値化模型は最初の15桁を残し第16桁をゼロへ置換し、両方2026101300000000になります。文字列版は二つを完全に保ちます。用意した模型で、実口座や自分のExcel設定の再現実験ではありません。

二行のまま、二キーが一キーへ
元のID模型の数値変換文字列インポート
202610130000000120261013000000002026101300000001
202610130000000220261013000000002026101300000002

元は異なる二キー、変換後は一キーでも、どちらも二行です。重複削除すれば別操作を消し、傷んだキーで結合すれば対応が曖昧になります。利益合計の一致では自動検出できず、記録の同一性と金額照合は別の検査です。

二IDが一つの破損キーになる

横にスクロールすると図全体を確認できます。

二IDが一つの破損キーになる架空ID2026101300000001と2026101300000002が15桁後をゼロにする模型で2026101300000000へ一致。文字列は両方を保ちます。二行が二キーとは限りません。二IDが一つの破損キーになる元の文字列20261013000000012026101300000002異なるキー2件数値化模型202610130000000020261013000000001キー・出現2回文字列インポート20261013000000012026101300000002異なるキー2件変換模型:15桁を残し、次の桁をゼロにする。
二行と金額合計の一致ではID保持は確認できません。壊れたリストだけから末尾は復元できません。

文字列全体を比較します。指数表示だけでは損失の証拠にならず、値と出力ファイルを確認します。行順に1・2を付け直しません。実履歴は並替え、欠落、追加操作を含み得て、破損キーだけでは元の末尾は選べません。

文字を失わずにインポートする手順

作業ブックの外へ未変更の元コピーを保管します。テキストエディターで見出しと完全IDを調べ、業者からの取得物と既にExcelが保存したコピーを区別します。「元ファイル」という名だけでは来歴は証明できません。取得時刻・対象範囲を残し、実験はコピーで行います。

制御したテキスト・CSV取込みでID列を明示的に文字列へします。MicrosoftのPower Query説明を参照し手順を確認します。先の工程で数値化した後に文字列へ変えても桁は戻りません。保存した元データから変換順を直して再取込みし、壊れた値の表示形式変更で済ませません。

Excelの自動変換設定は長い数字、先頭ゼロ、日付のような文字列を扱います。提供機能は版によるため自分の版で確認します。一台の設定が他端末でも同じとは限らず、共有ブックには作成者の成功談だけでなく取込み手順を残します。

読込み後に例を確認し、コピー保存・再エクスポートを行います。出力ファイルを文字列として元と比べ、元→取込み→出力の全経路を試します。ブックで全桁が見えても、次の集計・他ソフト・結合に別表現が渡れば不十分です。実際に下流で使うファイルを確認します。

ローカルID比較ツールの検査範囲

元と取込み後の二リストを一行一IDで貼ります。CSV見出し、他列、引用符は含めません。ASCII英数字と_ . : -のみ、ID1〜128文字、各リスト空でない行10,000以下、空行込み20,000行・1.5 MB以下。前後空白はエラーで勝手に除去しません。ABCとabcは別です。

インポート後もIDが保たれたか確認

ブラウザー内で動く学習用模型です。口座・APIへ接続せず、入力を送信・永続保存しません。パスワードや個人情報を入力しないでください。

各リストは空でない行が1〜10,000件、総行数20,000以下、1.5 MB以下です。IDは1〜128文字のASCII英数字と _ . : - に限ります。先頭ゼロと大文字・小文字は区別します。順序は出現回数の比較へ影響しません。失われた桁を復元する機能ではありません。

文字列を数値和でなく厳密な出現回数で比べ、先頭ゼロを保ち、不足・追加・重複を報告します。模型では元の両IDが消え新キーが二回。15桁以降のゼロ化と整合しても原因がExcelという証拠ではなく診断仮説です。単なる並替えで出現回数は変わりません。

貼付けたリスト内のローカル比較で、業者ログイン、ID真正性の確認、取引復元は行いません。一致しても価格、金額、日付、料金は未検証です。複数口座は適切な範囲を分け、同表示が別口座でも同操作と扱わず、無関係なレポートを混ぜて一致させません。

不一致なら両コピーを保管し最初の変換を調べ、修復を推測しません。共通建玉への約定対応には正しい関係が必要ですが、ID検査だけでロボット別利益は割当てられません。日誌へ照合結果を残してから成績統計へ使います。

レポートの計算前に行うこと

  1. 一つのID列とその識別対象を決めます。ブックを開く前に元を保存し、最長IDと先頭ゼロを確認します。初回取得物がなければ限界を明示し、後のコピーを確実な参照物にしません。
  2. IDを明示的文字列、金額等を適切な数値として再取込みします。自動型変換と出力を検査し、画面の先頭数セルだけでなく全リスト・出現回数を比べます。
  3. 失われた文字は未変更の元や業者の再出力から回復し、行順から作りません。キー照合後も結合、価格、費用、残高を別に確認します。一つの合格は他の検査を代替しません。

追加例:IDが無傷でも口座を落とすと手数料が二重になる

別の架空レポート二口座A・Bに、それぞれ約定ID17が一件ずつあります。料金表はA:17が−120円、B:17が−300円。ここでは口座名をA/B、IDを半角数字に限定した定義済みの複合キー「口座:ID」で区別します。生のIDを変更したり、実際の番号を補修したりする例ではありません。

口座とIDの二欄で一対一に結合すれば二件・合計−420円。ID17だけで二表を多対多に結合すると各約定に両料金が付き四件、−120−300−120−300=−840円です。文字化けや桁落ちは一切なくても、範囲を落とした結合で420円過大の費用を作れます。

比較ツールへA:17とB:17を別行で入れれば二キーですが、17と17なら同じ文字列の出現二回を報告するだけで、口座を自動推定しません。複合キーの区切りが実データの文字と曖昧にならない定義を先に決め、結合前後の件数と金額も確認します。

IDを保てても、口座なしの結合で料金が倍になる架空二口座A/B、同じ約定ID17。A料金−120円・B料金−300円。仮定に基づく計算二欄の正しいキーA:17/B:17 → 二件ID17だけの多対多結合二件×二件=四件比較ツールの範囲文字列と回数のみ
IDを保てても、口座なしの結合で料金が倍になる. 架空二口座A/B、同じ約定ID17。A料金−120円・B料金−300円。

完全IDの保持と正しい記録範囲は両方必要です。元の欄を保ち、結合前後の件数・料金も照合して、曖昧なキーから修復しません。

小さな画面では横にスクロールするか、図を拡大できます。数値と要点は下のテキストにも記載しています。

二欄の正しいキー
A:17/B:17 → 二件 – 二欄の一対一対応で料金合計−420円。
ID17だけの多対多結合
二件×二件=四件 – 各約定に両口座料金が付き合計−840円。
比較ツールの範囲
文字列と回数のみ – 17の二回出現からA/Bを推定しない。口座定義は利用者側で保持。

理解度を確認

練習の目安: 約2分.

模型の二IDが同じゼロ末尾へ変化。行数・金額合計は一致。どうする?

答えと解説を見る

正解です。合計や行順から推測せず、信頼できる元から失われた文字を確認します。

よくある質問

E+15表示だけで桁落ちを証明できますか。
できません。指数表記は表示だけの場合もあり、完全な値と出力ファイルを元と比べます。数値化で失った桁は幅や形式変更で戻らないので、取込み時から文字列にします。原因は元から最初の変換を追って確認します。
後から文字列にすれば桁は戻りますか。
既に失われた文字は回復できません。本模型の同じゼロ末尾から元の1・2は判別不能です。信頼できる元を取得して数値化前に文字列を指定し、再出力も比較します。並替えや欠落があるため行順で直しません。
同じIDはすべて削除すべきですか。
いいえ。注文・約定・建玉等どれを識別するか定めます。一注文の複数部分約定で注文IDは繰り返し得ます。ツールは回数を数えるだけで記録定義を知らず、適切な欄・口座範囲と数量・金額を別に調べてから判断します。
IDリストが一致すれば日誌全体は正しいですか。
選んだ範囲のIDと回数が一致しただけです。価格、通貨、料金、日時、数量は未検証。同じIDのまま金額が変わる場合もあり、同版で結合と費用・残高を照合します。口座・操作種類を落とせば広いデータで不適切に対応し得ます。

出典と検証

  1. support.microsoft.com

    内容の参考資料。記事に記載した範囲と前提を確認してください。

  2. support.microsoft.com

    内容の参考資料。記事に記載した範囲と前提を確認してください。

  3. www.mql5.com

    内容の参考資料。記事に記載した範囲と前提を確認してください。

  4. www.mql5.com

    内容の参考資料。記事に記載した範囲と前提を確認してください。

計算例には前提条件を明記しています。現在の市場データや提供会社の取引条件の代わりにはなりません。

著者について

Jarosław Wasińskiはポーランドの編集者・市場アナリストです。2004年にMyBank.plを設立し、2007年から外国為替市場の分析に携わっています。