桁を揃えた請求番号を作る(TEXT + &)
問題
問題文
受注システムは店舗コードを B2、連番を A2 に持っています。経理が欲しいのは NY-0042 のような固定形式の請求番号です。PDF のテンプレートもバーコードも4桁を前提にしています。Invoice number のセル D2 に入力してください。
連番は4桁に埋める必要があります。単純に連結すると 42 は 42 になり、ケース2 の 7 はゼロが3つ足りません。
問題のデータ
表でデータ全体を見る(選択・コピーできます)
| A | B | D | |
|---|---|---|---|
| 1 | Order # | Store | Invoice number |
| 2 | 42 | ny |
ポイント解説
数値は先頭のゼロを持てないので、埋めるのは書式の仕事です。TEXT(A2, "0000") で 7 は 0007 になり、1023 はそのまま残ります。& は書いた順に部品をつなぎます。UPPER を使うのは、出力される店舗コードが小文字で、請求書の形式は大文字だからです。
解き方のヒント
回答は D2 に入力します。送信時は 3 通りの入力で数式を再実行するので、数値を直接書くと必ず失敗します。数式はセルを参照してください。
- 回答セルは D2 です
- 店舗コードは B2、連番は A2 にあります
- TEXT(数値, "0000") で連番を4桁にそろえます
- 形は =UPPER(?) & "-" & TEXT(?, "0000") です
模範解答
模範解答を表示(2 通り・まずは自分で試してみましょう)
解法1:& で連結し、TEXT でゼロ埋め
=UPPER(B2)&"-"&TEXT(A2,"0000")
UPPER が店舗コードを大文字にし、TEXT(A2,"0000") が4桁を強制し、& が間にハイフンを置きます。左から右へ読むことが、そのまま請求番号を読むことになります。
解法2:CONCAT で組み立てる
=CONCAT(UPPER(B2),"-",TEXT(A2,"0000"))
CONCAT は部品を引数として受け取ります。あとで範囲をまとめて連結したくなったときに便利です。出力は同じです。
関数ガイド
よくある質問
Excel で先頭のゼロを残すには?
数値として持ち、書式で見せます。TEXT(A2,"0000") ならゼロ付きの文字列が返ります。セルに数値 42 が入っている限り、書式なしで 0042 と表示することはできません。数値自体に桁幅がないからです。
店舗コードを UPPER で包むのはなぜ?
出力データの店舗コードは小文字ですが、請求書の形式は大文字です。UPPER を使えば、元データの書き方に左右されません。
& と CONCAT は違うのですか?
どちらも文字列をつなぎます。& は演算子で、部品が少ないときに短く書けます。CONCAT は引数を取り、範囲をまとめて渡すこともできます。ここでは結果は同じです。