The CellIsUpdateable function allows us to test if a cell in a cube can be written to. If true, the function returns a 1, if false a 0.

## Syntax of CellIsUpdateable

The syntax is CellIsUpdateable(Cube, element1, element2, elementn); where:

*Cube*, is the cube you are testing,*Element1*, is an element from the first dimension of that cube that is at the intersection to be tested,*Element2*, is an element from the second dimension of that cube that is at the intersection to be tested,*Elementn*, is an element from the nth dimension of that cube that is at the intersection to be tested.

Note that the elements must be in dimension order and you must have an entry for each dimension in a cube. Obviously you can use aliases in place of elements if required.

## Usage

Typically we use CellIsUpdateable inside an If statement to test if a cell is able to be written to and then if so, to attempt to write to it, while if not, then we Skip the intersection.

Why would we use it? Using CellIsUpdateable allows us to avoid TI errors when we try to write to a rule driven cell. Thus we get clean processes that also run faster.

Example

Building on the use case above, we could use the function as follows:

`IF ( CellIsUpdateable(Sales, vYear, vMonth, vProduct, vMeasure) = 1);`

`CellPutN (50000, Sales, vYear, vMonth, vProduct, vMeasure);`

`ELSE;`

`ENDIF;`