A spreadsheet formula is an equation that performs a calculation on the numbers, functions and values of one or more cells. A formula is associated with a cell or a cell range. It is accessed using the CellRange.Formula property.

Formula Type |
Description |

Normal |
Use the CellRange.Formula property to assign a formula to a cell or each cell in a range. Refer to the Formulas example section for more information on how to create formulas. |

Shared |
A *shared formula* can be used to optimize calculations and file size. A shared formula is the equivalent of applying the same formula to a cell range. Shared formula is created automatically when you assign a formula string to an array of cells. A specified formula is associated with each cell contained within the specified cell range. |

Array |
An *array formula* allows you to perform calculations with arrays of cells. Use the CellRange.ArrayFormula property or ArrayFormulaCollection.Add method to include array formulas in a worksheet. An array formula for a cell or cell range is accessible via the CellRange.ArrayFormula property. To find an array formula range that includes a particular cell, use the Cell.GetArrayFormulaRange method. For more information on array formulas, see the Array Formulas document. |

A formula is a string expression that begins with an equal (=) sign. A formula can contain the constants, operators, cell references, calls to functions, and names.

Consider the following formula, which calculates the mass of a sphere.

**=4/3***PI()*(A2^3)*Density

- “4” and “3” are
**numeric constants**. Although they are written as integers, the division operator (/) interprets them as being real numbers, i.e., 4.0 and 3.0. As a result, the calculation produces a precise result that is not rounded to an integer.
- “/” is the division operator.
- “PI()” results in a call to the PI function, which returns the value of π.
- “A2” is a cell reference, which returns the value within that specific cell.
- “3” is a
**numeric constant**.
- “^” is the caret
**operator**, which raises the left operand to the power of the right operand.
**Parentheses** are used for grouping and changing the operator precedence.
- “
*” is the asterisk (*) **operator**, which performs multiplication.
- The
**Density** is a defined name within the worksheet that can represent a cell range, a function or a constant.

The formula is calculated from left to right, according to the operator precedence. To change the order of calculation you can enclose a portion of the formula in parentheses.

## Calculation

To recalculate all formulas in a workbook, call the IWorkbook.Calculate method. The DocumentSettings.Calculation property provides access to calculation options. Calculation results are placed in the Range.Value property of corresponding cells.

You can also calculate a formula and leave the document unchanged by using the IWorkbook.Evaluate method.

The FormulaEngine is an object that provides the capability to calculate and parse worksheet formulas. It includes a built-in formula parser, as well as the flexibility to evaluate formulas in any range of any worksheet. See the Formula Engine topic for more information.

See Also