仕様と根拠
照合の方法
売上明細を RFC 4180 の 2 節の読み方(二重引用符の中の区切り・改行は値の一部)で読みます。1 行目を見出しとし、2 行目以降の各行について、指定した列の商品コードが対象外の一覧に完全一致するかを調べます。一致した行のうち、割引の列が 0 以外の数のものを「誤割引」として一覧にします。
「割引あり」の判定
割引の列が空欄または 0(0.00 を含む)なら割引なしと見なし、0 以外の数ならプラスでもマイナスでも割引ありと見なします。数字として読めない値(桁区切りのカンマや単位が付いたものなど)は判定せず、指摘に出します。この基準は規格や法令の定めではなく、このツールの定義です。
コードの一致
商品コードは前後の空白を除いた文字列として完全に比べます。全角と半角、大文字と小文字は別の文字として扱うため、明細と一覧で書き方がそろっていないと一致しません。対象外の一覧にあって明細に現れなかったコードは、書き方の違いを疑えるよう指摘に出します。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| RFC 4180 Common Format and MIME Type for Comma-Separated Values (CSV) Files | 2026年10月29日 | 2 節の 1〜7(改行・見出し行・各行の値の数・二重引用符)。対象外コードとの突き合わせと割引ありの判定はこのツールの定義で、規格の定めではない |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 判定は商品コードの完全一致と割引の列の値だけです。割引が条件を満たして正当かどうか、商品の分類やセット商品の按分は扱いません。
- 割引の値は 0 以上でも 0 未満でも、0 以外の数なら割引ありと見なします。返品や訂正の行も、割引の列に値があれば表に出ます。
- 割引が別の行(値引き専用の行など)に記録される明細の形式には対応していません。商品行に割引の列がある CSV が対象です。
- 文字コードは UTF-8 の CSV を想定します。Shift_JIS の CSV は変換してから貼り付けてください。
ご利用にあたって
- 表に出た行は、設定した基準(対象外コードの完全一致と割引の列が 0 以外)に当てはまる明細です。誤りかどうかは、キャンペーンの条件と元の伝票で確かめてください。