スプレッドシートで「この数を奇数に揃えたいんだけど、どうすればいいの?」と思ったことはありませんか?
3人1組のチーム分けで人数を揃えるとき、奇数ページだけ印刷設定を変えたいとき。手作業で奇数に直すのは面倒ですし、ミスも起きがちです。
そんなときに便利なのがODD関数です。数値を奇数に切り上げてくれるシンプルな関数ですよ。
この記事では基本の書き方からEVEN関数との違い、CEILING・MROUNDとの使い分けまで解説します。
ODD関数とは?
ODD関数(読み方: オッド関数)は、数値をいちばん近い奇数に切り上げる関数です。
名前は英語の「odd(奇数の・風変わりな)」に由来しています。たとえば「4」にODD関数をかけると「5」になります。すでに奇数の「3」を渡すとそのまま「3」です。
ODD関数にできることをまとめると、次のとおりです。
- 偶数や小数を次の奇数に切り上げる
- すでに奇数ならそのままの値を返す
- 0を渡すと1が返る(0は偶数なので次の奇数)
- 負の数は0から離れる方向に切り上げる
NOTE
ODD関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
ODD関数の書き方(構文と引数)
基本構文
=ODD(値)
カッコの中に「奇数に切り上げたい数値」を指定します。引数は1つだけです。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | 奇数に切り上げたい数値やセル参照、数式 |
直接入力・セル参照・他の関数の結果など、数値として扱えるものなら何でも指定できます。
ODD関数の基本的な使い方
偶数を奇数に切り上げる
もっともシンプルな使い方です。
=ODD(4)
結果は「5」です。4は偶数なので、次の奇数である5に切り上がります。
=ODD(6.3)
結果は「7」です。小数も同じように、次の奇数まで切り上げられます。
すでに奇数の場合
=ODD(7)
結果は「7」です。すでに奇数なら、そのままの値が返ります。
セル参照で指定する
A1に「10.5」が入っているとします。
=ODD(A1)
結果は「11」です。セル参照でも同じように使えます。実務ではこちらの書き方がメインになるでしょう。
0を渡した場合
=ODD(0)
結果は「1」です。0は偶数なので、次の奇数である1が返ります。EVEN関数では0を渡すと0が返るので、ここが大きな違いです。
実務でのODD関数活用例
奇数単位の発注数を求める
資材やパーツが奇数個入りのパッケージで販売されている場合、必要数を奇数に切り上げて発注数を出せます。B2に必要数が入っているとします。
=ODD(B2)
B2が「20」なら結果は「21」です。必ず奇数に切り上がるので、不足を防げますよ。
安全余裕を加えた予備数量の算出
在庫管理で「最低でも奇数個は確保したい」という場面にも使えます。現在の在庫数がA2、必要最低数がB2に入っているとします。
=ODD(B2 - A2)
差分を奇数に切り上げることで、端数の過不足を防げます。たとえば不足数が「4」なら「5」に切り上がるので、1つ余裕を持って補充できますよ。
見積金額を奇数万円単位に丸める
概算の見積書で「奇数万円に揃えたい」ケースです。C2に金額が入っているとします。
=ODD(C2 / 10000) * 10000
C2が「42,000」なら、42000 / 10000 = 4.2 → ODD(4.2) = 5 → 5 * 10000 = 50,000円です。万円単位で奇数に丸めたいときに便利ですよ。
奇数・偶数の判定はISODD関数で
ODD関数は「奇数に切り上げる」関数であって、「奇数かどうかを判定する」関数ではありません。判定したいときはISODD関数を使いましょう。
=ISODD(A1)
A1が奇数ならTRUE、偶数ならFALSEが返ります。偶数の判定にはISEVEN関数もありますよ。
MOD関数を使う方法もあります。=MOD(A1, 2) の結果が「1」なら奇数、「0」なら偶数です。
| 目的 | 使う関数 | 数式例 | 戻り値 |
|---|---|---|---|
| 奇数に切り上げる | ODD | =ODD(4) | 5 |
| 奇数かどうか判定 | ISODD | =ISODD(4) | FALSE |
| 偶数かどうか判定 | ISEVEN | =ISEVEN(4) | TRUE |
| 奇偶を数値で取得 | MOD | =MOD(4, 2) | 0(偶数) |
ODD関数の負の数の扱い
ここがODD関数でもっとも注意すべきポイントです。
負の数は「0から離れる方向」に切り上がる
ODD関数は正の数も負の数も、0から遠ざかる方向で切り上げます。数直線で見ると、絶対値が大きくなる側の奇数を返します。
=ODD(-2)
結果は「-3」です。「-1」ではない点に注意してください。-2より絶対値が大きい奇数は-3です。
正の数と負の数の挙動比較
| 元の値 | ODD(値) | 説明 |
|---|---|---|
| 4 | 5 | 次の奇数に切り上げ |
| 6.3 | 7 | 次の奇数に切り上げ |
| 7 | 7 | すでに奇数なのでそのまま |
| 0 | 1 | 偶数なので次の奇数 |
| -2 | -3 | 0から離れる方向に切り上げ |
| -6.3 | -7 | 0から離れる方向に切り上げ |
| -7 | -7 | すでに奇数なのでそのまま |
INT関数が「負の無限大方向」に丸めるのと似た考え方です。ODD関数は必ず奇数を返す点が違います。
よくあるエラーと対処法
ODD関数はシンプルな関数ですが、エラーが出ることもあります。
| エラー | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 値に文字列が入っている | セル参照先が数値かどうか確認する |
| #ERROR! | 構文ミス(カッコ忘れ等) | 数式の入力内容を見直す |
| 結果が想定と違う | 負の数の方向を誤解 | 「0から離れる方向」に切り上がる仕様を確認 |
文字列が混在しているとき
ODD関数に文字列を渡すと#VALUE!エラーになります。
=ODD("abc")
セル参照先が数値かどうか不安なときは、ISNUMBER関数で事前にチェックできます。
=IF(ISNUMBER(A1), ODD(A1), "数値を入力してください")
負の数の結果が想定と違うとき
=ODD(-2) が「-1」ではなく「-3」になるのは正常な動作です。0に近い奇数が欲しい場合は、絶対値をODD関数で処理してから符号を戻す方法があります。
=SIGN(A1) * ODD(ABS(A1))
ただしこの書き方は、正の数の切り上げと方向が逆になります。用途に合わせて使い分けてください。
EVEN関数・CEILING関数との違い・使い分け
ODD関数と混同しやすい関数を比較表で整理します。
| 関数 | 丸め方向 | 丸め先 | 引数の数 | 用途 |
|---|---|---|---|---|
| ODD | 切り上げ | 奇数 | 1 | 奇数に切り上げたいとき |
| EVEN | 切り上げ | 偶数 | 1 | 偶数に切り上げたいとき |
| CEILING | 切り上げ | 指定した倍数 | 2 | 任意の倍数に切り上げたいとき |
| FLOOR | 切り捨て | 指定した倍数 | 2 | 任意の倍数に切り捨てたいとき |
| MROUND | 四捨五入 | 指定した倍数 | 2 | 倍数単位で四捨五入したいとき |
| ROUNDUP | 切り上げ | 指定した桁数 | 2 | 桁数を指定して切り上げたいとき |
| INT | 切り捨て | 整数 | 1 | 小数を整数に切り捨てたいとき |
ODDとEVENの違い
ODD関数とEVEN関数は、切り上げ先が「奇数」か「偶数」かの違いだけです。構文も引数の数も同じです。
| 元の値 | ODD | EVEN |
|---|---|---|
| 3 | 3 | 4 |
| 4 | 5 | 4 |
| 5.1 | 7 | 6 |
| 0 | 1 | 0 |
| -3 | -3 | -4 |
0を渡したときの違いがポイントです。ODD(0)は「1」(0は偶数なので次の奇数)、EVEN(0)は「0」(0は偶数なのでそのまま)です。
ODDとCEILINGの使い分け
ODD関数は「奇数への切り上げ」専用です。CEILING関数は任意の倍数を指定できます。
=ODD(4) → 5(奇数に切り上げ)
=CEILING(4, 5) → 5(5の倍数に切り上げ)
=CEILING(4, 10) → 10(10の倍数に切り上げ)
「奇数に切り上げたい」だけならODD関数が引数1つでシンプルです。「5の倍数」「10の倍数」など自由に指定したいならCEILING関数を使いましょう。逆に切り捨てたい場合はFLOOR関数が使えます。
TIP
CEILING関数で「奇数に切り上げ」を再現するのは簡単ではありません。奇数に切り上げたい場面ではODD関数一択です。
ODDとMROUNDの使い分け
MROUND関数は指定した倍数に「四捨五入」で丸めます。ODD関数は「切り上げ」のみです。
=ODD(4) → 5(切り上げ)
=ODD(2) → 3(切り上げ)
ODD関数は常に奇数以上に切り上がります。四捨五入のような「近い方に丸める」動作はしません。
よくある質問(FAQ)
Q. ODD(0)が0じゃなくて1になるのはなぜ?
A. 0は偶数なので「奇数に切り上げる」と1になります。EVEN(0)が0になるのとは逆です。0を基準値に使う計算では注意してください。
Q. 奇数かどうかを判定したい場合は?
A. ODD関数は「切り上げ」です。判定には =ISODD(A1) を使います。奇数ならTRUE、偶数ならFALSEが返ります。
Q. 負の数でODD(-2)が-3になるのが不思議に感じる。
A. ODD関数は「0から離れる方向」に切り上げます。-2より0から遠い奇数は-3なので、そちらが返ります。0に近い奇数がほしい場合は =SIGN(A1) * ODD(ABS(A1)) で対応できます(正負が逆になるケースがある点は確認ください)。
Excelとの違い
ODD関数はExcelとGoogleスプレッドシートで完全に同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =ODD(数値) | =ODD(値) |
| 動作 | 奇数に切り上げ | 奇数に切り上げ |
| 負の数 | -2→-3 | -2→-3 |
| 0 | 1 | 1 |
引数名の表記が若干異なるだけで、機能は完全に同じです。ExcelとSheetsでファイルを共有しても計算結果がずれることはありません。
TIP
Excel版の解説はExcelのODD関数の使い方の記事で詳しく紹介しています。丸め関数の使い分けについてはExcelの丸め関数10種を完全比較もチェックしてみてください。
まとめ
ODD関数は、数値を奇数に切り上げるシンプルな関数です。
ポイントを整理します。
- 構文は
=ODD(値)の1引数だけ - すでに奇数ならそのまま、偶数や小数は次の奇数に切り上がる
- 0を渡すと1が返る(EVEN関数の0→0とは異なる)
- 負の数は「0から離れる方向」に切り上がる(-2 → -3)
- 「奇数に揃えたい」→ ODD関数、「偶数に揃えたい」→ EVEN関数
- 奇数の判定にはISODD関数、偶数の判定にはISEVEN関数を使う
まずは =ODD(A1) でセルの値を奇数に変換するところから試してみてください。
