この記事の内容
この記事を読むと…
- 完全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 | 模型の数値変換 | 文字列インポート |
|---|---|---|
| 2026101300000001 | 2026101300000000 | 2026101300000001 |
| 2026101300000002 | 2026101300000000 | 2026101300000002 |
元は異なる二キー、変換後は一キーでも、どちらも二行です。重複削除すれば別操作を消し、傷んだキーで結合すれば対応が曖昧になります。利益合計の一致では自動検出できず、記録の同一性と金額照合は別の検査です。
二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へ接続せず、入力を送信・永続保存しません。パスワードや個人情報を入力しないでください。
文字列を数値和でなく厳密な出現回数で比べ、先頭ゼロを保ち、不足・追加・重複を報告します。模型では元の両IDが消え新キーが二回。15桁以降のゼロ化と整合しても原因がExcelという証拠ではなく診断仮説です。単なる並替えで出現回数は変わりません。
貼付けたリスト内のローカル比較で、業者ログイン、ID真正性の確認、取引復元は行いません。一致しても価格、金額、日付、料金は未検証です。複数口座は適切な範囲を分け、同表示が別口座でも同操作と扱わず、無関係なレポートを混ぜて一致させません。
不一致なら両コピーを保管し最初の変換を調べ、修復を推測しません。共通建玉への約定対応には正しい関係が必要ですが、ID検査だけでロボット別利益は割当てられません。日誌へ照合結果を残してから成績統計へ使います。
レポートの計算前に行うこと
- 一つのID列とその識別対象を決めます。ブックを開く前に元を保存し、最長IDと先頭ゼロを確認します。初回取得物がなければ限界を明示し、後のコピーを確実な参照物にしません。
- IDを明示的文字列、金額等を適切な数値として再取込みします。自動型変換と出力を検査し、画面の先頭数セルだけでなく全リスト・出現回数を比べます。
- 失われた文字は未変更の元や業者の再出力から回復し、行順から作りません。キー照合後も結合、価格、費用、残高を別に確認します。一つの合格は他の検査を代替しません。
追加例: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の保持と正しい記録範囲は両方必要です。元の欄を保ち、結合前後の件数・料金も照合して、曖昧なキーから修復しません。 小さな画面では横にスクロールするか、図を拡大できます。数値と要点は下のテキストにも記載しています。
理解度を確認
練習の目安: 約2分.
答えと解説を見る
正解です。合計や行順から推測せず、信頼できる元から失われた文字を確認します。
よくある質問
E+15表示だけで桁落ちを証明できますか。
後から文字列にすれば桁は戻りますか。
同じIDはすべて削除すべきですか。
IDリストが一致すれば日誌全体は正しいですか。
出典と検証
- support.microsoft.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- support.microsoft.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- www.mql5.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- www.mql5.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
計算例には前提条件を明記しています。現在の市場データや提供会社の取引条件の代わりにはなりません。
