Accessで0埋めする方法をお探しですね。

広告

Accessで数値の「0埋め」と「端数処理」をマスターしよう

Accessで社員番号や商品コードを扱っていると、「1」を「0001」みたいに桁を揃えて表示したいことってよくありますよね。

また、見積書や請求書で消費税を計算するとき、端数をどう処理するかで悩んだ経験はありませんか?

「Excelと同じ感覚で関数を使ったら、なぜか計算が合わない…」そんな経験がある方も多いはず。

実は、AccessにはExcelとは違う独自のルールがあるんです。

知らないと思わぬミスにつながることも。

この記事では、Accessで数値を「0埋め」する3つの方法と、実務でトラブルになりやすい「端数処理」の正しいやり方を、初心者の方にもわかりやすく解説していきます!

Accessで数値を「0埋め」する3つの方法

数値の0埋め(ゼロパディング)には、大きく分けて3つの方法があります。

「見た目だけ変えるのか」「データそのものを変えるのか」で使い分けが必要なので、順番に見ていきましょう。

1. 【一番簡単】書式プロパティで見た目だけ変える

最も手軽で、データに影響を与えないのが「書式」プロパティを使う方法です。

テーブルに保存されている数値(「1」など)はそのままで、画面や印刷したときの見た目だけを「0001」に変えられます。

**設定方法**

1. テーブルのデザインビューを開く
2. 対象の数値フィールドを選択
3. 下の「フィールドプロパティ」にある「書式」欄に、表示したい桁数分の「0」を入力
– 4桁なら `0000` と入力

**メリット**
– データは数値型のまま保たれるので、並べ替えや計算で困らない
– フォームやレポートでも同じように設定できる
– 単に「見た目を整えたい」だけなら、この方法が一番おすすめ!

2. 【よく使う】Format関数で文字列に変換

クエリでデータを加工したり、「A-0001」みたいに他の文字と組み合わせたいときは、**Format関数**を使います。

ExcelのTEXT関数に似た働きをする関数です。

**基本の書き方**

“`
Format([フィールド名], “0000”)
“`

**使用例**

クエリのフィールド欄に次のように書きます:

“`
社員番号: Format([社員ID], “00000”)
“`

これで、数値の「123」が文字列の「00123」として表示されます。

**メリット**
– CSVファイルに出力するときも書式が保たれる
– 文字列との結合が簡単にできる

**注意点**
– 結果が文字列になるので、並べ替えると「1, 10, 11, 2, 20…」という順番になってしまうことがある
– ソートするときは元の数値フィールドを使うと安心

3. 【昔ながらの方法】Right関数で切り取る

**Right関数**を使った、ちょっと古典的だけど確実な方法もあります。

先に数値の前に「0」をたくさんくっつけて、右側から必要な桁数だけ取り出すという考え方です。

**書き方**

“`
Right(“0000” & [フィールド名], 4)
“`

**仕組み**
1. [フィールド名]が「12」だとすると、まず「000012」という文字列を作る
2. その右側から4文字を取り出す → 「0012」になる

Format関数があれば十分な気もしますが、古いAccessを使っている場合や、プログラミング経験がある人には、このロジックの方がわかりやすいこともあります。

どの方法を選べばいい?使い分けのポイント

3つの方法には、それぞれ向き不向きがあります。

間違った方法を選ぶと、後で集計がおかしくなったり、並び順がバラバラになったりするので要注意です。

| 方法 | こんなときに使う | データの型 |
|——|—————–|———–|
| **書式プロパティ** | Access内のフォームやレポートで見た目を整えたいとき | 数値のまま(計算OK) |
| **Format関数** | 他のシステムに出力したり、文字列と組み合わせたいとき | 文字列になる |
| **Right関数** | 桁数を厳密に固定したいとき、Format関数が使えない特殊な事情があるとき | 文字列になる |

**特に注意!**

数値が文字列になると、並べ替えが「辞書順」になります。

つまり「1, 10, 2, 20…」という並びになってしまうんです。

Format関数やRight関数で整形したフィールドで並べ替えたい場合は、元の数値フィールドを基準にするなど工夫が必要です。

【重要】Accessの端数処理はExcelと違う!

消費税の計算や按分計算など、実務では「端数をどう処理するか」が重要になってきます。

ここでExcelユーザーがよくハマるのが、「同じ関数名でも、Accessでは動きが違う」という落とし穴です。

特に「四捨五入」は要注意。

知らないと計算ミスにつながります!

小数点以下を「切り捨て」する方法

ExcelにはROUNDDOWN関数がありますが、Accessにはありません。

代わりに**Int関数**か**Fix関数**を使います。

**書き方**

“`
Int([数値])
“`

または

“`
Fix([数値])
“`

**プラスの数なら同じ結果**
– `Int(3.8)` → 3
– `Fix(3.8)` → 3

**マイナスの数だと違う**
– `Int(-3.8)` → -4(元の数より小さい整数)
– `Fix(-3.8)` → -3(単純に小数部分を削除)

普通の業務では、Fix関数(0に近づける方)を使うことが多いです。

**桁を指定して切り捨てたい場合**

Excelのように「小数第2位以下を切り捨て」みたいなことをしたいときは、こんな計算式を使います:

“`
Int([数値] * 10) / 10
“`

**仕組み**
1. 10倍して小数点を右にずらす
2. Int関数で切り捨て
3. 10で割って元の位置に戻す

小数第2位まで残したいなら100倍して100で割る、という感じです。

【超重要】AccessのRound関数は普通の四捨五入じゃない!

ここが一番の注意点です。

AccessにもRound関数はありますが、これは私たちが普段使っている「四捨五入」とは違う動きをします。

**銀行丸め(偶数丸め)という方式**

AccessのRound関数は、端数がちょうど0.5のとき、「結果が偶数になる方」に丸めます。

**例を見てみましょう**
– `Round(2.5)` → **2**(0.5を切り捨てて偶数の2に)
– `Round(3.5)` → **4**(0.5を切り上げて偶数の4に)

普通の四捨五入なら、2.5も3.5も切り上げて3と4になるはずですよね?

この「銀行丸め」は、大量のデータを扱うときに誤差を少なくする効果がありますが、請求書の計算などには向きません。

2.5円の消費税が切り捨てられて計算が合わない、なんてことになりかねません。

正しく「四捨五入」するための計算式

AccessのクエリでExcelと同じ普通の四捨五入をするには、Round関数を使わず、この計算式を使いましょう:

**整数に四捨五入**

“`
Int([数値] + 0.5)
“`

**仕組み**
– 元の数値に0.5を足してから切り捨てる
– 例:2.4 + 0.5 = 2.9 → Int → 2
– 例:2.5 + 0.5 = 3.0 → Int → 3

シンプルだけど確実な方法です!

**小数第2位を四捨五入(小数第1位まで残す)**

“`
Int([数値] * 10 + 0.5) / 10
“`

**手順**
1. 10倍して四捨五入したい桁を1の位に移動
2. 0.5を足してIntで切り捨て
3. 10で割って元の桁に戻す

この方法なら、Accessでも正確な四捨五入ができます。

まとめ

Accessで数値を扱うときは、Excelとは違うAccessのルールを理解することが大切です。

**0埋めのポイント**
– 見た目だけ整えたい → **書式プロパティ**
– データを変換したい → **Format関数**か**Right関数**

**端数処理のポイント**
– 切り捨て → Int関数やFix関数を使う(ROUNDDOWNはない)
– 四捨五入 → Round関数は使わない!`Int([数値] + 0.5)` を使う

特に端数処理は、お金の計算に関わる重要な部分です。

便利な関数がないからと諦めず、ここで紹介した計算式を活用してください。

クエリだけでなく、フォームやレポート、VBAでも使えますよ。

正しい知識を身につけて、Accessを使いこなしましょう!

広告