Spread32 Help

(C) 2001 Bye Design Ltd

Basics
Menu options
Formulas
Functions
Charts
Macros
Objects


Basics

A spreadsheet file is made up of pages, called "sheets". There are different types of sheets: Worksheets - which are used for storing data and doing calculations, Chart sheets - which are used for displaying graphs and charts, and Macro sheets - which are used for storing the instructions that make up custom (user-defined) functions and commands.

A worksheet consists of many boxes, called "cells", arranged in a grid. There are 65536 rows and 256 columns of these. The rows are number from 1 to 65536, and the columns are named after the letters of the alphabet, going from A to Z, then AA, AB ... AZ, BA, BB ... etc all the way up to IV, which is the 256th column.

An individual row is referred to by its row number, an individual column is referred to by its column name, and an individual cell is referred to by the column name and row number that it is in. For example the cell in the top left corner of a worksheet is referred to as cell A1, because it is in column A and row 1.

The sheets are referred to by their sheet names. When new sheets are added they are given default names such as Sheet1, Sheet2 etc. You can change these names by using the Format Sheet Rename menu option. The sheet names are displayed on tabs at the bottom of the screen. To select a particular sheet to be displayed, either tap on the sheet name tab, or use the arrow buttons in the bottom left corner.

The currently active, or 'cursor' cell is displayed with a thick black border around it. If there is a formula in this cell then it will be displayed in the formula bar at the top of the screen, and if you want to enter a formula then this is the cell where the formula will be stored. To move the cursor to a different cell you can use the up/down/left/right arrow keys on your keyboard, or use your mouse or pointer to click on a different cell.

Most operations on the spreadsheet affect the currently selected cells, called the selection. Normally there is only one cell selected, that is the cursor cell. For many operations you will want to select more than one cell. You can do this by moving the cursor to one corner of the area to be selected (see above) and then either hold down the shift key and use the arrow keys to extend the selection as far as necessary, or drag your mouse or pointer across the screen to the far corner of the area to be selected. The selected cells will be displayed with their colours reversed.


Menu options

File menu
Edit menu
Insert menu
Format menu


File menu

NewOpens a new blank workbook.
OpenDisplays the File Open dialog box for you to choose a spreadsheet file to open.
RecentDisplays a list of the 9 most recently used (i.e. opened or saved) files as a shortcut for opening them.
CloseCloses the current workbook, after prompting you to save any changes.
SaveSaves the current workbook back into the file it was opened from. If this spreadsheet was created with the File New menu option rather than opened with the File Open menu option, then you will be asked for a file name to save it under.
Save asDisplays the File Save dialog box for you to choose a name and location for saving the current workbook.
WindowDisplays a list of the currently open workbooks and allows you to select a different one as the active workbook.
PrintPrints the currently displayed sheet.
ExitThis shuts down the program, after prompting you to save any changed workbooks.


Edit menu

UndoThis option undoes the last change you made to the spreadsheet, should you make a mistake or just change your mind. There are currently 16 levels of Undo, that is, the program remembers the last 16 things that you did and can step back through them using this menu option.
CutThis option removes the contents of the currently selected cells and places them on the clipboard, so that you can paste them somewhere else. Only one selection can be stored on the clipboard at a time, so this will replace whatever was previously on the clipboard.
CopyThis option copies the contents of the currently selected cells and places them on the clipboard, so that you can paste them somewhere else. Only one selection can be stored on the clipboard at a time, so this will replace whatever was previously on the clipboard.
PasteThis option takes the contents of the clipboard and puts it into the currently selected cells.
Paste SpecialWhen cells are cut or copied to the clipboard, the program stores not only what is displayed in the cell, but also the formula that is in the cell and the formatting. The Paste menu option will paste all of this information into the target cells, but this menu option allows you to paste just some of that information. A dialog box is displayed for you to choose what is pasted.
Fill
DownCopies the top row of the selection into the other rows of the selection.
RightCopies the left column of the selection into the other columns of the selection.
UpCopies the bottom row of the selection into the other rows of the selection.
LeftCopies the right column of the selection into the other columns of the selection.
SeriesDisplays a dialog box that allows you to fill the current selection with a series of numbers or dates.
Clear
AllRemoves the contents and formatting of the currently selected cells.
FormatsRemoves only the formatting of the currently selected cells, leaves the contents unchanged.
ContentsRemoves only the contents of the currently selected cells, leaves the formatting unchanged.
CommentsRemoves any comments associated with the currently selected cells.
DeleteIf entire rows or columns have been selected then this menu option will delete the selected rows or columns. Otherwise (that is, one or more cells have been selected) a dialog box will be displayed containing 4 options: (1) Shift cells left - delete the selected cells and move the cells on the right of them to the left to take their places, (2) Shift cells up - delete the selected cells and move the cells below them up to take their places, (3) Entire row - delete the entire rows that the selection spans, the rows below will be moved up, (4) Entire column - delete the entire columns that the selection spans, the columns to the right will be moved left.
Delete SheetDelete the currently displayed worksheet, chart or macro sheet. If there is only one worksheet in your spreadsheet file, you will not be allowed to delete it.
Move or Copy SheetAllows you to move or copy the current sheet to a different position in the file.
FindAllows you to look for cells that contain specified things. This menu option displays a dialog box asking you 4 things: (1) the text that you want to search for, (2) whether to look for it in the formulas (what was typed into the cells) or in the values (what is displayed in the cells), (3) whether the search is to be case-sensitive (whether you want upper and lower case letters to be treated as different), and (4) whether to find cells that are equal to the text that you typed or just contain the text that you typed. Entering these and pressing Find next will move the cursor to the first cell after the current cursor position that matches your request. The dialog box stays on the screen until it is cancelled, so repeated pressing of the Find next button will take you to each of the cells that match your request.
ReplaceAllows you to search for text in cell formulas and optionally replace one or all occurrences.
Go ToAllows you to move directly to another part of the worksheet. This menu option displays a dialog box that asks you for a cell reference. Entering the reference and pressing OK will move the cursor to the specified cell.


Insert menu

CellsIf entire rows or columns have been selected then this menu option will insert the selected rows or columns. Otherwise (that is, one or more cells have been selected) a dialog box will be displayed containing 4 options: (1) Shift cells right - the cells to the right of the selection will be moved to the right to make room for the new cells, (2) Shift cells down - the cells below the selection will be moved down to make room for the new cells, (3) Entire row - the entire rows that the selection spans will be inserted, (4) Entire column - the entire columns that the selection spans will be inserted.
RowsInserts one or more new rows where the selection is.
ColumnsInserts one or more new columns where the selection is.
WorksheetInserts a blank worksheet at the end of the spreadsheet file.
Chart
SheetInserts a new chart sheet at the end of the spreadsheet file. If no cells have been selected then the Format Chart dialog box will be displayed, otherwise a default column chart will be built using the selected data.
ObjectInserts a new chart object on the current worksheet. Drag the pointer across the worksheet to indicate where the chart should be placed. If no cells have been selected then the Format Chart dialog box will be displayed, otherwise a default column chart will be built using the selected data.
MacroInserts a blank macro sheet at the end of the spreadsheet file. Macro sheets are used for storing custom (user-defined) functions and commands.
FunctionDisplays a dialog box from which you can select a function to be inserted into the current cell formula.
Name
DefineDisplays a dialog box showing the names that have been defined for references in this spreadsheet file. It allows you to add new names, change the references of existing names, or to delete names that are no longer required.
CommentThis option allows you to add a comment to the currently selected cell. If there is already a comment attached to the cell, then this option will be changed to Edit comment, and the existing comment will be displayed for you to change. You can press the Escape key to leave without entering or changing the comment, or you can click outside the comment box to save the changes. When a cell contains a comment, there will be a comment indicator in the top-right corner of the cell. To display a comment you can either use this menu option, or you can click and hold the pointer on the cell for 1/2 a second, the comment will be displayed until you move or release the pointer. To remove a comment from a cell, use the Edit Clear Comments menu option.
Control
LabelInserts a label.
Group boxInserts a group box.
Command buttonInserts a command button.
Check boxInserts a check box.
Option buttonInserts an option button.
List boxInserts a list box.
Combo boxInserts a combo box.
Scroll barInserts a horizontal or vertical scroll bar.
Spin controlInserts a spin control.
Drawing
LineInserts a line.
RectangleInserts a rectangle.
OvalInserts an oval.
Text boxInserts a text box.

Format menu

CellsDisplays a dialog box that allows you to change the way that the contents of the selected cells are displayed. You can change the way that numbers, amounts of money, dates, times and text are formatted. You can change the colour of the text, the pattern and colour of the cell background, and the type and colour of the cell borders.
Row
HeightDisplays a dialog box showing the current height of the selected rows in points (the unit of measurement used for text), and allows you to change it. You can also change the row height by dragging the separator between the row numbers.
AutoFitSets the row height to the largest required for the values displayed in the row. You can also autofit a row by double-clicking on the separator below the row number.
HideHides the selected rows.
UnhideUnhides the selected rows. Because you cannot select individual hidden rows, you will have to use the Edit Go To menu option to move the cursor to the required row, or select all the rows from the one above the hidden rows to the one below, before using this option.
Column
WidthDisplays a dialog box showing the current width of the selected columns in characters, and allows you to change it. You can also change the column width by dragging the separator between the column headings.
AutoFitSets the column width to the largest required for the values displayed in the selected cells. You can also autofit a column by double-clicking on the separator to the right of the column heading.
HideHides the selected columns.
UnhideUnhides the selected columns. Because you cannot select individual hidden columns, you will have to use the Edit Go To menu option to move the cursor to the required column, or select all the columns from the one to the left of the hidden columns to the one to the right, before using this option.
Standard WidthDisplays a dialog box showing the default width of the columns on the current sheet, and allows you to change it.
Sheet
RenameDisplays a dialog box showing the current sheet name, and allows you to change it.
HideAllows you to hide the currently displayed sheet.
UnhideAllows you to select a hidden sheet to be displayed.
GridlinesAllows you to turn the gridlines on and off for the current sheet.
HeadingsAllows you to turn the row and column headings on and off for the current sheet.
ZoomAllows you to set the zoom level for the current sheet.
ProtectAllows you to turn protection on and off for the current sheet. When protection is on, only cells that are not locked (set by using the Format Cells menu option) can be changed.
FormulasAllows you to toggle the display of the cell formulas and cell values for the current sheet.
Tab colorAllows you to change the tab color for the current sheet.
FileAllows you to select whether the Vertical scrollbar, Horizontal scrollbar and Sheet tabs are to be displayed for sheets in the current file.
ProgramAllows you to select whether the Toolbar, Formula bar and Status bar are to be displayed by the program.
ConditionalAllows you to select alternative formatting for cells depending on conditions.
FreezeOn a worksheet, this allows you to fix the currently displayed row and/or column headings so that they will not move when the sheet is scrolled. When you use this option, the rows above the cursor cell and the columns to the left of it will be fixed. For example, if you want the top row to stay the same when you page down through the sheet, move the cursor to cell A2 and then use this menu option, the row above cell A2, which is row 1, will stay displayed when you page through the sheet, and as there are no columns to the left of cell A2, no columns will be fixed. When this option has been used, the menu option changes to 'Unfreeze' which allows you to free the rows and columns again.
Data
SortDisplays a dialog box that allows you to sort the currently selected cells, either by rows or columns, in ascending or descending order.
AutoFilterAllows you to filter the spreadsheet rows by specifying selection criteria.
FormAllows you to display, update and search a table of data one record at a time.
ValidationAllows you to restrict the range of values that can be entered into a cell, or display a drop-down list to choose a value from, and display input and error messages.
Goal seekAllows you to set a cell to a specific value by changing another cell.
ChartOn a chart sheet, this displays a dialog box that allows you to change the type of the chart, the data that is used, and the way in which the chart is formatted.
ControlDisplays a dialog box that allows you to set the attributes of the currently selected Control object.
DrawingDisplays a dialog box that allows you to set the attributes of the currently selected Drawing object.

Formulas

To enter text or number information into the spreadsheet, just move the cursor to the required cell, type the text or number in the formula bar and press the enter key. In most spreadsheets you will want to do some calculations with this text and number information. This is done using formulas. Formulas are entered into cells using an equal sign followed by the expression to be evaluated. The result of the calculation will be displayed in the cell that contains the formula. Examples:

=2+2Will display the value 4.
="Hello " & "world!"Will display Hello world!.
=SUM(A1:A10)Will add up the values in cells A1 to A10 and display the total.

Note that although you will usually see function names (like SUM above) in upper case, you can enter them in upper or lower case. The same applies to cell names, you could enter A1 or a1 to refer to the top left cell.

Many formulas, like SUM, allow you to specify not just one cell but a whole block of cells as a parameter. This is done by specifying the name of the cell at one corner of the block, followed by a colon, followed by the name of the cell at the opposite corner. For example the 2x2 square of cells in the top left corner of a worksheet could be specified by A1:B2 (or A2:B1, or B1:A2 etc, it doesn't matter which corner is specified first).

To refer to cells on other sheets, prefix the cell or range reference with the sheet name followed by an exclamation mark, for example Sheet1!A1 or Sheet1!A1:B2. If the sheet name contains spaces, you will need to put it in single quotes, like this: 'Other sheet'!A1.

Some formulas, such as =MMULT(A1:B2,C1:D2) (which multiplies two matrices together), can return more than one value. These are called Array formulas. To use these, you will first need to select a block of cells of the correct size and shape for the expected results, then type your formula into the formula bar, and enter it not by pressing the Enter key, but by holding down the Shift and Control keys and then pressing the Enter key. This tells the program that this is an Array formula.


Functions

Database
Date/time
Engineering
Financial
Information
Logical
Lookup/reference
Math/trigonometry
Statistical
Text
Macro control
Macro command
DDE/external


Database functions

[ ] indicates optional parameters

DAVERAGE(database_range, field, criteria_range)
DCOUNT(database_range, [field], criteria_range)
DCOUNTA(database_range, [field], criteria_range)
DGET(database_range, field, criteria_range)
DMAX(database_range, field, criteria_range)
DMIN(database_range, field, criteria_range)
DPRODUCT(database_range, field, criteria_range)
DSTDEV(database_range, field, criteria_range)
DSTDEVP(database_range, field, criteria_range)
DSUM(database_range, field, criteria_range)
DVAR(database_range, field, criteria_range)
DVARP(database_range, field, criteria_range)


Date/time functions

[ ] indicates optional parameters

DATE(year, month, day)
DATEDIF(date1, date2, units)
DATEVALUE(date_text)
DAY(serial_number)
DAYS360(start_date, end_date, [method])
EDATE(start_date, months)
EOMONTH(start_date, months)
HOUR(serial_number)
MINUTE(serial_number)
MONTH(serial_number)
NETWORKDAYS(start_date, end_date, [holidays])
NOW()
SECOND(serial_number)
TIME(hour, minute, second)
TIMEVALUE(time_text)
TODAY()
WEEKDAY(serial_number, [return_type])
WEEKNUM(serial_number, [return_type])
WORKDAY(start_date, number_days, [holidays])
YEAR(serial_number)
YEARFRAC(start_date, end_date, [basis])


Engineering functions

[ ] indicates optional parameters

BESSELI(x, n)
BESSELJ(x, n)
BESSELK(x, n)
BESSELY(x, n)
BIN2DEC(number)
BIN2HEX(number, [places])
BIN2OCT(number, [places])
COMPLEX(real_num, imag_num, [suffix])
CONVERT(number, from_unit, to_unit)
DEC2BIN(number, [places])
DEC2HEX(number, [places])
DEC2OCT(number, [places])
DELTA(number1, [number2])
ERF(lower_limit, [upper_limit])
ERFC(x)
FACTDOUBLE(number)
GESTEP(number, [step])
HEX2BIN(number, [places])
HEX2DEC(number)
HEX2OCT(number, [places])
IMABS(inumber)
IMAGINARY(inumber)
IMARGUMENT(inumber)
IMCONJUGATE(inumber)
IMCOS(inumber)
IMDIV(inumber1, inumber2)
IMEXP(inumber)
IMLN(inumber)
IMLOG10(inumber)
IMLOG2(inumber)
IMPOWER(inumber, power)
IMPRODUCT(inumber1, [inumber2, ...])
IMREAL(inumber)
IMSIN(inumber)
IMSQRT(inumber)
IMSUB(inumber1, inumber2)
IMSUM(inumber1, [inumber2, ...])
OCT2BIN(number, [places])
OCT2DEC(number)
OCT2HEX(number, [places])


Financial functions

[ ] indicates optional parameters

ACCRINT(issue_date, first_interest_date, settlement_date, rate, par, frequency, [basis])
ACCRINTM(issue_date, maturity_date, rate, [par], [basis])
AMORDEGRC(cost, purchase_date, first_period_date, salvage, period, rate, [basis])
AMORLINC(cost, purchase_date, first_period_date, salvage, period, rate, [basis])
COUPDAYBS(settlement_date, maturity_date, frequency, [basis])
COUPDAYS(settlement_date, maturity_date, frequency, [basis])
COUPDAYSNC(settlement_date, maturity_date, frequency, [basis])
COUPNCD(settlement_date, maturity_date, frequency, [basis])
COUPNUM(settlement_date, maturity_date, frequency, [basis])
COUPPCD(settlement_date, maturity_date, frequency, [basis])
CUMIPMT(rate, nper, pv, start_period, end_period, type)
CUMPRINC(rate, nper, pv, start_period, end_period, type)
DB(cost, salvage, life, period, [month])
DDB(cost, salvage, life, period, [factor])
DISC(settlement_date, maturity_date, pr, redemption, [basis])
DOLLARDE(fractional_dollar, fraction)
DOLLARFR(decimal_dollar, fraction)
DURATION(settlement_date, maturity_date, coupon, yield, frequency, [basis])
EFFECT(nominal_rate, npery)
FV(rate, term, [payment], [pv], [type])
FVSCHEDULE(principal, schedule_range)
INTRATE(settlement_date, maturity_date, investment_amount, redemption_amount, [basis])
IPMT(rate, period, term, pv, [fv], [type])
IRR(values_range, [guess])
ISPMT(rate, period, term, pv)
MDURATION(settlement_date, maturity_date, coupon, yield, frequency, [basis])
MIRR(values_range, finance_rate, reinvest_rate)
NOMINAL(effect_rate, npery)
NPER(rate, payment, pv, [fv], [type])
NPV(rate, value1, [value2, ...])
ODDFPRICE(settlement_date, maturity_date, issue_date, first_coupon_date, rate, yield, redemption, frequency, [basis])
ODDFYIELD(settlement_date, maturity_date, issue_date, first_coupon_date, rate, price, redemption, frequency, [basis])
ODDLPRICE(settlement_date, maturity_date, last_coupon_date, rate, yield, redemption, frequency, [basis])
ODDLYIELD(settlement_date, maturity_date, last_coupon_date, rate, price, redemption, frequency, [basis])
PMT(rate, term, [pv], [fv], [type])
PPMT(rate, period, term, pv, [fv], [type])
PRICE(settlement_date, maturity_date, rate, yield, redemption, frequency, [basis])
PRICEDISC(settlement_date, maturity_date, discount, redemption, [basis])
PRICEMAT(settlement_date, maturity_date, issue_date, rate, yield, [basis])
PV(rate, term, [payment], [fv], [type])
RATE(term, payment, pv, [fv], [type], [guess])
RECEIVED(settlement_date, maturity_date, investment, discount, [basis])
SLN(cost, salvage, life)
SYD(cost, salvage, life, period)
TBILLEQ(settlement_date, maturity_date, discount)
TBILLPRICE(settlement_date, maturity_date, discount)
TBILLYIELD(settlement_date, maturity_date, price)
VDB(cost, salvage, life, start_period, end_period, [factor], [no_switch])
XIRR(values_range, dates_range, [guess])
XNPV(rate, values_range, dates_range)
YIELD(settlement_date, maturity_date, rate, price, redemption, frequency, [basis])
YIELDDISC(settlement_date, maturity_date, price, redemption, [basis])
YIELDMAT(settlement_date, maturity_date, issue_date, rate, price, [basis])


Information functions

[ ] indicates optional parameters

CELL(info_type, [reference])
COUNTBLANK(range)
ERROR.TYPE(error_val)
INFO(type_text)
ISBLANK(value)
ISERR(value)
ISERROR(value)
ISEVEN(number)
ISLOGICAL(value)
ISNA(value)
ISNONTEXT(value)
ISNUMBER(value)
ISODD(number)
ISREF(value)
ISTEXT(value)
N(value)
NA()
TYPE(value)


Logical functions

[ ] indicates optional parameters

AND(logical1, [logical2, ...])
FALSE()
IF(logical_test, [value_if_true], [value_if_false])
NOT(logical)
OR(logical1, [logical2, ...])
TRUE()


Lookup/reference functions

[ ] indicates optional parameters

ADDRESS(row_num, column_num, [abs_num], [a1], [sheet_text])
AREAS(reference)
CHOOSE(index_num, value1, [value2, ...])
COLUMN([reference])
COLUMNS(range)
HLOOKUP(lookup_value, table_range, row_index_num, [range_lookup])
HYPERLINK(link_location, [friendly_name])
INDEX(reference, [row_num], [col_num], [area_num])
INDIRECT(ref_text, [a1])
LOOKUP(lookup_value, lookup_range, [result_range])
MATCH(lookup_value, lookup_range, [match_type])
OFFSET(reference, rows, cols, [height], [width])
ROW([reference])
ROWS(range)
TRANSPOSE(array)
VLOOKUP(lookup_value, table_range, col_index_num, [range_lookup])


Math/trigonometry functions

[ ] indicates optional parameters

ABS(number)
ACOS(number)
ACOSH(number)
ASIN(number)
ASINH(number)
ATAN(number)
ATAN2(x_num, y_num)
ATANH(number)
CEILING(number, significance)
COMBIN(number, number_chosen)
COS(number)
COSH(number)
COUNTIF(range, criteria)
DEGREES(angle)
EVEN(number)
EXP(number)
FACT(number)
FLOOR(number, significance)
GCD(number1, [number2, ...])
INT(number)
LCM(number1, [number2, ...])
LN(number)
LOG(number, [base])
LOG10(number)
MDETERM(range)
MINVERSE(array)
MMULT(array1, array2)
MOD(number, divisor)
MROUND(number, multiple)
MULTINOMIAL(number1, [number2, ...])
ODD(number)
PI()
POWER(number, power)
PRODUCT(number1, [number2, ...])
QUOTIENT(numerator, denominator)
RADIANS(angle)
RAND()
RANDBETWEEN(smallest, largest)
ROMAN(number, [form])
ROUND(number, num_digits)
ROUNDDOWN(number, [num_digits])
ROUNDUP(number, [num_digits])
SERIESSUM(x, n, m, coefficients)
SIGN(number)
SIN(number)
SINH(number)
SQRT(number)
SQRTPI(number)
SUBTOTAL(function_num, ref1, [ref2, ...])
SUM(number1, [number2, ...])
SUMIF(range, criteria, [sum_range])
SUMPRODUCT(range1, [range2, ...])
SUMSQ(number1, [number2, ...])
SUMX2MY2(x_range, y_range)
SUMX2PY2(x_range, y_range)
SUMXMY2(x_range, y_range)
TAN(number)
TANH(number)
TRUNC(number, [num_digits])


Statistical functions

[ ] indicates optional parameters

AVEDEV(number1, [number2, ...])
AVERAGE(number1, [number2, ...])
AVERAGEA(value1, [value2, ...])
BETADIST(x, alpha, beta, [A], [B])
BETAINV(probability, alpha, beta, [A], [B])
BINOMDIST(number_successes, trials, probability, cumulative)
CHIDIST(x, degrees_freedom)
CHIINV(probability, degrees_freedom)
CHITEST(actual_range, expected_range)
CONFIDENCE(alpha, standard_deviation, size)
CORREL(range1, range2)
COUNT(value1, [value2, ...])
COUNTA(value1, [value2, ...])
COVAR(range1, range2)
CRITBINOM(trials, probability_s, alpha)
DEVSQ(number1, [number2, ...])
EXPONDIST(x, lambda, cumulative)
FDIST(x, degrees_freedom1, degrees_freedom2)
FINV(probability, degrees_freedom1, degrees_freedom2)
FISHER(x)
FISHERINV(y)
FORECAST(x, y_range, x_range)
FREQUENCY(data_array, bins_array)
FTEST(range1, range2)
GAMMADIST(x, alpha, beta, cumulative)
GAMMAINV(probability, alpha, beta)
GAMMALN(x)
GEOMEAN(number1, [number2, ...])
GROWTH(known_ys, [known_xs], [new_xs], [const])
HARMEAN(number1, [number2, ...])
HYPGEOMDIST(sample_s, number_sample, population_s, number_population)
INTERCEPT(y_range, x_range)
KURT(number1, [number2, ...])
LARGE(range, k)
LINEST(known_ys, [known_xs], [const], [stats])
LOGEST(known_ys, [known_xs], [const], [stats])
LOGINV(probability, mean, standard_dev)
LOGNORMDIST(x, mean, standard_dev)
MAX(number1, [number2, ...])
MAXA(value1, [value2, ...])
MEDIAN(number1, [number2, ...])
MIN(number1, [number2, ...])
MINA(value1, [value2, ...])
MODE(number1, [number2, ...])
NEGBINOMDIST(number_f, number_s, probability_s)
NORMDIST(x, mean, standard_dev, cumulative)
NORMINV(probability, mean, standard_dev)
NORMSDIST(z)
NORMSINV(probability)
PEARSON(range1, range2)
PERCENTILE(range, k)
PERCENTRANK(range, x, [significance])
PERMUT(number, number_chosen)
POISSON(x, mean, cumulative)
PROB(x_range, prob_range, lower_limit, [upper_limit])
QUARTILE(range, quart)
RANK(number, range, [order])
RSQ(y_range, x_range)
SKEW(number1, [number2, ...])
SLOPE(y_range, x_range)
SMALL(range, k)
STANDARDIZE(x, mean, standard_dev)
STDEV(number1, [number2, ...])
STDEVA(value1, [value2, ...])
STDEVP(number1, [number2, ...])
STDEVPA(value1, [value2, ...])
STEYX(y_range, x_range)
TDIST(x, degrees_freedom, tails)
TINV(probability, degrees_freedom)
TREND(known_ys, [known_xs], [new_xs], [const])
TRIMMEAN(range, percent)
TTEST(range1, range2, tails, type)
VAR(number1, [number2, ...])
VARA(value1, [value2, ...])
VARP(number1, [number2, ...])
VARPA(value1, [value2, ...])
WEIBULL(x, alpha, beta, cumulative)
ZTEST(range, x, [sigma])


Text functions

[ ] indicates optional parameters

CHAR(number)
CLEAN(text)
CODE(text)
CONCATENATE(text1, [text2, ...])
DOLLAR(number, [decimals])
EXACT(text1, text2)
FIND(find_text, within_text, [start_num])
FIXED(number, [decimals], [no_commas])
LEFT(text, [num_chars])
LEN(text)
LOWER(text)
MID(text, start_num, num_chars)
PROPER(text)
REPLACE(old_text, start_num, num_chars, new_text)
REPT(text, number_times)
RIGHT(text, [num_chars])
SEARCH(find_text, within_text, [start_num])
SUBSTITUTE(text, old_text, new_text, [instance_num])
T(value)
TEXT(value, format_text)
TRIM(text)
UPPER(text)
VALUE(text)


Macro control functions

[ ] indicates optional parameters

ARGUMENT([name_text], [type], [reference])
BREAK()
ELSE()
ELSE.IF(logical_test)
END.IF()
GOTO(reference)
IF(logical_test)
NEXT()
RETURN([value])
SET.NAME(name_text, [value])
SET.VALUE(reference, values)
WAIT([serial_number])
WHILE(logical_test)


Macro command functions

[ ] indicates optional parameters

ACTIVATE([window_text], [pane_num])
ACTIVE.CELL()
ALERT(message_text, [type_num], [help_ref])
BEEP([tone_num])
CALCULATE.DOCUMENT()
CALCULATE.NOW()
CALLER()
CLEAR([type_num])
COLUMN.WIDTH([width_num], [reference], [standard], [type_num], [standard_num])
COPY([from_reference], [to_reference])
CUT([from_reference], [to_reference])
DATA.FORM()
DATA.SERIES([rowcol], [type_num], [date_num], [step_value], [stop_value], [trend])
DEREF(reference)
EDIT.DELETE([shift_num])
EVALUATE(formula_text)
FILL.DOWN()
FILL.LEFT()
FILL.RIGHT()
FILL.UP()
FONT.PROPERTIES([font], [font_style], [size], [strikethrough], [superscript], [subscript], [outline], [shadow], [underline], [color], [normal], [background], [start_char], [char_count])
FORMAT.NUMBER(format_text)
FORMULA(formula_text, [reference])
FORMULA.GOTO([reference], [corner])
GET.OBJECT(type_num, [object_id], [start_num], [count_num], [item_index])
GOAL.SEEK(target_cell, target_value, variable_cell)
INPUT(message_text, [type_num], [title_text], [default], [x_pos], [y_pos], [help_ref])
INSERT([shift_num])
ON.SHEET([sheet_text], [macro_text], [activate_logical])
PASTE([to_reference])
PASTE.SPECIAL([paste_num], [operation_num], [skip_blanks], [transpose])
PROTECT.DOCUMENT([contents], [windows], [password], [objects], [scenarios])
REFTEXT(reference, [a1])
ROW.HEIGHT([height_num], [reference], [standard_height], [type_num])
SELECT([selection], [active_cell])
SELECT.END(direction_num)
SELECT.LAST.CELL()
SELECTION()
SORT([orientation], [key1], [order1], [key2], [order2], [key3], [order3], [header], [custom], [case])
TEXTREF(text, [a1])
WORKBOOK.ACTIVATE(sheet_name)
WORKBOOK.DELETE([sheet_name])
WORKBOOK.INSERT([type_num])
WORKBOOK.NAME(old_sheet_name, new_sheet_name)


DDE/external functions

[ ] indicates optional parameters

CALL(module_text, procedure, type_text, [argument1, ...])


Database functions

DAVERAGE(database_range, field, criteria_range)

Returns the average of the values of a specified field in a database range.

database_rangeA reference to the cells that contain the database (including the column headings). It is usually easiest to use a defined name for this.
fieldThe column number or column heading name of the values of which you want to find the average.
criteria_rangeA reference to cells that contain the criteria that you want to use when selecting records from the database to process. You can specify the same range as used for the database_range parameter if you want to select all the rows.


DCOUNT(database_range, [field], criteria_range)

Returns the count of the number of rows in the database that meet the selection criteria and where the specified field contains a number.

database_rangeA reference to the cells that contain the database (including the column headings). It is usually easiest to use a defined name for this.
fieldThe column number or column heading name of the values that you want to count. If this parameter is omitted then the function will return the number of database rows that meet the selection criteria.
criteria_rangeA reference to cells that contain the criteria that you want to use when selecting records from the database to process. You can specify the same range as used for the database_range parameter if you want to select all the rows.


DCOUNTA(database_range, [field], criteria_range)

Returns the count of the number of rows in the database that meet the selection criteria and where the specified field is not blank.

database_rangeA reference to the cells that contain the database (including the column headings). It is usually easiest to use a defined name for this.
fieldThe column number or column heading name of the values that you want to count. If this parameter is omitted then the function will return the number of database rows that meet the selection criteria.
criteria_rangeA reference to cells that contain the criteria that you want to use when selecting records from the database to process. You can specify the same range as used for the database_range parameter if you want to select all the rows.


DGET(database_range, field, criteria_range)

Returns the value of a specified field from the row in the database range that meets the selection criteria. There should be one and only one row that meets the selection criteria. If no rows meet the criteria then the error #VALUE! is returned. If more than one row meets the criteria then the error #NUM! is returned.

database_rangeA reference to the cells that contain the database (including the column headings). It is usually easiest to use a defined name for this.
fieldThe column number or column heading name of the value that you want to retrieve.
criteria_rangeA reference to cells that contain the criteria that you want to use when selecting records from the database to process. You can specify the same range as used for the database_range parameter if you want to select all the rows.


DMAX(database_range, field, criteria_range)

Returns the maximum of the values of a specified field in a database range.

database_rangeA reference to the cells that contain the database (including the column headings). It is usually easiest to use a defined name for this.
fieldThe column number or column heading name of the values of which you want to find the maximum.
criteria_rangeA reference to cells that contain the criteria that you want to use when selecting records from the database to process. You can specify the same range as used for the database_range parameter if you want to select all the rows.


DMIN(database_range, field, criteria_range)

Returns the minimum of the values of a specified field in a database range.

database_rangeA reference to the cells that contain the database (including the column headings). It is usually easiest to use a defined name for this.
fieldThe column number or column heading name of the values of which you want to find the minimum.
criteria_rangeA reference to cells that contain the criteria that you want to use when selecting records from the database to process. You can specify the same range as used for the database_range parameter if you want to select all the rows.


DPRODUCT(database_range, field, criteria_range)

Returns the product of the values of a specified field in a database range.

database_rangeA reference to the cells that contain the database (including the column headings). It is usually easiest to use a defined name for this.
fieldThe column number or column heading name of the values that you want to multiply together.
criteria_rangeA reference to cells that contain the criteria that you want to use when selecting records from the database to process. You can specify the same range as used for the database_range parameter if you want to select all the rows.


DSTDEV(database_range, field, criteria_range)

Returns the standard deviation (based on a population sample) of the values of a specified field in a database range.

database_rangeA reference to the cells that contain the database (including the column headings). It is usually easiest to use a defined name for this.
fieldThe column number or column heading name of the values of which you want to find the standard deviation.
criteria_rangeA reference to cells that contain the criteria that you want to use when selecting records from the database to process. You can specify the same range as used for the database_range parameter if you want to select all the rows.


DSTDEVP(database_range, field, criteria_range)

Returns the standard deviation (based on the entire population) of the values of a specified field in a database range.

database_rangeA reference to the cells that contain the database (including the column headings). It is usually easiest to use a defined name for this.
fieldThe column number or column heading name of the values of which you want to find the standard deviation.
criteria_rangeA reference to cells that contain the criteria that you want to use when selecting records from the database to process. You can specify the same range as used for the database_range parameter if you want to select all the rows.


DSUM(database_range, field, criteria_range)

Returns the sum of the values of a specified field in a database range.

database_rangeA reference to the cells that contain the database (including the column headings). It is usually easiest to use a defined name for this.
fieldThe column number or column heading name of the values of which you want to find the sum.
criteria_rangeA reference to cells that contain the criteria that you want to use when selecting records from the database to process. You can specify the same range as used for the database_range parameter if you want to select all the rows.


DVAR(database_range, field, criteria_range)

Returns the variance (based on a population sample) of the values of a specified field in a database range.

database_rangeA reference to the cells that contain the database (including the column headings). It is usually easiest to use a defined name for this.
fieldThe column number or column heading name of the values of which you want to find the variance.
criteria_rangeA reference to cells that contain the criteria that you want to use when selecting records from the database to process. You can specify the same range as used for the database_range parameter if you want to select all the rows.


DVARP(database_range, field, criteria_range)

Returns the variance (based on the entire population) of the values of a specified field in a database range.

database_rangeA reference to the cells that contain the database (including the column headings). It is usually easiest to use a defined name for this.
fieldThe column number or column heading name of the values of which you want to find the variance.
criteria_rangeA reference to cells that contain the criteria that you want to use when selecting records from the database to process. You can specify the same range as used for the database_range parameter if you want to select all the rows.


Date/time functions

DATE(year, month, day)

Returns the date value corresponding to a specified year, month and day. Note that only dates from 1900 onwards can be used.

yearThe year number. If you enter a number less than 1900 then 1900 will be added to the value.
monthThe month number. Preferably between 1 and 12.
dayThe day number. Preferably between 1 and 31.


DATEDIF(date1, date2, units)

Returns the difference between two dates in the units that you specify.

date1The 'from' date.
date2The 'to' date. This should be greater than or equal to the 'from' date.
unitsThe units in which you want the difference expressed. The possible values are:
"y"The difference in years.
"m"The difference in months.
"d"The difference in days.
"ym"The difference in months, dropping any whole years (the result will always be between 0 and 11).
"yd"The difference in days, dropping any whole years (the result will always be between 0 and 365).
"md"The difference in days, dropping any whole months (the result will always be between 0 and 30).


DATEVALUE(date_text)

Returns the date value that corresponds to a date in text form. Note that only dates from 1900 onwards can be used. You should not need to use this function, as dates are automatically converted from text to date values when they are used in formulas.

date_textThe date that you want to convert. It can contain date separators and/or a month name. If only the day and month is supplied then the year will default to the current year.


DAY(serial_number)

Returns the day number (between 1 and 31) from the specified date value.

serial_numberThe date value from which you want to extract the day number.


DAYS360(start_date, end_date, [method])

Returns the number of days between two dates using a 360-day year (30 day months).

start_dateThe 'from' date.
end_dateThe 'to' date.
methodIndicates how to deal with end dates that are the 31st of the month (the start date will always be moved from the 31st to the 30th). The options are:
FALSEUS (NASD) method (if start date is less than the 30th then set end date to 1st of next month, else set end date to 30th).
TRUEEuropean method (end date moved form 31st to 30th).
If this parameter is omitted it defaults to FALSE.


EDATE(start_date, months)

Returns the date that is the start date plus or minus a number of months.

start_dateThe 'from' date.
monthsThe number of months to be added or subtracted.


EOMONTH(start_date, months)

Returns the date that is the last day of the month calculated from the start date plus or minus a number of months.

start_dateThe 'from' date.
monthsThe number of months to be added or subtracted.


HOUR(serial_number)

Returns the hour number (between 0 and 23) from the specified date/time value.

serial_numberThe date/time value from which you want to extract the hour number.


MINUTE(serial_number)

Returns the minute number (between 0 and 59) from the specified date/time value.

serial_numberThe date/time value from which you want to extract the minute number.


MONTH(serial_number)

Returns the month number (between 1 and 12) from the specified date/time value.

serial_numberThe date/time value from which you want to extract the month number.


NETWORKDAYS(start_date, end_date, [holidays])

Returns the number of working days (weekdays) between the start and end dates, excluding any holidays.

start_dateThe 'from' date.
end_dateThe 'to' date.
holidaysA date or array of dates or a reference to a list of dates that are to be treated as non-working days.


NOW()

Returns the serial number corresponding to the current date and time.



SECOND(serial_number)

Returns the second number (between 0 and 59) from the specified date/time value.

serial_numberThe date/time value from which you want to extract the second number.


TIME(hour, minute, second)

Returns the serial number corresponding to a specified hour, minute and second.

hourThe hour number. Preferably between 0 and 23.
minuteThe minute number. Preferably between 0 and 59.
secondThe second number. Preferably between 0 and 59.


TIMEVALUE(time_text)

Returns the time value that corresponds to a time in text form. You should not need to use this function, as times are automatically converted from text to time values when they are used in formulas.

time_textThe time that you want to convert. It can contain time separators and/or AM/PM designators. If seconds or minutes and seconds are not specified then they will default to zero.


TODAY()

Returns the serial number corresponding to the current date.



WEEKDAY(serial_number, [return_type])

Returns a number representing the day of the week of a given date.

serial_numberThe date/time value from which you want the day of the week.
return_typeThe range of values returned and what they represent. The possible values are:
1From 1 to 7, where 1 = Sunday and 7 = Saturday.
2From 1 to 7, where 1 = Monday and 7 = Sunday.
3From 0 to 6, where 0 = Monday and 6 = Sunday.
If this parameter is omitted it defaults to 1.


WEEKNUM(serial_number, [return_type])

Returns the week of the year of a given date.

serial_numberThe date/time value from which you want the week number.
return_typeThe method used to calculate the week number. The possible values are:
0International Standard (ISO) week numbers. Weeks begin on Monday. Week 1 is the first week where 4 or more days are in the specified year.
1Microsoft week numbers. Weeks begin on Sunday. Week 1 is the week that contains January 1st.
2Microsoft week numbers. Weeks begin on Monday. Week 1 is the week that contains January 1st.
If this parameter is omitted it defaults to 1.


WORKDAY(start_date, number_days, [holidays])

Returns the working day that is the start date plus or minus a number of working days (weekdays), excluding any holidays.

start_dateThe 'from' date.
number_daysThe number of working days to add or subtract.
holidaysA date or array of dates or a reference to a list of dates that are to be treated as non-working days.


YEAR(serial_number)

Returns the year number (greater than or equal to 1900) from the specified date/time value.

serial_numberThe date/time value from which you want to extract the year number.


YEARFRAC(start_date, end_date, [basis])

Returns the fraction of a year represented by the difference between two dates.

start_dateThe 'from' date.
end_dateThe 'to' date.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


Engineering functions

BESSELI(x, n)

Returns the value of the modified Bessel function.

xThe value at which you want to evaluate the function.
nThe order of the Bessel function.


BESSELJ(x, n)

Returns the value of the Bessel function.

xThe value at which you want to evaluate the function.
nThe order of the Bessel function.


BESSELK(x, n)

Returns the value of the modified Bessel function.

xThe value at which you want to evaluate the function.
nThe order of the Bessel function.


BESSELY(x, n)

Returns the value of the Bessel function.

xThe value at which you want to evaluate the function.
nThe order of the Bessel function.


BIN2DEC(number)

Returns the decimal equivalent of a binary number.

numberThe binary number to be converted. It can be a number or a string up to 10 (binary) digits long.


BIN2HEX(number, [places])

Returns a string that is the hexadecimal equivalent of a binary number.

numberThe binary number to be converted. It can be a number or a string up to 10 (binary) digits long.
placesThe minimum length required in the returned string. If the string is less than this length then it will be padded with leading zeros. If this parameter is omitted it defaults to zero.


BIN2OCT(number, [places])

Returns a string that is the octal equivalent of a binary number.

numberThe binary number to be converted. It can be a number or a string up to 10 (binary) digits long.
placesThe minimum length required in the returned string. If the string is less than this length then it will be padded with leading zeros. If this parameter is omitted it defaults to zero.


COMPLEX(real_num, imag_num, [suffix])

Returns a string representing an complex number made up of the specified real and imaginary parts.

real_numThe real part of the complex number.
imag_numThe imaginary part of the complex number.
suffixThe suffix to be used for the imaginary part. Should be "i" or "j". If this parameter is omitted it defaults to "i".


CONVERT(number, from_unit, to_unit)

Returns a value converted from the 'from' units to the 'to' units.

numberThe number to be converted.
from_unitThe units to convert from.
to_unitThe units to convert to.
The from and to units must belong to the same group. The values are case-sensitive and must be entered exactly as shown. The possible values are:
Weight and mass
"Eg"exagrams (1E18)
"Pg"petagrams (1E15)
"Tg"teragrams (1E12)
"Gg"gigagrams (1E9)
"Mg"megagrams (1E6)
"kg"kilograms (1E3)
"hg"hectograms (1E2)
"eg"dekaograms (1E1)
"g"grams (1)
"dg"decigrams (1E-1)
"cg"centigrams (1E-2)
"mg"milligrams (1E-3)
"ug"micrograms (1E-6)
"ng"nanograms (1E-9)
"pg"picograms (1E-12)
"fg"femtograms (1E-15)
"ag"attograms (1E-18)
"Eu"exa-(atomic mass unit)
"Pu"peta-(atomic mass unit)
"Tu"tera-(atomic mass unit)
"Gu"giga-(atomic mass unit)
"Mu"mega-(atomic mass unit)
"ku"kilo-(atomic mass unit)
"hu"hecto-(atomic mass unit)
"eu"dekao-(atomic mass unit)
"u"atomic mass unit
"du"deci-(atomic mass unit)
"cu"centi-(atomic mass unit)
"mu"milli-(atomic mass unit)
"uu"micro-(atomic mass unit)
"nu"nano-(atomic mass unit)
"pu"pico-(atomic mass unit)
"fu"femto-(atomic mass unit)
"au"atto-(atomic mass unit)
"ozm"ounce mass (avoirdupois)
"lbm"pound mass (avoirdupois)
"sg"slug
Distance
"Em"exameters
"Pm"petameters
"Tm"terameters
"Gm"gigameters
"Mm"megameters
"km"kilometers
"hm"hectometers
"em"dekaometers
"m"meters
"dm"decimeters
"cm"centimeters
"mm"millimeters
"um"micrometers
"nm"nanometers
"pm"picometers
"fm"femtometers
"am"attometers
"Eang"exa-(Angstrom units)
"Pang"peta--(Angstrom units)
"Tang"tera-(Angstrom units)
"Gang"giga-(Angstrom units)
"Mang"mega-(Angstrom units)
"kang"kilo-(Angstrom units)
"hang"hecto-(Angstrom units)
"eang"dekao-(Angstrom units)
"ang"Angstrom units
"dang"deci-(Angstrom units)
"cang"centi-(Angstrom units)
"mang"milli-(Angstrom units)
"uang"micro-(Angstrom units)
"nang"nano-(Angstrom units)
"pang"pico-(Angstrom units)
"fang"femto-(Angstrom units)
"aang"atto-(Angstrom units)
"Pica"pica (1/72 inch)
"in"inch
"ft"foot
"yd"yard
"mi"statute mile
"Nmi"nautical mile
Time
"Esec"exaseconds
"Psec"petaseconds
"Tsec"teraseconds
"Gsec"gigaseconds
"Msec"megaseconds
"ksec"kiloseconds
"hsec"hectoseconds
"esec"dekaoseconds
"sec"seconds
"dsec"deciseconds
"csec"centiseconds
"msec"milliseconds
"usec"microseconds
"nsec"nanoseconds
"psec"picoseconds
"fsec"femtoseconds
"asec"attoseconds
"mn"minutes
"hr"hours
"day"days
"yr"years
Pressure
"EPa"exapascal
"PPa"petapascal
"TPa"terapascal
"GPa"gigapascal
"MPa"megapascal
"kPa"kilopascal
"hPa"hectopascal
"ePa"dekaopascal
"Pa"pascal
"dPa"decipascal
"cPa"centipascal
"mPa"millipascal
"uPa"micropascal
"nPa"nanopascal
"pPa"picopascal
"fPa"femtopascal
"aPa"attopascal
"EmmHg"exa-(mm of mercury)
"PmmHg"peta-(mm of mercury)
"TmmHg"tera-(mm of mercury)
"GmmHg"giga-(mm of mercury)
"MmmHg"mega-(mm of mercury)
"kmmHg"kilo-(mm of mercury)
"hmmHg"hecto-(mm of mercury)
"emmHg"dekao-(mm of mercury)
"mmHg"mm of mercury
"dmmHg"deci-(mm of mercury)
"cmmHg"centi-(mm of mercury)
"mmmHg"milli-(mm of mercury)
"ummHg"micro-(mm of mercury)
"nmmHg"nano-(mm of mercury)
"pmmHg"pico-(mm of mercury)
"fmmHg"femto-(mm of mercury)
"ammHg"atto-(mm of mercury)
"Eatm"exaatmospheres
"Patm"petaatmospheres
"Tatm"teraatmospheres
"Gatm"gigaatmospheres
"Matm"megaatmosspheres
"katm"kiloatmospheres
"hatm"hectoatmospheres
"eatm"dekaoatmospheres
"atm"atmosphere
"datm"deciatmospheres
"catm"centiatmospheres
"matm"milliatmospheres
"uatm"microatmospheres
"natm"nanoatmospheres
"patm"picoatmospheres
"fatm"femtoatmospheres
"aatm"attoatmospheres
Force
"EN"exanewtons
"PN"petanewtons
"TN"teranewtons
"GN"giganewtons
"MN"meganewtons
"kN"kilonewtons
"hN"hectonewtons
"eN"dekaonewtons
"N"newtons
"dN"decinewtons
"cN"centinewtons
"mN"millinewtons
"uN"micronewtons
"nN"nanonewtons
"pN"piconewtons
"fN"femtonewtons
"aN"attonewtons
"Edyn"exadynes
"Pdyn"petadynes
"Tdyn"teradynes
"Gdyn"gigadynes
"Mdyn"megadynes
"kdyn"kilodynes
"hdyn"hectodynes
"edyn"dekaodynes
"dyn"dynes
"ddyn"decidynes
"cdyn"centidynes
"mdyn"millidynes
"udyn"microdynes
"ndyn"nanodynes
"pdyn"picodynes
"fdyn"femtodynes
"adyn"attodynes
"lbf"pound force
Energy
"EJ"exajoules
"PJ"petajoules
"TJ"terajoules
"GJ"gigajoules
"MJ"megajoules
"kJ"kilojoules
"hJ"hectojoules
"eJ"dekaojoules
"J"joules
"dJ"decijoules
"cJ"centijoules
"mJ"millijoules
"uJ"microjoules
"nJ"nanojoules
"pJ"picojoules
"fJ"femtojoules
"aJ"attojoules
"Ee"exaergs
"Pe"petaergs
"Te"teraergs
"Ge"gigaergs
"Me"megaergs
"ke"kiloergs
"he"hectoergs
"ee"dekaoergs
"e"ergs
"de"deciergs
"ce"centiergs
"me"milliergs
"ue"microergs
"ne"nanoergs
"pe"picoergs
"fe"femtoergs
"ae"attoergs
"Ec"exa-(thermodynamic calories)
"Pc"peta-(thermodynamic calories)
"Tc"tera-(thermodynamic calories)
"Gc"giga-(thermodynamic calories)
"Mc"mega-(thermodynamic calories)
"kc"kilo-(thermodynamic calories)
"hc"hecto-(thermodynamic calories)
"ec"dekao-(thermodynamic calories)
"c"thermodynamic calories
"dc"deci-(thermodynamic calories)
"cc"centi-(thermodynamic calories)
"mc"milli-(thermodynamic calories)
"uc"micro-(thermodynamic calories)
"nc"nano-(thermodynamic calories)
"pc"pico-(thermodynamic calories)
"fc"femto-(thermodynamic calories)
"ac"atto-(thermodynamic calories)
"Ecal"exa-(IT calories)
"Pcal"peta-(IT calories)
"Tcal"tera-(IT calories)
"Gcal"giga-(IT calories)
"Mcal"mega-(IT calories)
"kcal"kilo-(IT calories)
"hcal"hecto-(IT calories)
"ecal"dekao-(IT calories)
"cal"IT calories
"dcal"deci-(IT calories)
"ccal"centi-(IT calories)
"mcal"milli-(IT calories)
"ucal"micro-(IT calories)
"ncal"nano-(IT calories)
"pcal"pico-(IT calories)
"fcal"femto-(IT calories)
"acal"atto-(IT calories)
"EeV"exa-(electron volts)
"PeV"peta-(electron volts)
"TeV"tera-(electron volts)
"GeV"giga-(electron volts)
"MeV"mega-(electron volts)
"keV"kilo-(electron volts)
"heV"hecto-(electron volts)
"eeV"dekao-(electron volts)
"eV"electron volts
"deV"deci-(electron volts)
"ceV"centi-(electron volts)
"meV"milli-(electron volts)
"ueV"micro-(electron volts)
"neV"nano-(electron volts)
"peV"pico-(electron volts)
"feV"femto-(electron volts)
"aeV"atto-(electron volts)
"flb"foot-pound
"BTU"BTU
"EWh"exa-(watt-hour)
"PWh"peta-(watt-hour)
"TWh"tera-(watt-hour)
"GWh"giga-(watt-hour)
"MWh"mega-(watt-hour)
"kWh"kilo-(watt-hour)
"hWh"hecto-(watt-hour)
"eWh"dekao-(watt-hour)
"Wh"watt-hour
"dWh"deci-(watt-hour)
"cWh"centi-(watt-hour)
"mWh"milli-(watt-hour)
"uWh"micro-(watt-hour)
"nWh"nano-(watt-hour)
"pWh"pico-(watt-hour)
"fWh"femto-(watt-hour)
"aWh"atto-(watt-hour)
"HPh"Horsepower-hour
Power
"HP"Horsepower
"EW"exawatt
"PW"petawatt
"TW"terawatt
"GW"gigawatt
"MW"megawatt
"kW"kilowatt
"hW"hectowatt
"eW"dekaowatt
"W"watt
"dW"deciwatt
"cW"centiwatt
"mW"milliwatt
"uW"microwatt
"nW"nanowatt
"pW"picowatt
"fW"femtowatt
"aW"attowatt
Magnetism
"ET"exatesla
"PT"petatesla
"TT"teratesla
"GT"gigatesla
"MT"megatesla
"kT"kilotesla
"hT"hectotesla
"eT"dekaotesla
"T"tesla
"dT"decitesla
"cT"centitesla
"mT"millitesla
"uT"microtesla
"nT"nanotesla
"pT"picotesla
"fT"femtotesla
"aT"attotesla
"Ega"exagauss
"Pga"petagauss
"Tga"teragauss
"Gga"gigagauss
"Mga"megagauss
"kga"kilogauss
"hga"hectogauss
"ega"dekaogauss
"ga"gauss
"dga"decigauss
"cga"centigauss
"mga"milligauss
"uga"microgauss
"nga"nanogauss
"pga"picogauss
"fga"femtogauss
"aga"attogauss
Temperature
"C"celcius
"F"fahrenheit
"K"kelvin
Liquid measure
"tsp"teaspoon
"tbs"tablespoon
"oz"fluid ounce
"cup"cup
"pt"pint
"qt"quart
"gal"gallon
"El"exaliter
"Pl"petaliter
"Tl"teraliter
"Gl"gigaliter
"Ml"megaliter
"kl"kiloliter
"hl"hectoliter
"el"dekaoliter
"l"liter
"dl"deciliter
"cl"centiliter
"ml"milliliter
"ul"microliter
"nl"nanoliter
"pl"picoliter
"fl"femtoliter
"al"attoliter


DEC2BIN(number, [places])

Returns a string that is the binary equivalent of a decimal number.

numberThe decimal number to be converted.
placesThe minimum length required in the returned string. If the string is less than this length then it will be padded with leading zeros. If this parameter is omitted it defaults to zero.


DEC2HEX(number, [places])

Returns a string that is the hexadecimal equivalent of a decimal number.

numberThe decimal number to be converted.
placesThe minimum length required in the returned string. If the string is less than this length then it will be padded with leading zeros. If this parameter is omitted it defaults to zero.


DEC2OCT(number, [places])

Returns a string that is the octal equivalent of a decimal number.

numberThe decimal number to be converted.
placesThe minimum length required in the returned string. If the string is less than this length then it will be padded with leading zeros. If this parameter is omitted it defaults to zero.


DELTA(number1, [number2])

Returns 1 if the numbers are equal, otherwise 0.

number1The first of the numbers to be compared.
number2The second of the numbers to be compared. If this parameter is omitted it defaults to zero.


ERF(lower_limit, [upper_limit])

Returns the integral of the error function between specified limits, or between zero and a specified limit.

lower_limitThe lower limit of the integral.
upper_limitThe upper limit of the integral. If this parameter is omitted integration is done between 0 and lower_limit.


ERFC(x)

Returns the integral of the error function between a specified limit and infinity.

xThe lower limit of the integral.


FACTDOUBLE(number)

Returns the double factorial of a number.

numberThe number of which you want the double factorial.


GESTEP(number, [step])

Returns 1 if number is greater than or equal to step, otherwise 0.

numberThe first of the numbers to be compared.
stepThe second of the numbers to be compared. If this parameter is omitted it defaults to zero.


HEX2BIN(number, [places])

Returns a string that is the binary equivalent of a hexadecimal number.

numberThe hexadecimal number to be converted.
placesThe minimum length required in the returned string. If the string is less than this length then it will be padded with leading zeros. If this parameter is omitted it defaults to zero.


HEX2DEC(number)

Returns a number that is the decimal equivalent of a hexadecimal number.

numberThe hexadecimal number to be converted.


HEX2OCT(number, [places])

Returns a string that is the octal equivalent of a hexadecimal number.

numberThe hexadecimal number to be converted.
placesThe minimum length required in the returned string. If the string is less than this length then it will be padded with leading zeros. If this parameter is omitted it defaults to zero.


IMABS(inumber)

Returns a number that is the modulus of a complex number.

inumberThe complex number of which you want the modulus.


IMAGINARY(inumber)

Returns a number that is the imaginary part of a complex number.

inumberThe complex number of which you want the imaginary part.


IMARGUMENT(inumber)

Returns a number that is the angle (in radians) represented by a complex number.

inumberThe complex number of which you want the argument.


IMCONJUGATE(inumber)

Returns a complex number that is the conjugate of the specified complex number.

inumberThe complex number of which you want the conjugate.


IMCOS(inumber)

Returns a complex number that is the cosine of the specified complex number.

inumberThe complex number of which you want the cosine.


IMDIV(inumber1, inumber2)

Returns a complex number that is the quotient of the specified complex numbers.

inumber1The dividend complex number.
inumber2The divisor complex number.


IMEXP(inumber)

Returns a complex number that is the exponential of the specified complex number.

inumberThe complex number of which you want the exponential.


IMLN(inumber)

Returns a complex number that is the natural logarithm of the specified complex number.

inumberThe complex number of which you want the natural logarithm.


IMLOG10(inumber)

Returns a complex number that is the base 10 logarithm of the specified complex number.

inumberThe complex number of which you want the base 10 logarithm.


IMLOG2(inumber)

Returns a complex number that is the base 2 logarithm of the specified complex number.

inumberThe complex number of which you want the base 2 logarithm.


IMPOWER(inumber, power)

Returns a complex number that is the specified complex number raised to a power.

inumberThe complex number that you want to raise to a power.
powerThe power to which you want to raise the complex number.


IMPRODUCT(inumber1, [inumber2, ...])

Returns a complex number that is the product of the specified complex numbers.

inumber1, ...The complex numbers that you want to multiply together.


IMREAL(inumber)

Returns a number that is the real part of a complex number.

inumberThe complex number of which you want the real part.


IMSIN(inumber)

Returns a complex number that is the sine of the specified complex number.

inumberThe complex number of which you want the sine.


IMSQRT(inumber)

Returns a complex number that is the square root of the specified complex number.

inumberThe complex number of which you want the square root.


IMSUB(inumber1, inumber2)

Returns a complex number that is the difference of the specified complex numbers.

inumber1The minuend complex number.
inumber2The subtrahend complex number.


IMSUM(inumber1, [inumber2, ...])

Returns a complex number that is the sum of the specified complex numbers.

inumber1, ...The complex numbers that you want to add together.


OCT2BIN(number, [places])

Returns a string that is the binary equivalent of an octal number.

numberThe octal number to be converted.
placesThe minimum length required in the returned string. If the string is less than this length then it will be padded with leading zeros. If this parameter is omitted it defaults to zero.


OCT2DEC(number)

Returns a number that is the decimal equivalent of an octal number.

numberThe octal number to be converted.


OCT2HEX(number, [places])

Returns a string that is the hexadecimal equivalent of an octal number.

numberThe octal number to be converted.
placesThe minimum length required in the returned string. If the string is less than this length then it will be padded with leading zeros. If this parameter is omitted it defaults to zero.


Financial functions

ACCRINT(issue_date, first_interest_date, settlement_date, rate, par, frequency, [basis])

Returns accrued interest for a security that pays periodic interest.

issue_dateThe issue date.
first_interest_dateThe first interest date.
settlement_dateThe settlement date.
rateThe annual coupon rate.
parThe par value.
frequencyThe number of interest payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


ACCRINTM(issue_date, maturity_date, rate, [par], [basis])

Returns accrued interest for a security that pays interest at maturity.

issue_dateThe issue date.
maturity_dateThe maturity date.
rateThe annual coupon rate.
parThe par value. If this parameter is omitted it defaults to 1000.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


AMORDEGRC(cost, purchase_date, first_period_date, salvage, period, rate, [basis])

Returns the depreciation for each accounting period.

costThe cost.
purchase_dateThe purchase date.
first_period_dateThe end date of the first period.
salvageThe salvage value.
periodThe period for which you want to calculate the depreciation.
rateThe depreciation rate.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


AMORLINC(cost, purchase_date, first_period_date, salvage, period, rate, [basis])

Returns the depreciation for each accounting period.

costThe cost.
purchase_dateThe purchase date.
first_period_dateThe end date of the first period.
salvageThe salvage value.
periodThe period for which you want to calculate the depreciation.
rateThe depreciation rate.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


COUPDAYBS(settlement_date, maturity_date, frequency, [basis])

Returns the number of days from the beginning of the coupon period to the settlement date.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


COUPDAYS(settlement_date, maturity_date, frequency, [basis])

Returns the number of days in the coupon period that contains the settlement date.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


COUPDAYSNC(settlement_date, maturity_date, frequency, [basis])

Returns the number of days from the settlement date to the next coupon date.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


COUPNCD(settlement_date, maturity_date, frequency, [basis])

Returns the next coupon date after the settlement date.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


COUPNUM(settlement_date, maturity_date, frequency, [basis])

Returns the number of coupon periods between the settlement date and the maturity date.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


COUPPCD(settlement_date, maturity_date, frequency, [basis])

Returns the coupon date before the settlement date.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


CUMIPMT(rate, nper, pv, start_period, end_period, type)

Returns the cumulative interest paid on a loan in the specified periods.

rateThe interest rate.
nperThe total number of periods.
pvThe present value.
start_periodThe first period number for which to calculate interest.
end_periodThe last period number for which to calculate interest.
typeThe timing of the payment. The possible values are:
0Payment is made at the end of each period.
1Payment is made at the start of each period.


CUMPRINC(rate, nper, pv, start_period, end_period, type)

Returns the cumulative principal paid on a loan in the specified periods.

rateThe interest rate.
nperThe total number of periods.
pvThe present value.
start_periodThe first period number for which to calculate interest.
end_periodThe last period number for which to calculate interest.
typeThe timing of the payment. The possible values are:
0Payment is made at the end of each period.
1Payment is made at the start of each period.


DB(cost, salvage, life, period, [month])

Returns the depreciation in a specified period using the fixed declining balance method.

costThe cost.
salvageThe salvage value.
lifeThe total number of periods.
periodThe period number for which to calculate depreciation.
monthThe number of months in the first year. If this parameter is omitted it defaults to 12.


DDB(cost, salvage, life, period, [factor])

Returns the depreciation in a specified period using the double declining balance method.

costThe cost.
salvageThe salvage value.
lifeThe total number of periods.
periodThe period number for which to calculate depreciation.
factorThe rate at which the balance declines. If this parameter is omitted it defaults to 2.


DISC(settlement_date, maturity_date, pr, redemption, [basis])

Returns the discount rate for a security.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
prThe price per $100 value.
redemptionThe redemption per $100 value.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


DOLLARDE(fractional_dollar, fraction)

Returns the decimal equivalent of a dollar price expressed as a fraction.

fractional_dollarThe value expressed as a fraction.
fractionThe fraction denominator.


DOLLARFR(decimal_dollar, fraction)

Returns the fraction equivalent of a dollar price expressed as a decimal.

decimal_dollarThe value expressed as a decimal.
fractionThe fraction denominator.


DURATION(settlement_date, maturity_date, coupon, yield, frequency, [basis])

Returns the Macauley duration for a value of $100.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
couponThe interest rate.
yieldThe annual yield rate.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


EFFECT(nominal_rate, npery)

Returns the effective annual interest rate.

nominal_rateThe nominal annual interest rate.
nperyThe number of compound interest payments per year.


FV(rate, term, [payment], [pv], [type])

Returns the future value of an investment at a fixed rate.

rateThe interest rate per period.
termThe total number of periods.
paymentThe payment amount each period. If this parameter is omitted it is assumed to be zero.
pvThe present value. If this parameter is omitted it is assumed to be zero.
typeThe timing of the payment. The possible values are:
0Payment is made at the end of each period.
1Payment is made at the start of each period.
If this parameter is omitted it defaults to 0.


FVSCHEDULE(principal, schedule_range)

Returns the future value of an investment at a variable rate.

principalThe initial value of the investment.
schedule_rangeThe list (array or reference) of interest rates to be applied.


INTRATE(settlement_date, maturity_date, investment_amount, redemption_amount, [basis])

Returns the interest rate for a fully invested security.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
investment_amountThe initial value.
redemption_amountThe final value.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


IPMT(rate, period, term, pv, [fv], [type])

Returns the interest payment for a given period.

rateThe interest rate per period.
periodThe period for which you want the interest amount.
termThe total number of periods.
pvThe present value.
fvThe future value. If this parameter is omitted it is assumed to be zero.
typeThe timing of the payment. The possible values are:
0Payment is made at the end of each period.
1Payment is made at the start of each period.
If this parameter is omitted it defaults to 0.


IRR(values_range, [guess])

Returns the internal rate of return.

values_rangeThe list (array or reference) of payment and income values.
guessThe estimated rate of return. If this parameter is omitted it defaults to 0.1.


ISPMT(rate, period, term, pv)

Returns the interest payment for a given period.

rateThe interest rate per period.
periodThe period for which you want the interest amount.
termThe total number of periods.
pvThe present value.


MDURATION(settlement_date, maturity_date, coupon, yield, frequency, [basis])

Returns the modified Macauley duration for a value of $100.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
couponThe interest rate.
yieldThe annual yield rate.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


MIRR(values_range, finance_rate, reinvest_rate)

Returns the modified internal rate of return.

values_rangeThe list (array or reference) of payment and income values.
finance_rateThe interest rate on the payment values.
reinvest_rateThe interest rate on the income values.


NOMINAL(effect_rate, npery)

Returns the nominal annual interest rate.

effect_rateThe effective annual interest rate.
nperyThe number of compound interest payments per year.


NPER(rate, payment, pv, [fv], [type])

Returns the number of periods required for an investment.

rateThe interest rate per period.
paymentThe payment amount per period.
pvThe present value.
fvThe future value. If this parameter is omitted it defaults to 0.
typeThe timing of the payment. The possible values are:
0Payment is made at the end of each period.
1Payment is made at the start of each period.
If this parameter is omitted it defaults to 0.


NPV(rate, value1, [value2, ...])

Returns the net present value of an investment.

rateThe discount rate per period.
value1, ...The payment and income amounts.


ODDFPRICE(settlement_date, maturity_date, issue_date, first_coupon_date, rate, yield, redemption, frequency, [basis])

Returns the price per $100 face value of a security having an odd (short or long) first period.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
issue_dateThe issue date.
first_coupon_dateThe first coupon date.
rateThe annual coupon rate.
yieldThe annual yield rate.
redemptionThe redemption value per $100.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


ODDFYIELD(settlement_date, maturity_date, issue_date, first_coupon_date, rate, price, redemption, frequency, [basis])

Returns the yield of a security having an odd (short or long) first period.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
issue_dateThe issue date.
first_coupon_dateThe first coupon date.
rateThe annual coupon rate.
priceThe price per $100.
redemptionThe redemption value per $100.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


ODDLPRICE(settlement_date, maturity_date, last_coupon_date, rate, yield, redemption, frequency, [basis])

Returns the price per $100 face value of a security having an odd (short or long) last period.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
last_coupon_dateThe last coupon date.
rateThe annual coupon rate.
yieldThe annual yield rate.
redemptionThe redemption value per $100.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


ODDLYIELD(settlement_date, maturity_date, last_coupon_date, rate, price, redemption, frequency, [basis])

Returns the yield of a security having an odd (short or long) last period.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
last_coupon_dateThe last coupon date.
rateThe annual coupon rate.
priceThe price per $100.
redemptionThe redemption value per $100.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


PMT(rate, term, [pv], [fv], [type])

Returns the payment amount for a loan.

rateThe interest rate per period.
termThe total number of periods.
pvThe present value of the loan. If this parameter is omitted it defaults to 0.
fvThe future value of the loan. If this parameter is omitted it defaults to 0.
typeThe timing of the payment. The possible values are:
0Payment is made at the end of each period.
1Payment is made at the start of each period.
If this parameter is omitted it defaults to 0.


PPMT(rate, period, term, pv, [fv], [type])

Returns the payment on the principal for a specified period.

rateThe interest rate per period.
periodThe period for which you want the payment amount.
termThe total number of periods.
pvThe present value of the loan.
fvThe future value of the loan. If this parameter is omitted it defaults to 0.
typeThe timing of the payment. The possible values are:
0Payment is made at the end of each period.
1Payment is made at the start of each period.
If this parameter is omitted it defaults to 0.


PRICE(settlement_date, maturity_date, rate, yield, redemption, frequency, [basis])

Returns the price per $100 of a security.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
rateThe annual coupon rate.
yieldThe annual yield rate.
redemptionThe redemption value per $100.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


PRICEDISC(settlement_date, maturity_date, discount, redemption, [basis])

Returns the price per $100 of a discounted security.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
discountThe discount rate.
redemptionThe redemption value per $100.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


PRICEMAT(settlement_date, maturity_date, issue_date, rate, yield, [basis])

Returns the price per $100 of a security that pays interest at maturity.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
issue_dateThe issue date.
rateThe interest rate.
yieldThe annual yield rate.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


PV(rate, term, [payment], [fv], [type])

Returns the present value of an investment at a fixed rate.

rateThe interest rate per period.
termThe total number of periods.
paymentThe payment amount each period. If this parameter is omitted it is assumed to be zero.
fvThe future value. If this parameter is omitted it is assumed to be zero.
typeThe timing of the payment. The possible values are:
0Payment is made at the end of each period.
1Payment is made at the start of each period.
If this parameter is omitted it defaults to 0.


RATE(term, payment, pv, [fv], [type], [guess])

Returns the interest rate per period of an annuity.

termThe total number of periods.
paymentThe payment amount each period.
pvThe present value.
fvThe future value. If this parameter is omitted it is assumed to be zero.
typeThe timing of the payment. The possible values are:
0Payment is made at the end of each period.
1Payment is made at the start of each period.
If this parameter is omitted it defaults to 0.
guessThe estimated rate of return. If this parameter is omitted it defaults to 0.1.


RECEIVED(settlement_date, maturity_date, investment, discount, [basis])

Returns the amount received at maturity for a fully invested security.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
investmentThe investment amount.
discountThe discount rate.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


SLN(cost, salvage, life)

Returns the straight line depreciation.

costThe cost.
salvageThe salvage value.
lifeThe total number of periods.


SYD(cost, salvage, life, period)

Returns the sum of years depreciation.

costThe cost.
salvageThe salvage value.
lifeThe total number of periods.
periodThe period for which you want the depreciation.


TBILLEQ(settlement_date, maturity_date, discount)

Returns the bond-equivalent yield for a treasury bill.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
discountThe discount rate.


TBILLPRICE(settlement_date, maturity_date, discount)

Returns the price per $100 for a treasury bill.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
discountThe discount rate.


TBILLYIELD(settlement_date, maturity_date, price)

Returns the yield for a treasury bill.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
priceThe price per $100.


VDB(cost, salvage, life, start_period, end_period, [factor], [no_switch])

Returns the depreciation in a specified range of periods using the variable declining balance method.

costThe cost.
salvageThe salvage value.
lifeThe total number of periods.
start_periodThe first period number for which to calculate depreciation.
end_periodThe last period number for which to calculate depreciation.
factorThe rate at which the balance declines. If this parameter is omitted it defaults to 2.
no_switchSpecifies whether to switch to straight-line depreciation when the straight-line depreciation is greater than the declining balance depreciation. The possible values are:
FALSESwitch to straight-line depreciation.
TRUEDo not switch to straight-line depreciation.
If this parameter is omitted it defaults to FALSE.


XIRR(values_range, dates_range, [guess])

Returns the internal rate of return.

values_rangeThe list (array or reference) of payment and income values.
dates_rangeThe list (array or reference) of the dates of the payment and income values.
guessThe estimated rate of return. If this parameter is omitted it defaults to 0.1.


XNPV(rate, values_range, dates_range)

Returns the net present value of an investment.

rateThe discount rate per period.
values_rangeThe list (array or reference) of payment and income values.
dates_rangeThe list (array or reference) of the dates of the payment and income values.


YIELD(settlement_date, maturity_date, rate, price, redemption, frequency, [basis])

Returns the yield on a security.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
rateThe annual coupon rate.
priceThe price per $100.
redemptionThe redemption value per $100.
frequencyThe number of coupon payments per year. Should be 1, 2 or 4.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


YIELDDISC(settlement_date, maturity_date, price, redemption, [basis])

Returns the annual yield for a discounted security.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
priceThe price per $100.
redemptionThe redemption value per $100.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


YIELDMAT(settlement_date, maturity_date, issue_date, rate, price, [basis])

Returns the annual yield of a security that pays interest at maturity.

settlement_dateThe settlement date.
maturity_dateThe maturity date.
issue_dateThe issue date.
rateThe interest rate.
priceThe price per $100.
basisThe method used to represent the number of days in the period versus the number of days in a year. The possible values are:
0US (NASD) 30/360
1Actual/actual
2Actual/360
3Actual/365
4European 30/360
If this parameter is omitted it defaults to 0.


Information functions

CELL(info_type, [reference])

Returns information about a worksheet cell.

info_typeThe type of information you want returned. The possible values are:
"address"A string containing the cell reference
"col"The column number of the cell
"color"1 if the cell is formatted in color for negative values, otherwise 0 (not currently implemented)
"contents"The result of the formula in the cell, or 0 if the cell is empty
"filename"The path, filename and sheet name of the cell
"format"The number format that has been applied to the cell
"parentheses"1 if the cell is formatted in parentheses for positive values, otherwise 0 (not currently implemented)
"prefix"The text alignment that has been applied to the cell (not currently implemented)
"protect"1 if the cell is locked, otherwise 0
"row"The row number of the cell
"type"A string representing the type of the cell result: "b" for blank, "l" for label (string), otherwise "v"
"width"The cell width in characters
referenceThe cell about which you want information. If this parameter is omitted it defaults to the cell containing the formula.


COUNTBLANK(range)

Returns the number of blank cells in a range.

rangeThe reference of the cells you want to check.


ERROR.TYPE(error_val)

Returns a number corresponding to the type of the error.

error_valThe error value, or cell containing the error value, that you want to check.
The returned values are:
#NULL!1
#DIV/0!2
#VALUE!3
#REF!4
#NAME?5
#NUM!6
#N/A7
other#N/A


INFO(type_text)

Returns information about the current spreadsheet.

type_textThe type of information you want returned. The possible values are:
"directory"The path of the current file
"memavail"The number of bytes of memory available
"memused"The number of bytes of memory used
"numfile"The number of spreadsheet files that are open
"origin"A string containing the address of the cell in the top-left corner of the scrollable region
"osversion"The operating system version number
"recalc"A string containing "Automatic" or "Manual", depending on the recalculation mode
"release"The release version with which this program is compatible
"system"The operating system type
"totmem"The total number of bytes of memory


ISBLANK(value)

Returns TRUE if the value is a reference to an empty cell, otherwise FALSE.

valueThe cell whose value you want to check.


ISERR(value)

Returns TRUE if the value is an error other than #N/A, otherwise FALSE.

valueThe expression whose result you want to check.


ISERROR(value)

Returns TRUE if the value is an error, otherwise FALSE.

valueThe expression whose result you want to check.


ISEVEN(number)

Returns TRUE if the number is even, otherwise FALSE.

numberThe number you want to check.


ISLOGICAL(value)

Returns TRUE if the value is a logical value, otherwise FALSE.

valueThe expression whose result you want to check.


ISNA(value)

Returns TRUE if the value is the error #N/A, otherwise FALSE.

valueThe expression whose result you want to check.


ISNONTEXT(value)

Returns TRUE if the value is not a string, otherwise FALSE.

valueThe expression whose result you want to check.


ISNUMBER(value)

Returns TRUE if the value is a number, otherwise FALSE.

valueThe expression whose result you want to check.


ISODD(number)

Returns TRUE if the number is odd, otherwise FALSE.

numberThe number you want to check.


ISREF(value)

Returns TRUE if the value is a reference, otherwise FALSE.

valueThe expression whose result you want to check.


ISTEXT(value)

Returns TRUE if the value is a string, otherwise FALSE.

valueThe expression whose result you want to check.


N(value)

Returns a number corresponding to the input value, or 0 if the input value is a string. You should not need to use this function, as values are automatically converted where necessary when they are used in formulas.

valueThe value you want as a number.


NA()

Returns the error value #N/A.



TYPE(value)

Returns a number corresponding to the type of the value.

valueThe value, or cell containing the value, that you want to check.
The returned values are:
number1
text2
logical4
error16
array64


Logical functions

AND(logical1, [logical2, ...])

Returns TRUE if all of the input values are TRUE.

logical1, ...The values that you want to check.


FALSE()

Returns the logical value FALSE.



IF(logical_test, [value_if_true], [value_if_false])

Returns one of two other values depending no whether the logical test evaluates to TRUE or FALSE.

logical_testAn expression that results in TRUE or FALSE.
value_if_trueThe value to be returned of the logical test is TRUE. If this parameter is omitted it defaults to 0.
value_if_falseThe value to be returned of the logical test is FALSE. If this parameter is omitted it defaults to FALSE.


NOT(logical)

Returns TRUE if the input expression evaluates to FALSE, and vice versa.

logicalThe logical expression for which you want the opposite value.


OR(logical1, [logical2, ...])

Returns TRUE if any of the input values are TRUE.

logical1, ...The values that you want to check.


TRUE()

Returns the logical value TRUE.



Lookup/reference functions

ADDRESS(row_num, column_num, [abs_num], [a1], [sheet_text])

Returns a string containing the specified cell address.

row_numThe row number of the cell.
column_numThe column number of the cell.
abs_numA number representing whether the row or column are to be absolute or relative. The possible values are:
1Both absolute
2Absolute row, relative column
3Relative row, absolute column
4Both relative
If this parameter is omitted it defaults to 1.
a1Specifies the style of the reference. The possible values are:
FALSER1C1 style
TRUEA1 style
If this parameter is omitted it defaults to TRUE.
sheet_textOptional sheet name with which to prefix the reference.


AREAS(reference)

Returns the number of areas contained in the reference.

referenceThe reference whose areas you want to count.


CHOOSE(index_num, value1, [value2, ...])

Returns one of several values depending on the index.

index_numThe index of the value to be returned, should be in the range 1 to 29.
value1, ...Up to 29 values, one of which will be chosen to be the result.


COLUMN([reference])

Returns the column number of the reference.

referenceThe reference whose column number you want. If this parameter is omitted it defaults to the cell containing the function.


COLUMNS(range)

Returns the number of columns in the reference.

rangeThe reference whose columns you want to count.


HLOOKUP(lookup_value, table_range, row_index_num, [range_lookup])

Returns a value from a horizontal table, found by searching for the lookup value in the top row of the table and then returning a value from the same or a different row in the table.

lookup_valueThe value to be found in the table.
table_rangeA reference containing the table cells.
row_index_numThe offset of the value to be returned, where 1 is the top row of the table.
range_lookupWhether to find an approximate or exact match. The possible values are:
FALSEAn exact match is required
TRUEIf an exact match is not found, use the closest value less than the lookup value
If this parameter is omitted it defaults to TRUE.


HYPERLINK(link_location, [friendly_name])

Jumps to a cell or range when this cell is selected.

link_locationA text expression that evaluates to the form "filename" or "[filename]reference".
friendly_nameThe text to be displayed in the cell. If this parameter is omitted it defaults to the link location text.


INDEX(reference, [row_num], [col_num], [area_num])

Returns a subset of an array or reference.

referenceThe array or reference of which you want the subset.
row_numThe number of the row to return. If this parameter is omitted all rows will be returned.
col_numThe number of the column to return. If this parameter is omitted all columns will be returned.
area_numThe number of the area to return when the reference contains more than one area. If this parameter is omitted it defaults to 1.


INDIRECT(ref_text, [a1])

Returns a reference from the specified text.

ref_textA text expression that evaluates to the name of a cell or range of cells.
a1Specifies the style of the reference. The possible values are:
FALSER1C1 style
TRUEA1 style
If this parameter is omitted it defaults to TRUE.


LOOKUP(lookup_value, lookup_range, [result_range])

Returns a value from a horizontal or vertical table, found by searching for the lookup value in the top row (for a horizontal table) or left column (for a vertical or square table) of the table and then returning a value from the corresponding position in the result range (if specified) or from the bottom row (for a horizontal table) or right column (for a vertical or square table) of the table.

lookup_valueThe value to be found in the table.
table_rangeA reference containing the table cells.
result_rangeThe range of cells from which to return a result. If this parameter is not specified the result will be returned from the opposite row or column of the table range.


MATCH(lookup_value, lookup_range, [match_type])

Returns a number representing the position of a value in a table.

lookup_valueThe value to be found in the table.
lookup_rangeA reference containing the table cells.
match_typeWhether to find an approximate or exact match. The possible values are:
1If an exact match is not found, use the closest value less than the lookup value (the table values should be in ascending order)
0An exact match is required
-1If an exact match is not found, use the closest value greater than the lookup value (the table values should be in descending order)
If this parameter is omitted it defaults to 1.


OFFSET(reference, rows, cols, [height], [width])

Returns a new reference based on the specified reference.

referenceThe reference to be used as a starting point.
rowsThe number of rows to move the reference up (negative) or down (positive).
colsThe number of columns to move the reference left (negative) or right (positive).
heightThe height of the new reference. If this parameter is omitted it defaults to the height of the old reference.
widthThe width of the new reference. If this parameter is omitted it defaults to the width of the old reference.


ROW([reference])

Returns the row number of the reference.

referenceThe reference whose row number you want. If this parameter is omitted it defaults to the cell containing the function.


ROWS(range)

Returns the number of rows in the reference.

rangeThe reference whose rows you want to count.


TRANSPOSE(array)

Returns the transposition of the specified array or reference.

arrayThe array or reference whose values you want to transpose.


VLOOKUP(lookup_value, table_range, col_index_num, [range_lookup])

Returns a value from a vertical table, found by searching for the lookup value in the left column of the table and then returning a value from the same or a different column in the table.

lookup_valueThe value to be found in the table.
table_rangeA reference containing the table cells.
col_index_numThe offset of the value to be returned, where 1 is the left column of the table.
range_lookupWhether to find an approximate or exact match. The possible values are:
FALSEAn exact match is required
TRUEIf an exact match is not found, use the closest value less than the lookup value
If this parameter is omitted it defaults to TRUE.


Math/trigonometry functions

ABS(number)

Returns the absolute value of a number.

numberThe number for which you want the absolute value.


ACOS(number)

Returns the angle in radians corresponding to the arccosine of a number.

numberThe number for which you want the arccosine.


ACOSH(number)

Returns the angle in radians corresponding to the inverse hyperbolic cosine of a number.

numberThe number for which you want the inverse hyperbolic cosine.


ASIN(number)

Returns the angle in radians corresponding to the arcsine of a number.

numberThe number for which you want the arcsine.


ASINH(number)

Returns the angle in radians corresponding to the inverse hyperbolic sine of a number.

numberThe number for which you want the inverse hyperbolic sine.


ATAN(number)

Returns the angle in radians corresponding to the arctangent of a number.

numberThe number for which you want the arctangent.


ATAN2(x_num, y_num)

Returns the angle in radians corresponding to a pair of co-ordinates.

x_numThe x co-ordinate for which you want the angle.
y_numThe y co-ordinate for which you want the angle.


ATANH(number)

Returns the angle in radians corresponding to the inverse hyperbolic tangent of a number.

numberThe number for which you want the inverse hyperbolic tangent.


CEILING(number, significance)

Returns the number rounded up (away from zero) to the next multiple of significance.

numberThe number which you want rounded.
significanceThe units you want to use for rounding.


COMBIN(number, number_chosen)

Returns the number of combinations in which a number of items can be chosen from a total number.

numberThe total number of items.
number_chosenThe number of items chosen.


COS(number)

Returns the cosine of an angle.

numberThe angle for which you want the cosine. It must be specified in radians.


COSH(number)

Returns the hyperbolic cosine of an angle.

numberThe angle for which you want the hyperbolic cosine. It must be specified in radians.


COUNTIF(range, criteria)

Returns the number of cells in a specified range that meet the specified criteria.

rangeA reference to the cells you want to count.
criteriaA string containing a comparison expression.


DEGREES(angle)

Converts an angle from radians to degrees.

angleThe angle that you want to convert.


EVEN(number)

Returns the number rounded up to the next even number.

numberThe number which you want rounded.


EXP(number)

Returns the e raised to the power number.

numberThe power to which you want to raise e.


FACT(number)

Returns the factorial of a number.

numberThe number of which you want the factorial.


FLOOR(number, significance)

Returns the number rounded down (towards zero) to the next multiple of significance.

numberThe number which you want rounded.
significanceThe units you want to use for rounding.


GCD(number1, [number2, ...])

Returns the greatest common divisor of a set of numbers.

number1, ...The numbers of which you want the greatest common divisor.


INT(number)

Returns the number rounded down to the next integer.

numberThe number which you want rounded.


LCM(number1, [number2, ...])

Returns the lowest common multiple of a set of numbers.

number1, ...The numbers of which you want the lowest common multiple.


LN(number)

Returns the natural logarithm of a number.

numberThe number for which you want the natural logarithm.


LOG(number, [base])

Returns the logarithm of a number in a specified base.

numberThe number for which you want the logarithm.
baseThe base in which you want the logarithm. If this parameter is omitted it defaults to 10.


LOG10(number)

Returns the base 10 logarithm of a number.

numberThe number for which you want the base 10 logarithm.


MDETERM(range)

Returns the determinant of a matrix.

rangeAn array or reference to cells containing the matrix.


MINVERSE(array)

Returns the inverse of a matrix.

arrayAn array or reference to cells containing the matrix.


MMULT(array1, array2)

Returns the product of two matrices.

array1An array or reference to cells containing the first matrix.
array2An array or reference to cells containing the second matrix.


MOD(number, divisor)

Returns the remainder of a division.

numberThe dividend.
divisorThe divisor.


MROUND(number, multiple)

Returns the number rounded to a multiple.

numberThe number that you want rounded.
multipleThe multiple to which you want the number rounded.


MULTINOMIAL(number1, [number2, ...])

Returns the factorial of the sum of the values divided by the product of their factorials.

number1, ...The numbers of which you want the multinomial.


ODD(number)

Returns the number rounded up to the next odd number.

numberThe number which you want rounded.


PI()

Returns the value of Pi.



POWER(number, power)

Returns the number raised to the power.

numberThe number which you want raised to a power.
powerThe power to which you want to raise the number.


PRODUCT(number1, [number2, ...])

Returns the product of a list of numbers.

number1, ...The numbers that you want to multiply together.


QUOTIENT(numerator, denominator)

Returns the integer result of a division.

numeratorThe dividend.
denominatorThe divisor.


RADIANS(angle)

Converts an angle from degrees to radians.

angleThe angle that you want to convert.


RAND()

Returns a random number between 0 and 1.



RANDBETWEEN(smallest, largest)

Returns a random integer in the range you specify.

smallestThe lower limit of the range.
largestThe upper limit of the range.


ROMAN(number, [form])

Returns a string representing a number converted to roman numerals.

numberThe number that you want to convert.
formSpecifies the compactness of the representation. The possible values are:
0Classic
1More compact
2More compact
3More compact
4Simplified
TRUEClassic
FALSESimplified
If this parameter is omitted it defaults to 0.


ROUND(number, num_digits)

Returns a number rounded to the number of decimal places specified.

numberThe number that you want rounded.
num_digitsThe number of decimal places to round to (may be negative).


ROUNDDOWN(number, [num_digits])

Returns a number rounded down to the number of decimal places specified.

numberThe number that you want rounded.
num_digitsThe number of decimal places to round to (may be negative). If this parameter is omitted it defaults to 0.


ROUNDUP(number, [num_digits])

Returns a number rounded up to the number of decimal places specified.

numberThe number that you want rounded.
num_digitsThe number of decimal places to round to (may be negative). If this parameter is omitted it defaults to 0.


SERIESSUM(x, n, m, coefficients)

Returns the value of a polynomial.

xThe number to be raised to a power.
nThe power of the first term in the series.
mThe difference between successive powers in the series.
coefficientsAn array or reference to cells containing the coefficients.


SIGN(number)

Returns the sign of a number; 1 for positive, -1 for negative and 0 for zero.

numberThe number of which you want the sign.


SIN(number)

Returns the sine of an angle.

numberThe angle for which you want the sine. It must be specified in radians.


SINH(number)

Returns the hyperbolic sine of an angle.

numberThe angle for which you want the hyperbolic sine. It must be specified in radians.


SQRT(number)

Returns the square root of a number.

numberThe number of which you want the square root.


SQRTPI(number)

Returns the square root of a number after it is multiplied by Pi.

numberThe number which you want to multiply by Pi and then take the square root.


SUBTOTAL(function_num, ref1, [ref2, ...]);

Returns the subtotal of values in one or more ranges, excluding other subtotal figures.

function_numThe subtotal function that you want. The possible values are:
1AVERAGE
2COUNT
3COUNTA
4MAX
5MIN
6PRODUCT
7STDEV
8STDEVP
9SUM
10VAR
11VARP
ref1, ...The ranges of cells that you want subtotalled.


SUM(number1, [number2, ...])

Returns the sum of a list of numbers.

number1, ...The numbers that you want to add together.


SUMIF(range, criteria, [sum_range])

Returns the sum of cells in a specified range that meet the specified criteria.

rangeA reference to the cells you want to check.
criteriaA string containing a comparison expression.
sum_rangeA range containing values to be summed where the values in the first range meet the specified criteria. If this parameter is omitted then the values in the first range are summed.


SUMPRODUCT(range1, [range2, ...])

Returns the sum of the products of the cells in one or more ranges.

range1, ...The ranges of cells where corresponding values are multiplied together and then summed.


SUMSQ(number1, [number2, ...])

Returns the sum of the squares of the numbers in the list.

number1, ...The numbers that are to be squared and then summed.


SUMX2MY2(x_range, y_range)

Returns the sum of the differences of the squares of the numbers in the ranges.

x_rangeThe first range of numbers.
y_rangeThe second range of numbers.


SUMX2PY2(x_range, y_range)

Returns the sum of the sums of the squares of the numbers in the ranges.

x_rangeThe first range of numbers.
y_rangeThe second range of numbers.


SUMXMY2(x_range, y_range)

Returns the sum of the squares of the differences of the numbers in the ranges.

x_rangeThe first range of numbers.
y_rangeThe second range of numbers.


TAN(number)

Returns the tangent of an angle.

numberThe angle for which you want the tangent. It must be specified in radians.


TANH(number)

Returns the hyperbolic tangent of an angle.

numberThe angle for which you want the hyperbolic tangent. It must be specified in radians.


TRUNC(number, [num_digits])

Returns a number truncated to the number of decimal places specified.

numberThe number that you want truncated.
num_digitsThe number of decimal places to truncate to (may be negative).


Statistical functions

AVEDEV(number1, [number2, ...])

Returns the average of the differences of a set of numbers from their mean.

number1, ...The numbers of which you want the average deviation.


AVERAGE(number1, [number2, ...])

Returns the average of a set of numbers.

number1, ...The numbers of which you want the average.


AVERAGEA(value1, [value2, ...])

Returns the average of a set of values.

value1, ...The values of which you want the average.


BETADIST(x, alpha, beta, [A], [B])

Returns the cumulative beta distribution probability.

xThe value at which you want to evaluate the function.
alphaThe alpha value.
betaThe beta value.
AThe lower limit. If this parameter is omitted it defaults to 0.
BThe upper limit. If this parameter is omitted it defaults to 1.


BETAINV(probability, alpha, beta, [A], [B])

Returns the value associated with the specified cumulative beta distribution probability.

probabilityThe cumulative beta distribution probability for which you want the value.
alphaThe alpha value.
betaThe beta value.
AThe lower limit. If this parameter is omitted it defaults to 0.
BThe upper limit. If this parameter is omitted it defaults to 1.


BINOMDIST(number_successes, trials, probability, cumulative)

Returns the binomial distribution probability.

number_successesThe number of trials that are successful.
trialsThe total number of trials.
probabilityThe probability of a single trial being successful.
cumulativeSpecifies whether to return the cumulative probability or not. The possible values are:
FALSEReturn the value of the function.
TRUEReturn the integral of the function.


CHIDIST(x, degrees_freedom)

Returns the chi-squared distribution probability.

xThe value at which you want to evaluate the function.
degrees_freedomThe number of degrees of freedom.


CHIINV(probability, degrees_freedom)

Returns the value associated with the specified chi-squared distribution probability.

probabilityThe probability for which you want the value.
degrees_freedomThe number of degrees of freedom.


CHITEST(actual_range, expected_range)

Returns the probability result of the chi-squared test.

actual_rangeAn array or reference to cells containing the empirical results.
expected_rangeAn array or reference to cells containing the theoretical results.


CONFIDENCE(alpha, standard_deviation, size)

Returns the confidence interval for a population mean.

alphaThe significance level.
standard_deviationThe population standard deviation.
sizeThe sample size.


CORREL(range1, range2)

Returns the correlation coefficient of two ranges.

range1The first range to be compared.
range2The second range to be compared.


COUNT(value1, [value2, ...])

Returns the count of numbers in a list.

value1, ...The items whose numbers are to be counted.


COUNTA(value1, [value2, ...])

Returns the count of values in a list.

value1, ...The items whose values are to be counted.


COVAR(range1, range2)

Returns the covariance of two ranges.

range1The first range to be compared.
range2The second range to be compared.


CRITBINOM(trials, probability_s, alpha)

Returns the value at which the cumulative binomial distribution is greater than or equal to alpha.

trialsThe total number of trials.
probability_sThe probability of a single trial being successful.
alphaThe value at which you want to evaluate the function.


DEVSQ(number1, [number2, ...])

Returns the sum of the squares of the differences of a set of numbers from their mean.

number1, ...The numbers of which you want the squared deviations.


EXPONDIST(x, lambda, cumulative)

Returns the exponential distribution probability.

xThe value at which you want to evaluate the function.
lambdaThe lambda value.
cumulativeSpecifies whether to return the cumulative probability or not. The possible values are:
FALSEReturn the value of the function.
TRUEReturn the integral of the function.


FDIST(x, degrees_freedom1, degrees_freedom2)

Returns the F distribution probability.

xThe value at which you want to evaluate the function.
degrees_freedom1The degrees of freedom of the first set.
degrees_freedom2The degrees of freedom of the second set.


FINV(probability, degrees_freedom1, degrees_freedom2)

Returns the value associated with the specified F distribution probability.

probabilityThe probability for which you want the value.
degrees_freedom1The degrees of freedom of the first set.
degrees_freedom2The degrees of freedom of the second set.


FISHER(x)

Returns the Fisher transformation.

xThe value at which to evaluate the function.


FISHERINV(y)

Returns the inverse Fisher transformation.

yThe value at which to evaluate the function.


FORECAST(x, y_range, x_range)

Returns the expected value of y for a given x value for a line passing through a specified set of points.

xThe x value at which to evaluate the function.
y_rangeThe y values that are already known.
x_rangeThe x values that are already known.


FREQUENCY(data_array, bins_array)

Returns the counts of items in specified numeric categories.

data_arrayAn array or reference to a range of cells containing values to be counted.
bins_arrayAn array or reference to a range of cells containing the upper limits for each category.


FTEST(range1, range2)

Returns the probability result of the F test.

range1The first range to be compared.
range2The second range to be compared.


GAMMADIST(x, alpha, beta, cumulative)

Returns the gamma distribution probability.

xThe value at which you want to evaluate the function.
alphaThe alpha value.
betaThe beta value.
cumulativeSpecifies whether to return the cumulative probability or not. The possible values are:
FALSEReturn the value of the function.
TRUEReturn the integral of the function.


GAMMAINV(probability, alpha, beta)

Returns the value associated with the specified gamma distribution probability.

probabilityThe probability for which you want the value.
alphaThe alpha value.
betaThe beta value.


GAMMALN(x)

Returns the natural logarithm of the gamma function evaluated at x.

xThe value at which you want to evaluate the function.


GEOMEAN(number1, [number2, ...])

Returns the geometric mean of a set of numbers.

number1, ...The numbers of which you want the geometric mean.


GROWTH(known_ys, [known_xs], [new_xs], [const])

Returns the expected values of y for given x values for an exponential curve passing through a specified set of points.

known_ysThe y values that are already known.
known_xsThe x values that are already known. If this parameter is omitted it defaults to an array of values from 1 to the number of known ys.
new_xsThe new x values for which y values are required. If this parameter is omitted it defaults to the known xs.
constSpecifies whether the line must pass through the origin. The possible values are:
FALSEThe intercept is forced to be 1.
TRUEThe intercept is calculated normally.
If this parameter is omitted it defaults to TRUE.


HARMEAN(number1, [number2, ...])

Returns the harmonic mean of a set of numbers.

number1, ...The numbers of which you want the harmonic mean.


HYPGEOMDIST(sample_s, number_sample, population_s, number_population)

Returns the hypergeometric distribution probability.

sample_sThe number of sample trials that are successful.
number_sampleThe total number of trials in the sample.
population_sThe number of population trials that are successful.
number_populationThe total number of trials in the population.


INTERCEPT(y_range, x_range)

Returns the expected value of y when x is zero for a line passing though a specified set of points.

y_rangeThe y values that are already known.
x_rangeThe x values that are already known.


KURT(number1, [number2, ...])

Returns the kurtosis of a set of numbers.

number1, ...The numbers of which you want the kurtosis.


LARGE(range, k)

Returns the kth largest number in a set of numbers.

rangeAn array or reference to cells containing numbers of which you want the kth largest.
kThe rank of the number that you want.


LINEST(known_ys, [known_xs], [const], [stats])

Returns the coefficients for a straight line using multiple linear regression.

known_ysThe y values that are already known.
known_xsOne or more sets of x values corresponding to the known y values. If this parameter is omitted it defaults to an array of values from 1 to the number of known ys.
constSpecifies whether the line must pass through the origin. The possible values are:
FALSEThe line is forced to pass through the origin.
TRUEThe line is not forced to pass through the origin.
If this parameter is omitted it defaults to TRUE.
statsSpecifies whether the additional statistics are returned in the rows below the coefficients. These are: the standard error values for the coefficients, the R2 coefficient, the standard error for the Y estimate, the F statistic, the degrees of freedom, the regression sum of squares and the residual sum of squares. The possible values are:
FALSEThe additional statistics are not returned.
TRUEThe additional statistics are returned.
If this parameter is omitted it defaults to FALSE.


LOGEST(known_ys, [known_xs], [const], [stats])

Returns the coefficients for an exponential curve using multiple linear regression.

known_ysThe y values that are already known.
known_xsOne or more sets of x values corresponding to the known y values. If this parameter is omitted it defaults to an array of values from 1 to the number of known ys.
constSpecifies whether the line must pass through the origin. The possible values are:
FALSEThe intercept is forced to be 1.
TRUEThe intercept is calculated normally.
If this parameter is omitted it defaults to TRUE.
statsSpecifies whether the additional statistics are returned in the rows below the coefficients. These are: the standard error values for the coefficients, the R2 coefficient, the standard error for the Y estimate, the F statistic, the degrees of freedom, the regression sum of squares and the residual sum of squares. The possible values are:
FALSEThe additional statistics are not returned.
TRUEThe additional statistics are returned.
If this parameter is omitted it defaults to FALSE.


LOGINV(probability, mean, standard_dev)

Returns the value associated with the specified cumulative lognormal distribution probability.

probabilityThe probability for which you want the value.
meanThe mean of the natural logarithms of the values.
standard_devThe standard deviation of the natural logarithms of the values.


LOGNORMDIST(x, mean, standard_dev)

Returns the cumulative lognormal distribution probability.

xThe value at which you want to evaluate the function.
meanThe mean of the natural logarithms of the values.
standard_devThe standard deviation of the natural logarithms of the values.


MAX(number1, [number2, ...])

Returns the maximum of a set of numbers.

number1, ...The numbers of which you want the maximum.


MAXA(value1, [value2, ...])

Returns the maximum of a set of values.

value1, ...The values of which you want the maximum.


MEDIAN(number1, [number2, ...])

Returns the median of a set of numbers.

number1, ...The numbers of which you want the median.


MIN(number1, [number2, ...])

Returns the minimum of a set of numbers.

number1, ...The numbers of which you want the minimum.


MINA(value1, [value2, ...])

Returns the minimum of a set of values.

value1, ...The values of which you want the minimum.


MODE(number1, [number2, ...])

Returns the mode of a set of numbers.

number1, ...The numbers of which you want the mode.


NEGBINOMDIST(number_f, number_s, probability_s)

Returns the negative binomial distribution probability.

number_fThe number of trials that fail.
number_sThe threshold number of trials that are successful.
probability_sThe probability of a single trial being successful.


NORMDIST(x, mean, standard_dev, cumulative)

Returns the normal distribution probability.

xThe value at which you want to evaluate the function.
meanThe mean of the values.
standard_devThe standard deviation of the values.
cumulativeSpecifies whether to return the cumulative probability or not. The possible values are:
FALSEReturn the value of the function.
TRUEReturn the integral of the function.


NORMINV(probability, mean, standard_dev)

Returns the value associated with the specified cumulative normal distribution probability.

probabilityThe probability for which you want the value.
meanThe mean of the values.
standard_devThe standard deviation of the values.


NORMSDIST(z)

Returns the cumulative standard normal distribution probability.

zThe value at which you want to evaluate the function.


NORMSINV(probability)

Returns the value associated with the specified cumulative standard normal distribution probability.

probabilityThe probability for which you want the value.


PEARSON(range1, range2)

Returns the Pearson correlation coefficient.

range1The first range to be compared.
range2The second range to be compared.


PERCENTILE(range, k)

Returns the kth percentile of a set of values.

rangeAn array or reference to cells containing the values.
kThe percentile value.


PERCENTRANK(range, x, [significance])

Returns the percentile of a value in a set of values.

rangeAn array or reference to cells containing the values.
xThe value of which you want the percentile.
significanceThe number of decimal places required in the result. If this parameter is omitted it defaults to 3.


PERMUT(number, number_chosen)

Returns the number of permutations in which a number of items can be chosen from a total number.

numberThe total number of items.
number_chosenThe number of items chosen.


POISSON(x, mean, cumulative)

Returns the Poisson distribution probability.

xThe value at which you want to evaluate the function.
meanThe mean of the values.
cumulativeSpecifies whether to return the cumulative probability or not. The possible values are:
FALSEReturn the value of the function.
TRUEReturn the integral of the function.


PROB(x_range, prob_range, lower_limit, [upper_limit])

Returns the probability that numbers in a set are between the specified limits.

x_rangeAn array or reference to cells containing the numbers.
prob_rangeAn array or reference to cells containing the probabilities associated with each number. These values must add up to 1.
lower_limitThe lower limit of the test.
upper_limitThe upper limit of the test. If this value is omitted it defaults to the value specified for the lower limit.


QUARTILE(range, quart)

Returns the specified quartile of a set of numbers.

rangeAn array or reference to cells containing the numbers.
quartSpecifies which quartile to return. The possible values are:
0Returns the minimum value.
1Returns the first quartile.
2Returns the second quartile.
3Returns the third quartile.
4Returns the maximum value.


RANK(number, range, [order])

Returns the rank of a number in a set of numbers.

numberThe number of which you want the rank.
rangeAn array or reference to cells containing the values.
orderSpecifies whether the list is treated as being in ascending or descending order of value. The possible values are:
0The list is in descending order (the highest value has rank 1).
any other valueThe list is in ascending order (the lowest value has rank 1).
If this parameter is omitted it defaults to 0.


RSQ(y_range, x_range)

Returns the square of the Pearson correlation coefficient.

y_rangeThe first range to be compared.
x_rangeThe second range to be compared.


SKEW(number1, [number2, ...])

Returns the skewness of a set of numbers.

number1, ...The numbers of which you want the skewness.


SLOPE(y_range, x_range)

Returns the slope of a line passing through a specified set of points.

y_rangeThe y values that are already known.
x_rangeThe x values that are already known.


SMALL(range, k)

Returns the kth smallest number in a set of numbers.

rangeAn array or reference to cells containing numbers of which you want the kth smallest.
kThe rank of the number that you want.


STANDARDIZE(x, mean, standard_dev)

Returns the standardized value of x for the specified mean and standard deviation.

xThe value that you want to standardize.
meanThe mean of the values.
standard_devThe standard deviation of the values.


STDEV(number1, [number2, ...])

Returns the standard deviation (based on a population sample) of a set of numbers.

number1, ...The numbers of which you want the standard deviation.


STDEVA(value1, [value2, ...])

Returns the standard deviation (based on a population sample) of a set of values.

value1, ...The values of which you want the standard deviation.


STDEVP(number1, [number2, ...])

Returns the standard deviation (based on the entire population) of a set of numbers.

number1, ...The numbers of which you want the standard deviation.


STDEVPA(value1, [value2, ...])

Returns the standard deviation (based on the entire population) of a set of values.

value1, ...The values of which you want the standard deviation.


STEYX(y_range, x_range)

Returns the standard error of the y values of a line passing through a specified set of points.

y_rangeThe y values that are already known.
x_rangeThe x values that are already known.


TDIST(x, degrees_freedom, tails)

Returns the Student's T distribution probability.

xThe value at which you want to evaluate the function.
degrees_freedomThe degrees of freedom.
tailsSpecifies the tails to include in the distribution. Should be 1 or 2.


TINV(probability, degrees_freedom)

Returns the value associated with the specified Student's T distribution probability.

probabilityThe probability for which you want the value.
degrees_freedomThe degrees of freedom.


TREND(known_ys, [known_xs], [new_xs], [const])

Returns the expected values of y for given x values for a line passing through a specified set of points.

known_ysThe y values that are already known.
known_xsThe x values that are already known. If this parameter is omitted it defaults to an array of values from 1 to the number of known ys.
new_xsThe new x values for which y values are required. If this parameter is omitted it defaults to the known xs.
constSpecifies whether the line must pass through the origin. The possible values are:
FALSEThe line is forced to pass through the origin.
TRUEThe line is not forced to pass through the origin.
If this parameter is omitted it defaults to TRUE.


TRIMMEAN(range, percent)

Returns the mean of a set of numbers with the extreme values removed.

rangeAn array or reference to cells containing the numbers.
percentThe percentage of the numbers to exclude from the calculation.


TTEST(range1, range2, tails, type)

Returns the probability result of the Student's T test.

range1The first range to be compared.
range2The second range to be compared.
tailsSpecifies the tails to include in the distribution. Should be 1 or 2.
typeSpecifies which type of test is required. The possible values are:
1Paired.
2Equal variance.
3Unequal variance.


VAR(number1, [number2, ...])

Returns the variance (based on a population sample) of a set of numbers.

number1, ...The numbers of which you want the variance.


VARA(value1, [value2, ...])

Returns the variance (based on a population sample) of a set of values.

value1, ...The values of which you want the variance.


VARP(number1, [number2, ...])

Returns the variance (based on the entire population) of a set of numbers.

number1, ...The numbers of which you want the variance.


VARPA(value1, [value2, ...])

Returns the variance (based on the entire population) of a set of values.

value1, ...The values of which you want the variance.


WEIBULL(x, alpha, beta, cumulative)

Returns the Weibull distribution probability.

xThe value at which you want to evaluate the function.
alphaThe alpha value.
betaThe beta value.
cumulativeSpecifies whether to return the cumulative probability or not. The possible values are:
FALSEReturn the value of the function.
TRUEReturn the integral of the function.


ZTEST(range, x, [sigma])

Returns the probability result of the z test.

rangeAn array or reference to cells containing the data against which x is to be tested.
xThe value to be tested.
sigmaThe population standard deviation. If this parameter is omitted it defaults to the sample standard deviation of the data.


Text functions

CHAR(number)

Returns the character corresponding to the specified position in the character set.

numberThe number of the character that you want.


CLEAN(text)

Returns a string corresponding to the input string with any unprintable characters removed.

textThe text from which you want to remove unprintable characters.


CODE(text)

Returns the position in the character set of the first character in the string.

textThe character of which you want the character code.


CONCATENATE(text1, [text2, ...])

Returns a string consisting of the input strings concatenated together.

text1, ...The strings that you want to concatenate.


DOLLAR(number, [decimals])

Returns a string consisting of the input number rounded to the specified number of decimal places and converted to currency format.

numberThe amount that you want to format.
decimalsThe number of decimal places required. If this parameter is omitted it defaults to 2.


EXACT(text1, text2)

Returns TRUE if the input strings are exactly the same, otherwise FALSE.

text1The first string to be compared.
text2The second string to be compared.


FIND(find_text, within_text, [start_num])

Returns a number corresponding to the position of one text string within another (case-sensitive).

find_textThe text you want to find.
within_textThe text to be searched.
start_numThe position at which to start searching. If this parameter is omitted it defaults to 1.


FIXED(number, [decimals], [no_commas])

Returns a string consisting of the input number rounded to the specified number of decimal places.

numberThe number that you want to format.
decimalsThe number of decimal places required. If this parameter is omitted it defaults to 2.
no_commasSpecifies whether to suppress the thousands separator in the formatted number. The possible values are:
FALSEThe thousands separator is used.
TRUEThe thousands separator is not used.
If this parameter is omitted it defaults to FALSE.


LEFT(text, [num_chars])

Returns a string consisting of the specified number of characters from the beginning of the input string.

textThe string of which you want the beginning.
num_charsThe number of characters to extract from the string. If this parameter is omitted it defaults to 1.


LEN(text)

Returns the length of the input string.

textThe string of which you want the length.


LOWER(text)

Returns a string which is the input string with all of the characters converted to lower case.

textThe string you want to convert.


MID(text, start_num, num_chars)

Returns a string consisting of the specified number of characters from the specified position of the input string.

textThe string of which you want the extract.
start_numThe starting position of characters to extract from the string.
num_charsThe number of characters to extract from the string.


PROPER(text)

Returns a string which is the input string with the first letter of each word converted to upper case and all of the other characters converted to lower case.

textThe string you want to convert.


REPLACE(old_text, start_num, num_chars, new_text)

Returns a string which is the input string with a specified portion replaced.

old_textThe string you want to convert.
start_numThe starting position of the text to be removed.
num_charsThe number of characters to be removed.
new_textThe text to be inserted into the string.


REPT(text, number_times)

Returns a string which is the input string repeated a specified number of times.

textThe string you want to repeat.
number_timesThe number of times to repeat the string.


RIGHT(text, [num_chars])

Returns a string consisting of the specified number of characters from the end of the input string.

textThe string of which you want the end.
num_charsThe number of characters to extract from the string. If this parameter is omitted it defaults to 1.


SEARCH(find_text, within_text, [start_num])

Returns a number corresponding to the position of one text string within another (not case-sensitive).

find_textThe text you want to find.
within_textThe text to be searched.
start_numThe position at which to start searching. If this parameter is omitted it defaults to 1.


SUBSTITUTE(text, old_text, new_text, [instance_num])

Returns a string which is the input string with specified text replaced.

textThe string you want to convert.
old_textThe string to be removed from the original text.
new_textThe string to be inserted in the original text.
instance_numSpecifies which occurrence of old_text is to be replaced. If this parameter is omitted then all occurrences are replaced.


T(value)

Returns a string which is the input value if it is text, otherwise an empty string.

valueThe value you want if it is a string.


TEXT(value, format_text)

Returns a string consisting of the input number formatted using the specified format string.

valueThe number that you want to format.
format_textThe format string to use.


TRIM(text)

Returns a string consisting of the input string with any extra spaces removed.

textThe string that you want to format.


UPPER(text)

Returns a string which is the input string with all of the characters converted to upper case.

textThe string that you want to convert.


VALUE(text)

Returns a number which corresponds to the value in the input string. You should not need to use this function, as values are automatically converted from text to numeric when required in formulas.

textThe string that you want to convert to a number.


Macro control functions

ARGUMENT([name_text], [type], [reference])

Defines an argument for a custom function.

name_textThe defined name that will be assigned to the argument. If this parameter is omitted then no name will be assigned.
typeThe acceptable data type(s) for the argument value. It can be any combination of the following (to specify more than one value, add the numbers together):
1Number
2Text
4Logical
8Reference
16Error
64Array
If this parameter is omitted it defaults to 7.
referenceThe cell reference where the argument value will be stored. If this parameter is omitted then the argument value will not be stored.


BREAK()

Ends the processing of a WHILE-NEXT loop. The macro will continue with the statement after the NEXT function.



ELSE()

Introduces the block of statements to be processed when the corresponding IF or ELSE.IF condition is false.



ELSE.IF(logical_test)

Specifies another logical test that conditions a block of statements when the corresponding IF or ELSE.IF condition is false.

logical_testAn expression that results in TRUE or FALSE.


END.IF()

Specifies the end of the block of statements conditioned by the corresponding IF or ELSE.IF.



GOTO(reference)

Forces the macro to continue with the statement at the reference.

referenceThe reference of the cell where macro execution is to continue.


IF(logical_test)

Specifies a logical test that conditions the execution of a block of statements.

logical_testAn expression that results in TRUE or FALSE.


NEXT()

Specifies the end of the block of statements contained in a WHILE-NEXT loop. The logical test in the corresponding WHILE statement will be done again, and if it is true then the block of statements in the loop will be executed again, otherwise execution will continue with the statement after this NEXT.



RETURN([value])

Forces the macro to end, and if it is a custom function then to return the specified value.

valueFor custom functions, the value to be returned.


SET.NAME(name_text, [value])

Assigns a defined name to the specified value.

name_textThe defined name to use.
valueThe value to be associated with the name. If this parameter is omitted then the name is deleted.


SET.VALUE(reference, values)

Stores the specified values in the specified cells on the macro sheet. Do not use this function to try to update cells on a worksheet.

referenceThe cells where the values are to be stored.
valuesThe values to be stored.


WAIT([serial_number])

Forces the macro to wait until the date/time specified by the serial number.

serial_numberThe date/time when the macro is to resume. If this parameter is omitted the macro does not wait.


WHILE(logical_test)

Specifies a logical test that conditions the execution of a block of statements multiple times. The statements between the WHILE and NEXT functions will be repeated as long as the logical test returns the value TRUE.

logical_testAn expression that results in TRUE or FALSE.


Macro command functions

ACTIVATE([window_text], [pane_num])

Specifies the workbook, sheet and/or pane that is to be active.

window_textThe workbook and/or sheet name. If this parameter is omitted then the active window is not changed.
pane_numFor a split window, specifies which pane is to be active. The possible values are:
1Upper or upper left.
2Upper right.
3Lower or lower left.
4Lower right.
If this parameter is omitted it then the active pane is not changed.


ACTIVE.CELL()

Returns a reference which represents the current position of the cursor on the active worksheet.



ALERT(message_text, [type_num], [help_ref])

Displays a message box containing the specified text. It returns TRUE if the OK button is pressed, otherwise FALSE.

message_textThe text to be displayed in the message box.
type_numThe type of message box to be displayed. The possible values are:
1A box containing a question mark icon and OK and Cancel buttons.
2A box containing an information icon and an OK button.
3A box containing an exclamation icon and an OK button.
If this parameter is omitted it defaults to 2.
help_refA reference to a Help topic (not currently implemented).


BEEP([tone_num])

Causes the computer to beep.

tone_numA number from 1 to 4 indicating which type of beep is to be produced (not currently implemented - all values will produce the same tone). If this parameter is omitted it defaults to 1.


CALCULATE.DOCUMENT()

Causes the current worksheet to be recalculated.



CALCULATE.NOW()

Causes all worksheets to be recalculated.



CALLER()

Returns information about the caller of the macro.

Macro called from:Function returns:
user-defined functionreference of cell containing function call
user-defined function in array formulareference of array formula range
attached to control or drawing objectobject identifier
manually (control key combination)error value #REF!


CLEAR([type_num])

Simulates the Edit Clear menu option.

type_numThe type of information to clear from the current selection on the active worksheet. The possible values are:
1Clear all
2Clear formats
3Clear contents
4Clear comments
If this parameter is omitted it defaults to 3.


COLUMN.WIDTH([width_num], [reference], [standard], [type_num], [standard_num])

Simulates the Format Column menu options.

width_numThe new width of the columns. The width is measured in characters. This parameter is ignored if standard is TRUE or type_num is specified. If this parameter is omitted the width of the specified columns is not changed.
referenceThe columns whose width is to be changed. If this parameter is omitted it defaults to the current selection on the active worksheet.
standardSpecifies whether the columns are to be set to the standard column width. The possible values are:
TRUEThe columns are set to the standard width.
FALSEThe columns are not set to the standard width.
If this parameter is omitted it defaults to FALSE.
type_numSpecifies whether the columns are to be hidden, unhidden or automatically sized. This parameter is ignored if standard is TRUE. The possible values are:
1The columns are hidden.
2The columns are unhidden.
3The columns are set to the width of the longest displayed value.
If this parameter is omitted the columns will not be hidden, unhidden or auto-sized.
standard_numSpecifies the value to be used for the standard width. The width is measured in characters. If this parameter is omitted the standard width is not changed.


COPY([from_reference], [to_reference])

Simulates the Edit Copy menu option.

from_referenceThe cells that are to be copied to the clipboard. If this parameter is omitted it defaults to the current selection on the active worksheet.
to_referenceThe cells where the copied information is to be pasted. If this parameter is omitted then the cells are not pasted.


CUT([from_reference], [to_reference])

Simulates the Edit Cut menu option.

from_referenceThe cells that are to be cut to the clipboard. If this parameter is omitted it defaults to the current selection on the active worksheet.
to_referenceThe cells where the cut information is to be pasted. If this parameter is omitted then the cells are not pasted.


DATA.FORM()

Simulates the Format Data Form menu option.



DATA.SERIES([rowcol], [type_num], [date_num], [step_value], [stop_value], [trend])

Simulates the Edit Fill Series menu option.

rowcolIndicates whether the series is in rows or columns. The possible values are:
1Rows
2Columns
If this parameter is omitted it defaults depending on the shape of the current selection.
type_numThe way in which the series values change. The possible values are:
1Linear
2Growth
3Date
4Auto (not currently implemented)
If this parameter is omitted it defaults to 1.
date_numThe way in which the date values change. The possible values are:
1Day
2Weekday
3Month
4Year
If this parameter is omitted it defaults to 1.
step_valueThe number used to add to or multiply by the series value. If this parameter is omitted it defaults to 1.
stop_valueThe value at which to stop filling the series. If this parameter is omitted then the entire selection is filled.
trendIndicates whether to fill the series using trend values calculated from existing data. The possible values are:
FALSEDon't use trend values.
TRUEUse trend values (not currently implemented).
If this parameter is omitted it defaults to FALSE.


DEREF(reference)

Returns the values of cells in a reference. You should not need to use this function, as references are automatically converted to values where necessary when they are used in formulas.

referenceThe reference to the cells whose values you want.


EDIT.DELETE([shift_num])

Simulates the Edit Delete menu option.

shift_numThe way in which the cell deletion is to be processed. The possible values are:
1Shift cells left.
2Shift cells up.
3Delete entire rows.
4Delete entire columns.
If this parameter is omitted it defaults to 2.


EVALUATE(formula_text)

Returns the result of evaluating a formula.

formula_textThe formula to be evaluated.


FILL.DOWN()

Simulates the Edit Fill Down menu option.



FILL.LEFT()

Simulates the Edit Fill Left menu option.



FILL.RIGHT()

Simulates the Edit Fill Right menu option.



FILL.UP()

Simulates the Edit Fill Up menu option.



FONT.PROPERTIES([font], [font_style], [size], [strikethrough], [superscript], [subscript], [outline], [shadow], [underline], [color], [normal], [background], [start_char], [char_count])

Formats the cells in the selection on the current worksheet using the specified font attributes.

fontThe name of the font to be used.
font_styleThe style to be used. The possible values are:
"Regular"Removes the bold and italic attributes.
"Bold"Sets the font to bold.
"Italic"Sets the font to italic.
"Bold Italic"Sets the font to bold and italic.
If this parameter is omitted the style is not changed.
sizeThe point size to be used. If this parameter is omitted the size is not changed.
strikethroughSets the strikethrough attribute. The possible values are:
FALSEThe font does not have the strikethrough attribute
TRUEThe font has the strikethrough attribute
If this parameter is omitted the strikethrough attribute is not changed.
superscriptNot currently implemented.
subscriptNot currently implemented.
outlineNot currently implemented.
shadowNot currently implemented.
underlineThe underline style to be used. The possible values are:
0None
1Single
2Double (not currently implemented)
3Single accounting (not currently implemented)
4Double accounting (not currently implemented)
If this parameter is omitted the underline style is not changed.
colorThe color to be used. The possible values are:
0Automatic
1 to 56One of the colors displayed in the Format Cells Font dialog box
If this parameter is omitted the color is not changed.
normalNot currently implemented.
backgroundNot currently implemented.
start_charNot currently implemented.
char_countNot currently implemented.


FORMAT.NUMBER(format_text)

Formats the cells in the selection on the current worksheet using the specified format.

format_textThe number format to be used.


FORMULA(formula_text, [reference])

Enters the specified formula in the specified reference.

formula_textThe formula to be inserted.
referenceThe reference where formula to be inserted. If this parameter is omitted it defaults to the cursor position on the active worksheet.


FORMULA.GOTO([reference], [corner])

Simulates the Edit Goto menu option.

referenceThe cells that are to be selected. If the sheet name is omitted then it defaults to the currently active sheet. If this parameter is omitted it defaults to the sheet and cells that were selected before the last goto command.
cornerSpecifies whether the top-left corner of the selection is to be placed in the top-left corner of the window. The possible values are:
FALSEThe sheet is not scrolled to move the selection to the top-left corner of the window.
TRUEThe sheet is scrolled to move the selection to the top-left corner of the window.
If this parameter is omitted it defaults to FALSE.


GET.OBJECT(type_num, [object_id], [start_num], [count_num], [item_index])

Returns information about the specified object.

type_numThe type of information to return. The possible values are:
1object type as number:
1 line
2 rectangle
3 oval
6 text box
7 command button
11 check box
12 option button
14 label
16 spinner
17 scroll bar
18 list box
19 group box
20 drop down box
2locked
3z-order
4top-left cell as R1C1 reference
5x-offset of top-left corner in points
6y-offset of top-left corner in points
7bottom-right cell as R1C1 reference
8x-offset of bottom-right corner in points
9y-offset of bottom-right corner in points
10reference of the macro as text
11object positioning as number:
1 move and size with cells
2 move but don't size with cells
3 don't move or size with cells
12object text from start_num for count_num characters
object_idThe object identifier. If this parameter is omitted it defaults to the currently selected object on the active worksheet.
start_numThe text substring start position for type_num 12. If this parameter is omitted it defaults to 1.
count_numThe text substring length for type_num 12. If this parameter is omitted it defaults to 255.
item_indexThis parameter is not currently used.


GOAL.SEEK(target_cell, target_value, variable_cell)

Simulates the Format Data Goal seek menu option.

target_cellThe cell that is required to be a certain value. It must be a single cell containing a formula that returns a numeric result.
target_valueThe value that the target cell needs to reach.
variable_cellThe cell whose value can be changed. It must be a single cell that either contains a number or is empty.


INPUT(message_text, [type_num], [title_text], [default], [x_pos], [y_pos], [help_ref])

Displays a message in a dialog box with an area for user input and OK and Cancel buttons. If the OK button is pressed then the text entered by the user is returned. If the Cancel button is pressed then this function returns the value FALSE.

message_textThe message that you want displayed in the dialog box.
type_numThe acceptable data type(s) for the data that you want returned. It can be any combination of the following (to specify more than one value, add the numbers together):
0Formula
1Number
2Text
4Logical
8Reference
16Error
64Array
If this parameter is omitted it defaults to 2.
title_textThe title to be used for the dialog box. If this parameter is omitted it defaults to "Input".
defaultThe text that you want to be initially displayed in the input area of the dialog box. If this parameter is omitted the input area will be blank.
x_posThe initial x position on the screen where the dialog box will be displayed. If this parameter is omitted it defaults to the center of the screen. (Not currently supported)
y_posThe initial y position on the screen where the dialog box will be displayed. If this parameter is omitted it defaults to the center of the screen. (Not currently supported)
help_refThe name of help topic that is to be displayed if the user presses the Help button in the dialog box. If this parameter is omitted then no Help button is displayed. (Not currently supported)


INSERT([shift_num])

Simulates the Insert Cells menu option.

shift_numThe way in which the cell insertion is to be processed. The possible values are:
1Shift cells right.
2Shift cells down.
3Insert entire rows.
4Insert entire columns.
If this parameter is omitted it defaults to 2.


ON.SHEET([sheet_text], [macro_text], [activate_logical])

Specifies a macro to be run when a sheet is activated or deactivated.

sheet_textThe name of the sheet for which the macro is to be run. If this parameter is omitted then the macro will be run for all sheets.
macro_textThe defined name that refers to the macro that is to be run. If this parameter is omitted then no macro will be run.
activate_logicalSpecifies whether the macro is to be run when the sheet is activated or deactivated. The possible values are:
TRUEThe macro will be run when the sheet is activated.
FALSEThe macro will be run when the sheet is deactivated.
If this parameter is omitted it defaults to TRUE.


PASTE([to_reference])

Simulates the Edit Paste menu option.

to_referenceThe cells where the copied information is to be pasted. If this parameter is omitted it defaults to the current selection on the active worksheet.


PASTE.SPECIAL([paste_num], [operation_num], [skip_blanks], [transpose])

Simulates the Edit Paste Special menu option.

paste_numThe type of information to be pasted. The possible values are:
1All
2Formulas
3Values
4Formats
5Comments
6All except borders
If this parameter is omitted it defaults to 1.
operation_numThe way in which the data being pasted is merged with existing data. The possible values are:
1None
2Add
3Subtract
4Multiply
5Divide
If this parameter is omitted it defaults to 1.
skip_blanksWhether to ignore blank cells in the data being pasted. The possible values are:
FALSEBlank cells are included.
TRUEBlank cells are skipped.
If this parameter is omitted it defaults to FALSE.
transposeWhether to transpose the data being pasted. The possible values are:
FALSEData is not transposed.
TRUEData is transposed. (Not currently supported)
If this parameter is omitted it defaults to FALSE.


PROTECT.DOCUMENT([contents], [windows], [password], [objects], [scenarios])

Simulates the Format Sheet Protect menu option.

contentsWhether to protect the locked cell contents. The possible values are:
TRUEThe locked cell contents are protected
FALSEThe locked cell contents are unprotected
If this parameter is omitted it defaults to TRUE.
windowsWhether to protect windows from being moved or sized (not currently implemented). The possible values are:
TRUEThe windows are protected
FALSEThe windows are unprotected
If this parameter is omitted it defaults to FALSE.
passwordAn optional case-sensitive password to protect or unprotect the document (not currently implemented).
objectsWhether to protect the locked objects (not currently implemented). The possible values are:
TRUEThe locked objects are protected
FALSEThe locked objects are unprotected
If this parameter is omitted it defaults to TRUE.
scenariosWhether to protect the scenarios (not currently implemented). The possible values are:
TRUEThe scenarios are protected
FALSEThe scenarios are unprotected
If this parameter is omitted it defaults to TRUE.


REFTEXT(reference, [a1])

Returns a string containing the specified reference.

referenceThe reference that is to be converted to text.
a1Specifies the style of the reference. The possible values are:
FALSER1C1 style
TRUEA1 style
If this parameter is omitted it defaults to FALSE.


ROW.HEIGHT([height_num], [reference], [standard_height], [type_num])

Simulates the Format Row menu options.

height_numThe new height of the rows. The height is measured in points. This parameter is ignored if standard_height is TRUE or type_num is specified. If this parameter is omitted the height of the specified rows is not changed.
referenceThe rows whose height is to be changed. If this parameter is omitted it defaults to the current selection on the active worksheet.
standard_heightSpecifies whether the rows are to be set to the standard row height. The possible values are:
TRUEThe rows are set to the standard height.
FALSEThe rows are not set to the standard height.
If this parameter is omitted it defaults to FALSE.
type_numSpecifies whether the rows are to be hidden, unhidden or automatically sized. This parameter is ignored if standard_height is TRUE. The possible values are:
1The rows are hidden.
2The rows are unhidden.
3The rows are set to the height of the highest displayed value.
If this parameter is omitted the rows will not be hidden, unhidden or auto-sized.


SELECT([selection], [active_cell])

Sets the selection and cursor cell on the active worksheet.

selectionThe cells that are to be the selection. If this parameter is omitted the current selection is not changed.
active_cellThe cell that is to be the cursor cell. If this parameter is omitted it defaults to the top left cell in the selection.


SELECT.END(direction_num)

Simulates the Ctrl+arrow key combination.

direction_numThe direction in which to move the cursor. The possible values are:
1Left
2Right
3Up
4Down


SELECT.LAST.CELL()

Simulates the Ctrl+End key combination.



SELECTION()

Returns a reference which represents the current selection on the active worksheet.



SORT([orientation], [key1], [order1], [key2], [order2], [key3], [order3], [header], [custom], [case])

Simulates the Format Data Sort menu option.

orientationSpecifies whether to sort the rows or columns. The possible values are:
1Sort rows
2Sort columns
If this parameter is omitted it defaults to 1.
key1Specifies a reference to the first column or row to sort on. If this parameter is omitted it defaults to the first column or row in the selection.
order1Specifies whether to sort the data in ascending or descending order. The possible values are:
1Ascending
2Descending
If this parameter is omitted it defaults to 1.
key2Specifies a reference to the second column or row to sort on. If this parameter is omitted then the second key is not used.
order2Specifies whether to sort the data in ascending or descending order. The possible values are:
1Ascending
2Descending
If this parameter is omitted it defaults to 1.
key3Specifies a reference to the third column or row to sort on. If this parameter is omitted then the third key is not used.
order3Specifies whether to sort the data in ascending or descending order. The possible values are:
1Ascending
2Descending
If this parameter is omitted it defaults to 1.
headerSpecifies whether the selected cells include a header row or column. The possible values are:
0Determine the presence of a header automatically
1There is a header
2There is no header
If this parameter is omitted it defaults to 2.
customSpecifies whether to use a custom list for the first sort key. The possible values are:
1Use normal sort sequence
2Day short names
3Day long names
4Month short names
5Month long names
If this parameter is omitted it defaults to 1.
caseSpecifies whether the sort should be case-sensitive. The possible values are:
TRUEThe sort is case-sensitive
FALSEThe sort is not case-sensitive
If this parameter is omitted it defaults to FALSE.


TEXTREF(text, [a1])

Returns a reference corresponding to the specified text.

textThe string containing the reference.
a1Specifies the style of the reference. The possible values are:
FALSER1C1 style
TRUEA1 style
If this parameter is omitted it defaults to FALSE.


WORKBOOK.ACTIVATE(sheet_name)

Specifies the sheet that is to be the active worksheet.

sheet_nameThe sheet that is to be the active worksheet.


WORKBOOK.DELETE([sheet_name])

Deletes the specified sheet from the workbook.

sheet_nameThe sheet that is to be deleted. If this parameter is omitted it defaults to the currently active sheet.


WORKBOOK.INSERT([type_num])

Adds a new sheet to the workbook.

type_numThe type of sheet that is to be added. The possible values are:
1A worksheet
2A chart
3A macro sheet
If this parameter is omitted it defaults to the type of the currently active sheet.


WORKBOOK.NAME(old_sheet_name, new_sheet_name)

Renames the specified sheet in the workbook.

old_sheet_nameThe sheet that is to be renamed.
new_sheet_nameThe new name for the sheet.


DDE/external functions

CALL(module_text, procedure, type_text, [argument1, ...])

Returns a value from an external function.

module_textThe name of the DLL that contains the function.
procedureThe name of the function.
type_textA string specifying the result type and the argument types. Each type is represented by a single character. The possible character values are:
ALogical, passed by value
BDouble, passed by value
CNull-terminated string, passed by reference
DByte-counted string, passed by reference
EDouble, passed by reference
FNull-terminated string, passed by reference
GByte-counted string, passed by reference
HUnsigned short integer, passed by value
ISigned short integer, passed by value
JSigned long integer, passed by value
KArray, passed by reference
LLogical, passed by reference
MSigned short integer, passed by reference
NSigned long integer, passed by reference
OArray, passed by reference
POPER structure, passed by reference
RXLOPER structure, passed by reference
argument1, ...The arguments to pass to the function.


Charts

To add a chart, use the Insert Chart menu option to add a new chart sheet. Then use the Format Chart menu option to display the dialog box that contains the following formatting options:

Type
Series
Titles
Axes
Legend


Chart type

The program currently supports the following chart types:

ColumnDisplays vertical columns whose heights correspond to the data values.
BarDisplays horizontal bars whose lengths correspond to the data values.
LineDisplays a line through points whose vertical positions correspond to the data values, the horizontal positions are evenly spaced.
PieDisplays a circle divided up into regions whose relative sizes correspond to the data values.
DoughnutLike the Pie chart but displays one or more series.
ScatterDisplays a line through points whose x and y coordinates are given by the data values.
AreaLike the line chart, but the area below the line is filled in, and the series values are stacked.
RadarDisplays a line through points whose distances from a central point correspond to the data values.


Chart series

This allows you to specify the data values to be used for each series. To add a new series, press the 'New...' button. To change an existing series, select it in the list box and then press the 'Edit...' button. To remove an existing series, select it in the list box and press the 'Delete' button.

Note that for Pie charts, only the first series will be displayed.

When entering or changing a series, you are prompted for the following information:

DataNameAn optional name that is used to identify the series in the list box. It defaults to 'Series1', etc.
Y valuesA reference to the cells that contain the data to be charted. You can specify more than one reference, separating them with commas, but they must all be from the same sheet. Alternatively you can specify this as an array of values.
X labelsFor Column, Bar, Pie, Line and Area charts, you can specify a reference or array of values that will be used to label the categories. As there is only one set of labels, this must be the same for all the series on one chart. For Scatter charts, this item is labelled 'X values' and you must enter a reference or array of values to be used as the x co-ordinates of the line.
PatternsLine typeAllows you to choose a solid, dashed or dotted line.
Line colorAllows you to specify the color of the line.
Marker typeFor Line, Scatter and Radar charts, allows you to choose a marker for the data points.
Marker colorsFor Line, Scatter and Radar charts, allows you to choose the foreground and background colors for the marker.
Area colorFor Column, Bar, Pie, Doughnut and Area charts, allows you to specify the colour that will be used to fill the interior.
LabelsLabel typeAllows you to display the x or y values next to the data points, and for Pie and Doughnut charts the percentages.


Chart titles

This allows you to specify the titles that will be used to label the chart itself and the x and y axes. Note that axis titles do not apply to Pie charts.


Chart axes

This allows you to specify the formatting of the x and y axes. The actual options that are available will depend on the currently selected chart type.

AxisSpecifies whether the axis line will be drawn.
GridlinesSpecifies whether the guidelines will be drawn.
TicksSpecifies whether the axis tick marks will be drawn.
ValuesSpecifies whether the axis values will be displayed.
LogarithmicSpecifies whether a linear or logarithmic scale is required.
MinimumSpecifies the minimum value to be used on the scale.
MaximumSpecifies the maximum value to be used on the scale.
StepSpecifies the interval between the values on the scale.


Chart legend

This allows you to specify the whether and where to display the names that identify each series with its line and/or area color. For Pie charts, the information displayed will be the category names (from the 'X labels' entry in the series formatting dialog box), for other chart types it will be the Series names from the chart series list box.


Macros

Macros can be used to create user-defined functions to use in your spreadsheets, and user-defined commands to automate tasks.

User-defined functions

Macros are useful for user-defined functions in 2 situations:
1. You may have a complex function, which is composed of many nested functions, which is used in many places on your worksheet. A user-defined function would save you a lot of typing by specifying the actual calculation in only one place.
2. You may need to use an iterative or recursive calculation that has to be performed a certain number of times before a result is found.

These are the steps for entering a user defined function:

1. Use the Insert Macro menu option to insert a macro sheet in the workbook. Macros must be stored on macro sheets. You can have many macros on a single macro sheet.

2. Enter the macro function statements. A user-defined function macro will usually begin with one or more ARGUMENT functions to receive the parameters, and it must end with a RETURN function.

This example calculates the approximate integral of the function sin(x) between a lower and upper limit using the trapezium rule and dividing the area into 100 slices:

 

A

B

C

D

1 Integral: =ARGUMENT(,1,D1) lower:  
2   =ARGUMENT(,1,D2) upper:  
3   =SET.VALUE(D3,0) sum:  
4   =SET.VALUE(D4,SIN(D1)) y0:  
5   =SET.VALUE(D5,SIN(D2)) yn:  
6   =SET.VALUE(D6,1) i:  
7   =WHILE(D6<D7) steps: 100
8   =SET.VALUE(D8,D1+(D2-D1)*D6/D7) x:  
9   =SET.VALUE(D3,D3+SIN(D8))    
10   =SET.VALUE(D6,D6+1)    
11   =NEXT()    
12   =RETURN((D2-D1)/D7/2*(D4+D5+2*D3))    

3. Use the Insert Name Define menu option to add a name for the macro. For the example above, you could define a name called 'integral', which refers to cell: Macro1!$B$1. Note that the macro name in cell A1 is for our reference only, it is not used by the program.

4. Then on your worksheet (or even in another macro), use the defined name like an ordinary worksheet function name.
For the example above, if you enter 0 in cell A1 on your worksheet, and =PI() in cell A2 on your worksheet, and =integral(A1,A2) in cell A3, then cell A3 will display 1.9998355 (higher accuracy could be obtained with a larger number of steps but the calculation would take correspondingly longer).

Here is an example that uses recursion. Because macro sheets do not directly support recursion, I have implemented a simple stack to store the values at each level by concatenating them together in a string.
This function displays a number as text:

 

A

B

C

D

E

1 Say number: =ARGUMENT(,1,D1) input:    
2   =SET.VALUE(D2,"") output:    
3   =SET.VALUE(D1,INT(D1)) temp:    
4   =IF(D1<=0,RETURN(D2))      
5   =IF(D1>=1000000)      
6 stack input =SET.VALUE(E1,D1&"|"&E1)      
7 stack output =SET.VALUE(E2,D2&"|"&E2)      
8 get millions =SET.VALUE(D3,saynumber(D1/1000000))      
9 unstack output =SET.VALUE(D2,LEFT(E2,FIND("|",E2)-1))      
10   =SET.VALUE(E2,RIGHT(E2,LEN(E2)-FIND("|",E2)))      
11 unstack input =SET.VALUE(D1,LEFT(E1,FIND("|",E1)-1))      
12   =SET.VALUE(E1,RIGHT(E1,LEN(E1)-FIND("|",E1)))      
13 update output =SET.VALUE(D2,D2&D3&" million")      
14 update input =SET.VALUE(D1,MOD(D1,1000000))      
15 check if finished =IF(D1=0,RETURN(D2))      
16   =SET.VALUE(D2,D2&IF(D1<100," and "," "))      
17   =END.IF()      
18   =IF(D1>=1000)      
19 stack input =SET.VALUE(E1,D1&"|"&E1)      
20 stack output =SET.VALUE(E2,D2&"|"&E2)      
21 get thousands =SET.VALUE(D3,saynumber(D1/1000))      
22 unstack output =SET.VALUE(D2,LEFT(E2,FIND("|",E2)-1))      
23   =SET.VALUE(E2,RIGHT(E2,LEN(E2)-FIND("|",E2)))      
24 unstack input =SET.VALUE(D1,LEFT(E1,FIND("|",E1)-1))      
25   =SET.VALUE(E1,RIGHT(E1,LEN(E1)-FIND("|",E1)))      
26 update output =SET.VALUE(D2,D2&D3&" thousand")      
27 update input =SET.VALUE(D1,MOD(D1,1000))      
28 check if finished =IF(D1=0,RETURN(D2))      
29   =SET.VALUE(D2,D2&IF(D1<100," and "," "))      
30   =END.IF()      
31   =IF(D1>=100)      
32 stack input =SET.VALUE(E1,D1&"|"&E1)      
33 stack output =SET.VALUE(E2,D2&"|"&E2)      
34 get hundreds =SET.VALUE(D3,saynumber(D1/100))      
35 unstack output =SET.VALUE(D2,LEFT(E2,FIND("|",E2)-1))      
36   =SET.VALUE(E2,RIGHT(E2,LEN(E2)-FIND("|",E2)))      
37 unstack input =SET.VALUE(D1,LEFT(E1,FIND("|",E1)-1))      
38   =SET.VALUE(E1,RIGHT(E1,LEN(E1)-FIND("|",E1)))      
39 update output =SET.VALUE(D2,D2&D3&" hundred")      
40 update input =SET.VALUE(D1,MOD(D1,100))      
41 check if finished =IF(D1=0,RETURN(D2))      
42   =SET.VALUE(D2,D2&" and ")      
43   =END.IF()      
44   =IF(D1>=20)      
45   =SET.VALUE(D2,D2&CHOOSE(INT(D1/10)-1, "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"))      
46   =SET.VALUE(D1,MOD(D1,10))      
47   =IF(D1=0,RETURN(D2))      
48   =SET.VALUE(D2,D2&" ")      
49   =END.IF()      
50   =SET.VALUE(D2,D2&CHOOSE(D1, "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"))      
51   =RETURN(D2)      

If we create a name ('SayNumber') for this function (Macro1!$B$1), we can enter 1234567890 in cell A1 on our worksheet, and =saynumber(A1) in cell A2 on our worksheet, and cell A2 will display:
one thousand two hundred and thirty four million five hundred and sixty seven thousand eight hundred and ninety

User-defined commands

Here is a command macro example.
This macro moves to the beginning of row 5 on the current sheet, inserts a new row, puts the current date into column A, formats it, and moves to column B ready for entry.

 

A

B

1 NewEntry: =SELECT(!$A$5)
2   =INSERT(3)
3   =FORMULA(TODAY())
4   =FORMAT.NUMBER("dd/mm/yy")
5   =SELECT(!$B$5)
6   =RETURN()

We create a name for this macro, e.g. "NewEntry", pointing to the reference "Macro1!$B$1", and assign control key "t" to it.
Then on our main sheet, we can press Ctrl+t and the macro will be run. Note that the macro name in cell A1 is for our reference only, it is not used by the program.

Note that the following control keys are reserved for program operation, and should not be assigned to your command macros:

1 Format Cells
c Edit Copy
d Edit Fill Down
e enter edit mode
f Edit Find
g Edit Goto
h Edit Replace
n File New
o File Open
p File Print
r Edit Fill Right
s File Save
v Edit Paste
x Edit Cut
z Edit Undo
; insert date
: insert time

Other control keys may be reserved in future versions of the program.


Objects

You can add controls and drawing objects to a worksheet by using the Insert Control and Insert Drawing menu options. After selecting the menu option, drag the pointer across the worksheet to define the area that the control will occupy. A dialog box will then be displayed that allows you to specify the attributes of the object.

To edit a control or drawing object, press the Ctrl key (on the keyboard) and then click on the object. This will select the object. Then you can use the Edit Delete menu option or the Format Control or Format Drawing menu option, or you can drag the control to a different position or you can change the shape or size by dragging the border of the object. To deselect a selected object, press the Ctrl key and click on the object again, or select a different object, or click elsewhere on the worksheet. You can also use Tab or Shift+Tab to select the next or previous object.

The following control object types are supported:

LabelA text label.
Group boxA rectangle with an optional heading. Useful for grouping separate sets of option buttons together.
Command buttonA button that can be pressed. Useful for activating a macro.
Check boxA box that can be ticked or unticked. It can return a value of TRUE or FALSE to a linked cell to indicate its state.
Option buttonUsually one of a group of buttons that selects one of several items. Only one of the buttons in a group can be pressed at any one time. Use a group box object to define a button group. The group of buttons can return a value to a linked cell indicating the number of the button in the group that is currently pressed.
List boxDisplays a list of items from a range in the spreadsheet. It can return the number of the selected item to a linked cell.
Combo boxDisplays one of a list of items from a range in the spreadsheet. It can return the number of the selected item to a linked cell.
Scroll barA horizontal or vertical scroll bar. The orientation is determined by the shape of the rectangle when the control is first inserted. It can return the value of the current position to a linked cell.
Spin controlA vertical spin control. It can return the current value to a linked cell.

The following drawing object types are supported:

LineA line or arrow.
RectangleA rectangle that can be filled.
OvalAn oval that can be filled.
Text boxA rectangle that can contain text.

All of the objects can have a macro attached that will be run when the object is clicked on.