Excelで数値を扱っていると「必ず奇数に揃えたい」という場面にぶつかることがあります。ペアで配らず1人余らせたいとき、帳票を左右対称にしたくないとき、印刷レイアウトを奇数ページで終わらせたいときなど、意外と実務では登場する要件です。
そんなときに使えるのが ODD関数 です。1つの引数を渡すだけで、数値を最も近い奇数へ切り上げてくれます。この記事では、ODD関数の基本構文から負の数のクセ、EVEN関数との使い分け、CEILING / MROUND / ROUNDUP など他の丸め関数との比較までをまとめて解説します。
この記事はこんな人におすすめです。
- 数値を奇数に揃える方法を知りたい
- ODD関数とEVEN関数の違いを整理したい
- 負の数でODD関数がどう動くのか確認したい
- CEILING / MROUND / ROUNDUP とどう使い分ければいいか知りたい
ODD関数とは?基本構文と役割
ODD(オッド)関数は、指定した数値を「0から離れる方向」で最も近い奇数に切り上げる関数です。英語の odd(奇数の)がそのまま名前になっています。
構文
=ODD(数値)
| 引数 | 必須 | 内容 |
|---|---|---|
| 数値 | 必須 | 奇数に切り上げたい数値。セル参照や数式もOK |
引数は1つだけで、EVEN関数と同じくとてもシンプルな構造です。Excel 2007以降すべてのバージョンとMicrosoft 365、Googleスプレッドシートで使えます。
ポイントは「四捨五入ではなく必ず切り上げ」「常に奇数を返す」という2点です。たとえば =ODD(2) は 3、=ODD(4.1) は 5 になります。すでに奇数である =ODD(7) はそのまま 7 が返ります。
ODD関数の基本的な使い方
実際にどう動くかを、正の数・負の数・0・小数の4パターンで確認していきましょう。
正の数を奇数に切り上げる
=ODD(2) → 3
=ODD(6) → 7
=ODD(4.2) → 5
偶数や小数を渡すと、次の奇数へ切り上がります。「次の奇数」とは、数直線上で0から離れる方向で最初に現れる奇数のことです。
すでに奇数の場合はそのまま
=ODD(7) → 7
=ODD(11) → 11
すでに奇数の整数を渡した場合は、値がそのまま返ります。無駄に +2 されたりはしないので安心してください。
0を渡した場合
=ODD(0) → 1
0は偶数として扱われ、結果は 1 になります。少し意外ですが、「0から離れる方向に切り上げる」というルールに従えば 1 が正しい答えです。
負の数の挙動に注意
ODD関数の最大のクセはここです。負の数は「0から離れる方向」に切り上がります。
=ODD(-2) → -3
=ODD(-4.1) → -5
=ODD(-7) → -7
=ODD(-2) の結果は -1 ではなく -3 です。数直線で見ると -2 から遠ざかる側、つまり絶対値が大きくなる方向の奇数が返されます。CEILING関数や ROUNDUP関数とは丸め方向が異なるので、負の数を扱う場合は必ずテストしてから使うことをおすすめします。
セル参照で使う
実務ではセル参照で渡す場面がほとんどです。
=ODD(A2)
A2に商品個数や必要枚数が入っているとき、隣のセルにこの式を入れるだけで奇数に揃った値が得られます。
ODD関数の実務活用パターン
ODD関数が「奇数に切り上げる」だけの関数だと聞くと、使いどころが限られるように感じるかもしれません。でも実務では意外といろいろな場面で活躍します。
梱包・パッケージ単位の調整
商品を奇数単位でセット販売するケースを想像してください。3本入り・5本入り・7本入りなど、ペアにならない本数で売りたい場面です。B列に必要本数、C列に実際の梱包数を入れるとします。
=ODD(B2)
B2が 6 なら C2は 7、B2が 10 なら C2は 11 になります。必要数以上を確保しつつ、奇数本でパッケージできます。
冊子・印刷ページの奇数化
両面印刷された冊子で、本文を必ず奇数ページで終わらせたい(=裏表紙の前が空白にならないように揃えたい)場合があります。
=ODD(総ページ数)
原稿が12ページなら13ページ、14ページなら15ページに切り上がります。製本レイアウトで「奇数ページで区切る」という要件を満たしたいときに便利です。
グループ分けで余りを出したい
参加者を奇数人のチームに分けたい、あるいは「ペアにならない1人を必ず作りたい」場合にも使えます。
=ODD(参加者数 / チーム数)
均等割りのあと、奇数に切り上げておけば最低人数が奇数で揃います。トーナメント表や席決めの補助列として使うと楽です。
VBAから呼ぶ
ODD関数はワークシート関数ですが、VBAからも WorksheetFunction.Odd 経由で呼び出せます。
Dim n As Long
n = WorksheetFunction.Odd(Range("A1").Value)
マクロで加工した数値を「奇数単位に丸めてから出力」したい場面で使えます。セル式を増やさず、VBA側で完結させたいときに便利です。
EVEN関数との違いと使い分け
ODD関数と対になるのが EVEN関数です。EVEN関数は数値を「最も近い偶数」に切り上げます。構文も使い方もODDとまったく同じで、返す値だけが逆になります。
比較表
| 数値 | ODD(数値) | EVEN(数値) |
|---|---|---|
| 0 | 1 | 0 |
| 1 | 1 | 2 |
| 2 | 3 | 2 |
| 3.4 | 5 | 4 |
| 6 | 7 | 6 |
| -2 | -3 | -2 |
| -3.1 | -5 | -4 |
使い分けの指針
- ペアにしたくない・1つ余らせたい → ODD
- ペアで揃えたい・2個ずつ配りたい → EVEN
- 奇数列・偶数列の塗り分けに使う補助列 → 用途に応じて選択
どちらも「0から離れる方向に切り上げる」動きは共通です。EVEN関数の詳細はEVEN関数の使い方で整理しています。
関連する丸め関数との比較(CEILING / MROUND / ROUNDUP)
「奇数に切り上げる」だけを見ると ODD関数は特殊ですが、「切り上げ系の仲間」として他の丸め関数と比較すると位置付けがはっきりします。
| 関数 | 引数 | 丸め方向 | 丸め単位 |
|---|---|---|---|
| ODD | 1 | 0から離れる方向 | 次の奇数 |
| EVEN | 1 | 0から離れる方向 | 次の偶数 |
| CEILING | 2 | 0から離れる方向 | 指定した倍数 |
| MROUND | 2 | 四捨五入相当 | 指定した倍数 |
| ROUNDUP | 2 | 0から離れる方向 | 指定した桁 |
| FLOOR | 2 | 0に近づく方向 | 指定した倍数 |
ODD と CEILING はどう違う?
CEILING関数は「指定した倍数」に切り上げます。=CEILING(A1, 2) なら2の倍数、=CEILING(A1, 100) なら100単位です。ODD関数は倍数ではなく「奇数」という数列に揃える点が独特です。CEILING関数で奇数を作ろうとしても、倍数という指定では再現できません。
ODD と MROUND はどう違う?
MROUND関数は指定倍数で四捨五入相当の丸めを行います。切り上げ専用のODD関数とは方向が違います。また MROUND も倍数単位なので、奇数列そのものは作れません。
ODD と ROUNDUP はどう違う?
ROUNDUP関数は「桁」単位での切り上げです。=ROUNDUP(4.2, 0) は 5、=ROUNDUP(4.2, -1) は 10。小数点以下を削りたいとき向きで、ODDの「必ず奇数」という制約はありません。
要するに、ODD関数の立ち位置は「奇数列専用の切り上げ」で、倍数や桁を指定したいときは CEILING / MROUND / ROUNDUP に任せる、という整理になります。
ODD関数のエラーと注意点
#VALUE! エラー
数値として認識できない文字列を渡すと #VALUE! が返ります。
=ODD("abc") → #VALUE!
=ODD("5") → #VALUE!(全角数字)
セル参照先に全角数字や余分なスペースが混入していないかを確認しましょう。全角を半角に揃えたい場合は ASC関数でラップしてから渡すと解決することがあります。
負の数の方向を誤解しない
先述のとおり、=ODD(-2) は -1 ではなく -3 です。「絶対値で奇数に切り上げてから符号を戻す」という別の挙動が欲しい場合は、以下のように書き換えます。
=SIGN(A1) * ODD(ABS(A1))
ただし、これは ODD関数の本来の動きではありません。要件に応じて使い分けてください。
奇数・偶数の判定には使わない
「A1が奇数かどうか調べたい」だけならODD関数は不向きです。判定には MOD関数を使います。
=MOD(A1, 2)=1 → TRUE なら奇数
ODD関数はあくまで「切り上げ」であって「判定」ではありません。ここを混同しないようにしましょう。
まとめ
ODD関数は「数値を最も近い奇数に切り上げる」というシンプルな丸め関数です。最後にポイントを整理します。
- 構文は
=ODD(数値)の1引数のみ - 偶数や小数は0から離れる方向で次の奇数に切り上がる
- すでに奇数ならそのまま、0を渡すと1になる
- 負の数は
-2 → -3のように絶対値が大きい側へ進む - 倍数や桁で丸めたいときは CEILING / MROUND / ROUNDUP に任せる
- 奇数・偶数の判定は MOD関数が専門
梱包単位の調整や印刷ページ数の奇数化など、出番は地味ですが確実にあります。=ODD(A1) を1つ書いてみて、まずは挙動に慣れるところから始めてみてください。
