ISO.CEILING function
PRO
The ISO.CEILING
function in Jspreadsheet Formulas Pro is a useful tool for rounding numbers upwards. This function will round a number to the closest integer, or alternatively, to a specified multiple that you choose. Importantly, the result will always round away from zero, in compliance with ISO rounding rules, making it reliable for consistent numerical calculations.
Documentation
Rounds a number up to the nearest integer or to the nearest multiple of a specified significance, and returns a result that is on the ISO list of paper sizes.
Category
Math and trigonometry
Syntax
ISO.CEILING(number, [significance])
Parameter | Description |
---|---|
number |
The number that you want to round. |
significance |
Optional. The multiple to which you want to round. If omitted, defaults to 1. |
Behavior
The ISO.CEILING
function rounds a number up, to the nearest multiple of significance. The difference between this function and the CEILING
function is that ISO.CEILING
always rounds away from zero. Here's how it handles different input:
- Empty cells: If the provided reference cell is empty, the function treats it as zero.
- Text: If the cell reference contains text, the function will return a
#VALUE!
error. - Booleans: Boolean values are treated as numbers, with TRUE being equivalent to 1 and FALSE equivalent to 0.
- Errors: If the cell reference contains an error, the function will propagate the error.
- Negative Numbers: The function rounds negative numbers away from zero, meaning they become less negative.
Common Errors
Error | Description |
---|---|
#VALUE! | This error is returned if any of the provided arguments are non-numeric. |
#NUM! | This error is returned if the significance provided is zero. |
Best practices
- Always ensure that the inputs to the
ISO.CEILING
function are numeric. Non-numeric values will result in a#VALUE!
error.- Be aware that the function treats empty cells as zero. Make sure your referenced cells contain relevant data.
- Use absolute cell references if you want to copy the function across multiple cells.
- Keep in mind that
ISO.CEILING
always rounds away from zero, even for negative numbers. This is a key difference betweenISO.CEILING
and other rounding functions.
Usage
A few examples using the ISO.CEILING function.
ISO.CEILING(2.7) ➜ 3 // rounds up to nearest integer
ISO.CEILING(5.5, 0.5) ➜ 5.5 // rounds up to nearest multiple of 0.5
ISO.CEILING(123, 10) ➜ 130 // rounds up to nearest multiple of 10
ISO.CEILING(A1:A3, 5) ➜ array of values rounded up to nearest multiple of 5
Interactive Spreadsheet Demo
<html>
<script src="https://jspreadsheet.com/v11/jspreadsheet.js"></script>
<script src="https://jsuites.net/v5/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v5/jsuites.css" type="text/css" />
<link rel="stylesheet" href="https://jspreadsheet.com/v11/jspreadsheet.css" type="text/css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons" />
<script src="https://cdn.jsdelivr.net/npm/@jspreadsheet/formula-pro/dist/index.min.js"></script>
<div id="spreadsheet"></div>
<script>
// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('NDQ3ZDhkMTA2NDdiZDVjMzAwZTUyNTg4NTgwMjljMTY5Yjc0NjY3MmEzMjI3OTg2NWU5YWI2NGMwNjA4OTliMjRiM2ZiNzM2NzI2Yzc3Mzk5ZTQ5N2RkZDFjZGNhODE1MGNhMTRiODBiZmRjZjM2NjRlM2EwMWZjYTY1ZDI2OWEsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01ETXhNRE01TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');
// Set the extensions
jspreadsheet.setExtensions({ formula });
// Create a new spreadsheet
jspreadsheet(document.getElementById('spreadsheet'), {
worksheets: [{
data: [
[
"Number",
"Significance",
"ISO.CEILING Result"
],
[
2.3,
"",
"=ISO.CEILING(A2)"
],
[
4.7,
0.5,
"=ISO.CEILING(A3,B3)"
],
[
8.2,
2,
"=ISO.CEILING(A4,B4)"
],
[
15.6,
"",
"=ISO.CEILING(A5)"
]
]
}]
});
</script>
</html>
import React, { useRef } from "react";
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/react";
import formula from "@jspreadsheet/formula-pro";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
// Set license
jspreadsheet.setLicense('NDQ3ZDhkMTA2NDdiZDVjMzAwZTUyNTg4NTgwMjljMTY5Yjc0NjY3MmEzMjI3OTg2NWU5YWI2NGMwNjA4OTliMjRiM2ZiNzM2NzI2Yzc3Mzk5ZTQ5N2RkZDFjZGNhODE1MGNhMTRiODBiZmRjZjM2NjRlM2EwMWZjYTY1ZDI2OWEsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01ETXhNRE01TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');
// Set the extensions
jspreadsheet.setExtensions({ formula });
export default function App() {
// Spreadsheet array of worksheets
const spreadsheet = useRef();
// Worksheet data
const data = [
[
"Number",
"Significance",
"ISO.CEILING Result"
],
[
2.3,
"",
"=ISO.CEILING(A2)"
],
[
4.7,
0.5,
"=ISO.CEILING(A3,B3)"
],
[
8.2,
2,
"=ISO.CEILING(A4,B4)"
],
[
15.6,
"",
"=ISO.CEILING(A5)"
]
];
// Render component
return (
<Spreadsheet ref={spreadsheet}>
<Worksheet data={data} />
</Spreadsheet>
);
}
<template>
<Spreadsheet ref="spreadsheet">
<Worksheet :data="data" />
</Spreadsheet>
</template>
<script>
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/vue";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
import formula from "@jspreadsheet/formula-pro";
// Set license
jspreadsheet.setLicense('NDQ3ZDhkMTA2NDdiZDVjMzAwZTUyNTg4NTgwMjljMTY5Yjc0NjY3MmEzMjI3OTg2NWU5YWI2NGMwNjA4OTliMjRiM2ZiNzM2NzI2Yzc3Mzk5ZTQ5N2RkZDFjZGNhODE1MGNhMTRiODBiZmRjZjM2NjRlM2EwMWZjYTY1ZDI2OWEsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01ETXhNRE01TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');
// Set the extensions
jspreadsheet.setExtensions({ formula });
export default {
components: {
Spreadsheet,
Worksheet,
},
data() {
// Worksheet data
const data = [
[
"Number",
"Significance",
"ISO.CEILING Result"
],
[
2.3,
"",
"=ISO.CEILING(A2)"
],
[
4.7,
0.5,
"=ISO.CEILING(A3,B3)"
],
[
8.2,
2,
"=ISO.CEILING(A4,B4)"
],
[
15.6,
"",
"=ISO.CEILING(A5)"
]
]
return {
data
};
}
}
</script>
import { Component, ViewChild, ElementRef } from "@angular/core";
import jspreadsheet from "jspreadsheet";
import * as formula from "@jspreadsheet/formula-pro";
// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('NDQ3ZDhkMTA2NDdiZDVjMzAwZTUyNTg4NTgwMjljMTY5Yjc0NjY3MmEzMjI3OTg2NWU5YWI2NGMwNjA4OTliMjRiM2ZiNzM2NzI2Yzc3Mzk5ZTQ5N2RkZDFjZGNhODE1MGNhMTRiODBiZmRjZjM2NjRlM2EwMWZjYTY1ZDI2OWEsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01ETXhNRE01TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');
// Set the extensions
jspreadsheet.setExtensions({ formula });
@Component({
standalone: true,
selector: "app-root",
template: `<div #spreadsheet></div>`
})
export class AppComponent {
@ViewChild("spreadsheet") spreadsheet: ElementRef;
// Worksheets
worksheets: jspreadsheet.worksheetInstance[];
// Create a new data grid
ngAfterViewInit() {
// Create spreadsheet
this.worksheets = jspreadsheet(this.spreadsheet.nativeElement, {
worksheets: [{
data: [
[
"Number",
"Significance",
"ISO.CEILING Result"
],
[
2.3,
"",
"=ISO.CEILING(A2)"
],
[
4.7,
0.5,
"=ISO.CEILING(A3,B3)"
],
[
8.2,
2,
"=ISO.CEILING(A4,B4)"
],
[
15.6,
"",
"=ISO.CEILING(A5)"
]
]
}]
});
}
}