ホーム > ツール・Excel・API
Excelのユーザー定義書式とは?書式記号の一覧とJANコード0落ち対処を解説

Excelの「ユーザー定義書式(セルの表示形式)」とは、セルに入っている値の見た目だけを、記号を組み合わせて自由に整える機能です。ここで最初に押さえるべき大原則は、ユーザー定義書式は表示を変えるだけで、セルの実データ(=CSVに書き出される値そのもの)は一切変えないということ。だから「見た目は13桁に0埋めされているのに、CSVに保存したら先頭の0が消えた」という事故が起きます。この一点を理解しておくと、以降の記号の話がすべてつながります。
商品CSVをExcelで編集するEC店舗運営者にとって、この違いは死活問題です。JANコードや電話番号の0が消えたまま気づかずアップロードすれば、別商品として登録されたり、出品エラーになったりします。本記事では、書式記号を一次情報(Microsoftサポート)基準で正確に一覧化しつつ、EC実務で最も事故りやすい「JANコードの0落ち」と「CSVの正しい開き方」を、表と実例を厚めに解説します。
1. ユーザー定義書式とは?開き方と「見た目だけ変わる」大原則
ユーザー定義書式は、[セルの書式設定]ダイアログの[表示形式]タブにある分類のひとつです。「標準」「数値」「通貨」「日付」といった定型の表示形式では足りないとき、0 や #、yyyy、@ といった書式記号を自分で並べて、セルの見た目を細かく指定できます。
開き方(Ctrl+1)
- 対象のセル(または列)を選択する
Ctrl+1を押す(右クリック →[セルの書式設定]でも同じ)- [表示形式]タブ →[ユーザー定義]を選ぶ
- [種類]の入力欄に書式記号を入力し、[OK]
[種類]の欄の上に表示される「サンプル」で、設定後の見た目をその場で確認できます。
くり返す最重要ポイント:変わるのは「見た目」だけ
ここが本記事の背骨です。ユーザー定義書式でどれだけ表示を整えても、セルの中身(実データ)は変わりません。
- 数式バーに表示される値は、書式を変えても元のまま
- 別のセルからそのセルを参照すると、見た目ではなく実データが使われる
- CSVとして保存すると、書き出されるのは見た目ではなく実データ
たとえば 5 というセルに 000 という書式を当てると画面上は 005 に見えますが、中身はあくまで数値の 5 です。この「見た目 ≠ 実データ」の感覚を持っておくと、後半のJAN0落ちの話で迷いません。
2. まず全体像:書式記号は4グループで覚える
書式記号は数が多く「呪文のようで覚えられない」と感じがちですが、役割で4グループに分けると整理できます。
| グループ | 代表的な記号 | 役割 |
|---|---|---|
| 数値 | 0 # ? , . % | 桁揃え・0埋め・千区切り・小数・率の見せ方 |
| セクション/色/条件 | ;(セミコロン)[赤] [>=100] | 正・負・ゼロ・文字列で表示を分ける/色や条件で分岐 |
| 文字列 | @ " " ! _ * | 単位・接頭辞など文字を足す/エスケープ/余白 |
| 日付・時刻 | yyyy m d aaa ggge h s | 西暦・和暦・曜日・時分秒の表記 |
以降は、このグループ順に一次情報基準で見ていきます。
3. 数値の記号:0と#と?の違い(0埋め・桁揃え)
数値の表示を決める中心が、0 # ? の3つの「桁のプレースホルダー」です。似ていますが、足りない桁をどう扱うかが違います(仕様はMicrosoftサポート準拠)。
| 記号 | 意味 | 入力 → 表示(書式) |
|---|---|---|
0 | 桁が足りなければ0を補う(0埋め・桁揃えの主役) | 1 → 001(000) / 8.9 → 8.90(#.00) |
# | 桁を表すが余分な0は表示しない | 8.9 → 8.9(#.##)/先頭・末尾の不要な0を消す |
? | 0と同じだが、余分な桁を空白で埋めて小数点位置を揃える | 0.0? で 8.9 と 88.99 の小数点が縦にそろう |
使い分けの勘所は次のとおりです。
- 桁数をそろえたい/0も見せたい →
0
例:商品コードを必ず3桁で 001 012 123 と見せたい → 000
- 不要な0を消してすっきり見せたい →
#
例:1.20 を 1.2 と見せたい → #.##
- 小数点の位置を縦にそろえて一覧を読みやすく →
?
注意:ここまでの0埋めはすべて「見た目」です。
000で001に見せても実データは1。CSVに001を残したい場合は表示形式ではなく文字列化が必要です(第8章)。
4. 千区切り,・小数点.・パーセント%:価格や率を見せる
価格や率をきれいに見せるための記号です。
| 記号 | 意味 | 入力 → 表示(書式) |
|---|---|---|
. | 小数点を表示 | 1234.59 → 1234.6(####.#) |
, | 千区切り。#/0の後ろに置くと3桁ずつ縮小 | 12000 → 12,000(#,###)/12000 → 12(#,) |
% | 100倍して%表示 | 0.15 → 15%(0%) |
E+ E- | 指数表示 | 0.00E+00 |
/ | 分数表示 | 5.25 → 5 1/4(# ???/???) |
価格表示でよく使うのは #,##0 です。
#,##0:1000→1,000。在庫や価格が0のときも0と表示される#,###:0が空欄になってしまう(0を見せたい列では不向き)
販売価格や在庫数のように「0も見せたい」列では、末尾を 0 にした #,##0 が安全です。, を末尾に置く縮小表記(#, で千単位、#,, で百万単位)は社内サマリーには便利ですが、CSVに焼く数値列には使わないでください。
5. セクション正;負;ゼロ;文字列と色・条件で分岐する
セミコロン ; で区切ると、値の種類ごとに違う表示を割り当てられます。区切りの数で意味が変わります。
| セクション数 | 書き方 | 適用ルール |
|---|---|---|
| 1個 | (区切りなし) | すべての数値に同じ書式 |
| 2個 | 正;負 | 正とゼロに前半、負に後半 |
| 3個 | 正;負;ゼロ | 正/負/ゼロを個別に指定 |
| 4個 | 正;負;ゼロ;文字列 | 4番目は文字列用。空にするとその種類を非表示にできる |
たとえば 0;-0;; は、ゼロと文字列の区画を空にしているので、ゼロと文字を隠す書式になります。
色と条件
- 色:
[黒] [緑] [白] [青] [マゼンタ] [黄] [シアン] [赤]の8色。セクションの先頭に置きます。 - 条件:角かっこに比較演算子。例
[赤][<=100];[青][>100]は100以下を赤・101以上を青。3条件以上が必要なら、ユーザー定義ではなく「条件付き書式」を使います。
EC実務での例(在庫増減を色分け・社内管理用) [青]+#,##0;[赤]▲#,##0;0 とすると、入荷は青の +50、出庫は赤の ▲30、増減なしは 0 と表示され、管理シートが一目で読めます。ただしこれも見た目の装飾なので、CSVに書き出す列には使わないでください。
6. 文字列の記号:@・" "・エスケープ!で単位や接頭辞を付ける
数字や文字にそのまま単位や語句を添えるための記号です。
| 記号 | 意味 |
|---|---|
@ | 入力した文字列そのものを表示(省略すると文字列が表示されない) |
" " | 二重引用符で囲った文字をそのまま表示(@"様" → 山田太郎様) |
! \ | 直後の1文字をエスケープして文字扱い(!@ で記号の @ 自体を表示) |
_(アンダースコア) | 直後の文字の幅ぶんの空白を作る(桁やかっこ位置の調整に使う) |
*(アスタリスク) | 直後の文字をセル幅いっぱいにくり返す(* #,##0 で右揃えなど) |
" " を使えば、数値の実データを保ったまま単位を添えられます。たとえば #,##0"円" は 1000 を 1,000円 と見せますが、中身は数値の 1000 のままなので計算にも使えます。
エスケープは
!が正解です。Microsoftの日本語ヘルプに「円記号¥を使う」という記述が残っていますが、これは翻訳上の名残で、実際に直後の1文字を文字扱いにするのは!(または\)です。¥や"はそのまま置いても表示されます。
7. 日付・時刻・和暦・曜日:yyyy/mm/dd・ggge・aaa
出荷日・入荷日・納期などの日付表記を整える記号です(例は 2001/2/3・木曜)。
| 記号 | 意味 | 例 |
|---|---|---|
yyyy / yy | 西暦4桁 / 2桁 | 2001 / 01 |
m / mm | 月(1桁 / 0埋め2桁) | 2 / 02 |
d / dd | 日(1桁 / 0埋め2桁) | 3 / 03 |
aaa / aaaa | 曜日(日本語) | 木 / 木曜日 |
ddd / dddd | 曜日(英語) | Thu / Thursday |
ggge | 和暦(元号+年) | 令和6 |
h m s | 時・分・秒(hh:mm:ss で0埋め) | 06:03:09 |
[h] [m] | 経過時間(24時間超も加算) | [h]"時間" |
実務パターン:
- 表記ゆれ(
2026/7/3と2026/07/03の混在)を統一 →yyyy/mm/dd - 和暦の帳票 →
ggge"年"m"月"d"日" aaaaで令和8年7月3日 木曜日
なお、月を表す m と分を表す m は同じ記号です。時刻の h(時)や s(秒)の直後に置くと「分」、y d の近くでは「月」と解釈されます。
ここでも注意:楽天など取込先のCSVが日付書式に厳しい場合は、日付シリアル値のままだと期待どおりに解釈されないことがあります。その場合はあらかじめ文字列でフォーマット済みの値(例:
2026/07/03という文字列)を持たせるほうが安全です。
8. 【EC最重要1】JANコード13桁の0落ち・指数化を防ぐ
ここからがEC実務の核心です。
症状:0490... のように0で始まるJANコードや、13桁の長い数字をExcelで開く・入力すると、先頭の0が消える、あるいは 1.23E+12 という指数表記に化ける。
原因:Excelが数字だけの列を数値と誤認するためです。
- 先頭の0は「数値として無意味」とみなされ削除される
- 15桁を超える長い数字は指数に丸められ、16桁目以降は0に丸められて元の値が失われる
対処は用途で2択
| やりたいこと | 方法 | 結果 | 注意 |
|---|---|---|---|
| CSVに13桁の数字を確実に残したい(EC本番) | 入力前にセルの書式を「文字列」にする/先頭にアポストロフィ ' を付ける | '4901234567890 → 表示も値も13桁の文字列。CSV出力も0落ちしない | ★これが正解 |
| 見た目だけ13桁に0埋めしたい(数値として持つ) | ユーザー定義 0000000000000(0を13個) | 見た目は13桁で0埋め。ただし中身は数値のまま | 桁が多いと丸めリスク。既に丸められた値は復元不可 |
原則:JANは「0埋め」より「文字列化」
多くの解説記事は 0000000000000 の0埋めだけを紹介しますが、これは見た目の0埋めにすぎません。中身は数値のままなので、
- CSVに書き出すと先頭0が残らないことがある
- 15桁を超えるコードでは、そもそも入力時点で桁が丸められて失われている
という落とし穴があります。JANコードのように「桁を1桁も落とせない」データは、表示形式ではなく文字列として持つのが原則です。具体的には、書式を「文字列」にしてから貼り付ける、または先頭に ' を付けます。
9. 【EC最重要2】CSVは開き方が9割:ダブルクリック厳禁

第8章の0落ちは、実は開いた瞬間に起きています。ダウンロードしたCSVをダブルクリックで開くと、その一瞬でJAN・郵便番号・電話番号が数値と誤認され、0落ちや指数化が確定します。開いた後に書式を直しても、失われた0や桁はもう戻りません。手遅れです。
だから、対処の本質は「開いた後の修正」ではなく「開き方そのもの」にあります。
正しい開き方(テキスト/CSVから取り込む)
- 空のExcelブックを先に開く
- [データ]タブ →[テキストまたはCSVから](旧バージョンでは[データ]→[テキストファイル]でウィザード起動)
- 対象のCSVファイルを選ぶ
- プレビュー画面で、JAN・電話・郵便番号などの列のデータ型(列のデータ形式)を「文字列」に指定して読み込む
この手順なら、Excelが列を数値と誤認する前に「文字列」と宣言できるので、0も桁も失われません。
編集後の落とし穴
編集が終わったCSVを、確認のつもりでもう一度ダブルクリックで開くと再び0落ちします。編集後は開き直さず、そのままアップロードしてください。どうしても中身を確認したい場合は、再び[テキスト/CSVから]で文字列指定して開きます。
工程で言えば「空のExcel → データ → 文字列指定で取り込む → 編集 → 開き直さずアップロード」。この時系列を守ることが、CSV事故を防ぐ最大のコツです。
10. 電話番号・郵便番号の0落ち対策と、価格・在庫の見せ方
JAN以外でも0落ちは起きます。用途別に整理します。
電話番号・郵便番号(0始まりが消える)
- CSVに残すなら文字列が原則。書式を「文字列」にするか、先頭に
'を付けます。 - 見た目だけ整えたいとき(社内の一覧表など)は、ユーザー定義で表示を作れます。
- 郵便番号:
000"-"0000→1500001を150-0001 - 電話番号:
000-0000-0000の形。ただしこれは表示のみで、CSV用なら文字列列にするのが安全
価格・税込表記
#,##0→1000を1,000(0のときも0と表示)"¥"#,##0"(税込)"→1000を¥1,000(税込)
ただし、価格を装飾したこれらの書式は見せる用です。CSVにアップロードする数値列には、¥ や「(税込)」を焼き込まず、素の数値を持たせてください。装飾はあくまで人が見る画面用、アップロードするのは実データ、と切り分けます。
11. よくある事故と、その根っこ
これまでの内容を、EC現場で実際に起きる事故の形で振り返ります。すべて根っこは同じ「見た目 ≠ 実データ」です。
| 事故 | 起きたこと | 根っこ |
|---|---|---|
| JANの先頭0が消え、別商品として登録された | 表示形式で0埋めしたが実データは数値のまま/ダブルクリックで開いた | 見た目の0埋めと文字列化の混同 |
13桁コードが 1.23E+12 になった | 長い数字を数値と誤認し指数へ丸め | 開き方(ウィザード未使用) |
郵便番号 0150001 が 150001 に | 先頭0が数値扱いで消えた | 文字列化していない |
| 価格列に「¥」や「(税込)」が混入しアップロードエラー | 表示装飾を数値列に焼いた | 表示と実データの切り分け不足 |
| 日付がCSVで別形式になった | 日付シリアル値のまま取り込まれた | 取込先に合わせた文字列化不足 |
事故の再発を防ぐ考え方はシンプルです。「0を残したい・桁を守りたいデータは、表示形式ではなく文字列で持つ」。表示形式は、あくまで人が画面で見るための化粧だと割り切ります。
12. まとめ:表示形式は「見た目」、CSVに残すなら「文字列化」
- ユーザー定義書式は、セルの見た目だけを整える機能。実データ(CSVに出る値)は変えない。
- 数値の桁は
0(0を補う)・#(余分な0を消す)・?(小数点をそろえる)で使い分ける。 - 千区切りは
#,##0(0も見せる)が安全。単位は" "で添えると数値のまま計算にも使える。 - 日付は
yyyy/mm/dd、和暦はggge、曜日はaaa。取込先が厳しければ文字列で持つ。 - JAN・電話・郵便番号など「0を落とせない」データは、0埋め書式ではなく文字列化(書式「文字列」/先頭
'/ウィザードで文字列取込)で扱う。 - CSVは開き方が9割。ダブルクリック厳禁、空のExcelから[データ]→[テキスト/CSVから]で文字列指定して取り込む。編集後は開き直さない。
Excelでの手編集は、この「見た目と実データの切り分け」を毎回意識しないと、0落ち・桁ずれ・表記ゆれといった属人ミスが避けられません。商品数が増えるほど、1件の0落ちが探しにくい事故になります。
FAQ
Q1. ユーザー定義で0埋めしたのに、CSVに保存すると0が消えるのはなぜ? ユーザー定義書式は「見た目」だけを変え、セルの中身(=CSVに書き出される値)は数値のままだからです。CSVに0を残したいときは、表示形式ではなくセルの書式を「文字列」にするか、先頭にアポストロフィ ' を付けて文字列として保持してください。
Q2. JANコード13桁が 1.23E+12 と表示・保存される。どう直す? Excelが長い数字を数値と誤認し、指数に丸めています。空のExcelから[データ]→[テキスト/CSVから]で開き、JAN列を「文字列」で取り込むのが正解です。ダブルクリックで開くと、その時点で桁が失われます。すでに開いて丸められた値は復元できないので、元のCSVを取り込み直してください。
Q3. 0と#はどう使い分ける? 0は桁が足りないと0を補う(0埋め・桁揃え向き)、#は余分な0を表示しない(不要な0を消したいとき)記号です。たとえば 000 は 1 を 001 にし、#,### は 0 を空欄にします。金額など0も見せたい列は #,##0 が安全です。
Q4. 日付を必ず 2026/07/03 の形にしたい。 ユーザー定義に yyyy/mm/dd を設定します(mm/dd が0埋め2桁)。和暦なら ggge"年"m"月"d"日"、曜日は aaa(木)や aaaa(木曜日)。ただし取込先が日付書式に厳しいCSVでは、文字列でフォーマット済みの値を持つほうが安全です。
Q5. 電話番号や郵便番号の先頭0が消えます。 これも0落ちです。000-0000-0000 のようなユーザー定義は「表示」を整えるだけなので、CSVに残すなら「文字列」書式にしてください。郵便番号の表示だけ整えるなら 000"-"0000(1500001 → 150-0001)が使えます。
参考:Microsoft サポート「表示形式のコードのガイドラインを確認する」 https://support.microsoft.com/ja-jp/office/c0a1d1fa-d3f4-4018-96b7-9c9354dd99f5
関連する自動化ツール
商品CSVを一括更新するツール(ラクリプ) ── 0落ちしやすいJANコードの一括修正・反映を自動化できます。
店舗の「次の一手」を一緒に進めるなら
運営代行・ECコンサル・AIツールまで、現場を知るチームがワンストップで伴走します。
西尾 勝太株式会社ラクダ 代表
楽天SOY 2年連続受賞 / 楽天NATIONSリーダー店舗 / 楽天NATIONS AIエバンジェリスト
楽天市場の月商を5年で200万円→2億円に伸ばした現場の実践者。売れるECの方程式にAIを重ね、EC事業者の「次の一手」に伴走しています。



