割引の値に桁区切りのカンマが入っている例
割引の値が二重引用符で囲まれた「1,000」のように桁区切りを含む壊れやすい入力です。数字として読めないため誤割引とは断定せず、判定できなかった行として指摘することを確かめます。
入力
売上明細の CSV(1 行目は見出し)
id,code,discount 1,X900,"1,000" 2,A100,30
対象外の商品コード(1 行に 1 件)
X900
商品コードの列(1 列目が 1)
2
割引の列(1 列目が 1)
3
区切り文字
カンマ(,)
結果
エラー 0 件・警告 1 件・情報 2 件
指摘(エラー・警告・情報)
- 警告 2 行目 対象外の商品「X900」の割引の値「1,000」が数値ではないため判定できません(桁区切りのカンマや単位は外してください)。
- 情報 全体 対象外の商品に割引が付いた行は見つかりませんでした。
- 情報 判定の基準 「割引あり」は、割引の列が 0 以外の数であることを指します。コードは前後の空白を除いた文字列の完全一致で比べます。割引が正当かどうかの判断(条件・法令など)はしません。
| 検査した明細 | 2 行 |
|---|---|
| 対象外コード | 1 件 |
| 割引が付いた対象外の行 | 0 行 |
| 判定できなかった行 | 1 行 |
対象外なのに割引が付いた行
出力はありません(指摘の一覧をご覧ください)。
検算(この結果になる理由)
RFC 4180 2 節の 5〜6 の読み方で、引用符で囲まれた 1,000 は 1 つの値として読まれます。ただしカンマを含む文字列は数として扱えないので判定せず、2 行目を警告にします。A100 は対象外ではないので結果に影響せず、表は出ません。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 判定は商品コードの完全一致と割引の列の値だけです。割引が条件を満たして正当かどうか、商品の分類やセット商品の按分は扱いません。
- 割引の値は 0 以上でも 0 未満でも、0 以外の数なら割引ありと見なします。返品や訂正の行も、割引の列に値があれば表に出ます。
- 割引が別の行(値引き専用の行など)に記録される明細の形式には対応していません。商品行に割引の列がある CSV が対象です。
- 文字コードは UTF-8 の CSV を想定します。Shift_JIS の CSV は変換してから貼り付けてください。
ご利用にあたって
- 表に出た行は、設定した基準(対象外コードの完全一致と割引の列が 0 以外)に当てはまる明細です。誤りかどうかは、キャンペーンの条件と元の伝票で確かめてください。