ヘッダーロゴ

CEILING.MATH関数の使い方|指定した基準値の最も近い倍数に数値を切り上げる

CEILING.MATH(シーリング・マス)関数は、最も近い整数、または指定した基準値の最も近い倍数に数値を切り上げる関数です。

=CEILING.MATH(数値, [基準値], [モード])

ceiling_math_sample

参考:CEILING.MATH関数ドキュメントエディタヘルプ

CEILING.MATH関数の使い方. 構文

CEILING.MATH関数の構文は以下のとおりです。基本的にCEILING関数と同じ働きをする関数です。

=CEILING.MATH(数値, [基準値], [モード])

CEILING.MATH関数の構文内訳

引数 説明 注意
数値 最も近い整数に切り上げる値です。基準値を指定すると、この基準値の最も近い倍数に切り上げられます。
基準値 数値を丸めて求める倍数の基準となる値です。 [省略可: デフォルトは 1]
モード 数値が負の場合に丸める方向を指定します。0 を指定するか省略すると、0 に近い整数に切り上げられます。それ以外の場合は、0 から離れた整数に切り捨てられます。 [省略可]

CEILING.MATH関数の使い方・実行サンプル

CEILING.MATH関数にて以下のとおりに設定したときの結果を求めます。

品目 基準値 CEILING.
MATH関数
BOOK-1 1200 50 =CEILING.MATH(B2,C2)
BOOK-2 550 50 =CEILING.MATH(B3,C3)
BOOK-3 780 50 =CEILING.MATH(B4,C4)
BOOK-4 325 50 =CEILING.MATH(B5,C5)
BOOK-5 156 50 =CEILING.MATH(B6,C6)

CEILING.MATH関数で算出した結果。

品目 基準値 CEILING.
MATH関数
BOOK-1 1200 50 1200
BOOK-2 550 50 550
BOOK-3 780 50 800
BOOK-4 325 50 350
BOOK-5 156 50 200

GIFで↓

ceiling_math_sample

各B列にある値がC列の基準値を参照にCEILING.MATH関数によって切り上げられ、「50」の倍数として計算されています。

CEILING.MATH_howto

oyakun
CEILING.MATH関数にて、値の「12」が基準値の「5」によって5の倍数に切り上げられていることが分かりますね。

CEILING.MATH関数のサンプル実行結果

画像でCEILING.MATHサンプル実行結果を確認↓

CEILING_MATH_kekka

CEILING.MATH関数 × GASの使い方・サンプル

CEILING.MATH関数をGASで利用する際の、かんたんなサンプルを作成してみました。

実装する表のサンプル。

品目 必要数 セット数 CEILING.
MATH関数
AAA
BBB
CCC

実装するGAS

function CEILINGMATH() {

  var ss,sht,val01,val02,val03,val04,val05,val06,val07,val08,val09
  var array0,array1,array2

    ss = SpreadsheetApp.getActiveSpreadsheet();
    sht = ss.getActiveSheet();

    sht.getRange('B2:D4').activate();
    sht.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});

    val01 = Browser.inputBox('AAAの必要数を入力してください。',Browser.Buttons.OK_CANCEL);
    val02 = Browser.inputBox('BBBの必要数を入力してください。',Browser.Buttons.OK_CANCEL);
    val03 = Browser.inputBox('CCCの必要数を入力してください。',Browser.Buttons.OK_CANCEL);
    val04 = Browser.inputBox('AAAのセット数を入力してください。',Browser.Buttons.OK_CANCEL);
    val05 = Browser.inputBox('BBBのセット数を入力してください。',Browser.Buttons.OK_CANCEL);
    val06 = Browser.inputBox('CCCのセット数を入力してください。',Browser.Buttons.OK_CANCEL);

    if(val01 == "cancel"|| val02 == "cancel"|| val03 == "cancel"|| val04 == "cancel"|| val05 == "cancel"|| val06 == "cancel"){
      Browser.msgBox("処理を中止しました");
      return;
      } else {

      //必要数を記入
      array0 = [
        [val01],
        [val02],
        [val03],
        ];
      sht.getRange(2,2,3,1).setValues(array0);

      //セット数を記入
      array1 = [
        [val04],
        [val05],
        [val06],
        ];
      sht.getRange(2,3,3,1).setValues(array1);

      // CEILING.MATH関数をセット
      val07 = '=CEILING.MATH(B2,C2)';
      val08 = '=CEILING.MATH(B3,C3)';
      val09 = '=CEILING.MATH(B4,C4)';

      array2 = [
        [val07],
        [val08],
        [val09],
        ];
      sht.getRange(2,4,3,1).setValues(array2);
      sht.getRange(1,1).activate();
      }
    }

実行結果をGIFで

ceiling_math×GAS

oyakun
inputBoxへ必要数とセット数を入力することで、D列にセット数で切り上げとなった最低購入数が入力されたのが確認できます。

CEILING.MATH関数を使うときの注意点

注意1. 引数に数値以外の値を入力すると#VALUE!エラーを返す

CEILING.MATH関数は、引数に数値以外の値を指定すると#VALUE!エラーを返します。

以下にサンプルを記載します。

品目 基準値 CEILING.
MATH関数
品目 3a 35 #VALUE!

ceiling_math-error1

oyakun
B2に「3a」と数値以外の値を入力したことで、D2のCEILING.MATH関数の結果がエラー「#VALUE!」を返していることが分かります。
補足

CEILING.MATH関数では値・基準値のどちらでも、数値以外の値を指定することで「#VALUE!」エラーを返します。

注意2. 切り上げられた絶対値は元の値以上となる

CEILING.MATH関数では、数値の符号に関係なく切り上げられた値の絶対値は、必ず値以上になります。。また基準値の倍位数が値と等しい場合、数値は値が返されます

以下にサンプルを記載します。

基準値 CEILING.MATH関数
50 5 50

ceiling_math-error2

oyakun
値より基準値の方が小さい場合、CEILING.MATH関数の結果は値の数値を返していることが分かりますね。

注意3. 値・基準値が負のとき結果は0から遠い値に切り上げられる

CEILING.MATH関数では数値と基準値の両方・またはどちらかが負の数の場合、CEILING.MATH関数の結果は0から遠い数(より小さい数)を返します。

以下にサンプルを記載します。

基準値 CEILING.MATH関数
-45 6 -42

ceiling_math-error3

oyakun
値と基準値ともに負の数を指定したとき、CEILING.MATH関数は0から遠い値を返していることが分かります。

注意4. モードに1を指定すると0から離れた整数に切り捨てられる

CEILING.MATH関数ではモードに「1」を指定することで、値が負の数のとき0から離れた整数に切り捨てられます。

以下にサンプルを記載します。

基準値 モード CEILING.MATH関数
-45 6 1 -48
-45 6 0 -42

ceiling_math-error4

oyakun
モードが0のとき0に近い値が返され、モードが1のとき0から離れた値が返されることが分かります。ちなみにモードの引数は正の整数には影響しません。

CEILING.MATH関数の使い方. ExcelとGoogleスプレッドシートとの違い

CEILING.MATH関数は、ExcelとGoogleスプレッドシートで基本的な使い方に相違はありません

強いて言えば、Microsoft ExcelのCEILING.MATH関数のサポートページのみ以下説明が記載されていることでしょう。

数値は 9.99E+307 未満で、-2.229E-308 より大きい必要があります。

https://support.microsoft.com/ja-jp/office/ceiling-math-%E9%96%A2%E6%95%B0-80f95d2f-b499-4eee-9f16-f795a8e306c8

CEILING.MATH関数の使い方 まとめ

CEILING.MATH関数の使い方でした。 有効に活用するには、

  • 引数に数値以外を指定しない
  • 値に負の数を指定しない
  • 基準値に負の数を指定するときはモードに0か1を指定する

といった感じですね。

CEILING関数と同じくFLOOR関数と合わせて使うことで、15分単位や30分単位での切り上げや切り捨てしたときの時間を求めることができます。

またモード値に「0」を指定することで、値が負の数だとしても「0に近い値」を求めることが可能です。

oyakun
値に負の数を指定したいとき、CEILING関数の代わりとしてCEILING.MATH関数は有効ですね。

関連記事: CEILING関数の使い方|値を基準値の倍数に切り上げる
関連記事: BITAND関数の使い方| 数値2つのビット単位の論理積を返す
関連記事: BETAINV関数の使い方|β分布区間に対しβ累積分布の逆関数の値を返す
関連記事: BETADIST関数の使い方|ベータ分布関数で定義された特定値の確率を返す

  • この記事を書いた人
  • 最新記事

OYAKUN

30代半ば♂妻・子3人の5人で日々激戦中。Google app script&VBA初心者が自分の備忘録を兼ねて「スプレッドシート、Excel、WordPress、plugin」の設定等、主にブログやアフィリエイト周辺のtipsを背伸びしながらご紹介しています。

© 2021 OYAKUDACHI.XYZ