XESS is a licensed registered trademark of Applied Information Systems.
The XESS spreadsheet application is designed specifically for users who want familiar spreadsheet functionality and ease-of-use right on their X Windows platform without any emulators! By using the intuitive XESS user interface, you can easily access its powerful computational, reporting, and graphing tools.
You need only a few keystrokes or mouse clicks to analyze your data and then present the results with graphs ranging from simple line plots to 3D surfaces. You can create attractive reports just as easily. And you can just as easily publish them as web pages.
The XESS spreadsheet provides a flexible and comfortable visual environment in which to handle simple or complex calculations and data manipulations and anything in between. It calculates a full range of mathematical, statistical, matrix and string functions all with the ease of a familiar spreadsheet format with point-and-click screen displays and pull-down menus.
XESS 5.0 is fully upward compatible from XESS Version 4 (Xess4). References to XESS throughout this document refer to any version of the XESS spreadsheet. Things which are applicable to a specific version of the XESS spreadsheet or its environment are qualified as such.
The XESS product line includes spreadsheet products for most Linux, UNIX, OpenVMS, and Windows NT systems. Optional products provide additional capabilities, including a developer's SDK for tightly integrating with other applications, the xsBasic Macro Add-in facility, and industry-specific applications.
Other features of XESS calculations include:
XESS directly creates print files in two formats for printing later or incorporating into other documents: ASCII or PostScript. This gives you the freedom to use the format best suited for your application. Filters are provided which support print preview and printing to non-PostScript printers (e.g. PCL).
The PostScript output format gives you flexibility of producing WYSIWYG output, with the printed output matching the chosen font styles and sizes, graphs, and images on the display. The PostScript Files created by the XESS Print operation are widely accepted into other documents.
You can also produce output in LaTeX or HTML formats for use in other applications or for display using browser technology. You can create area, bar, stacked bar, line, scatter, X-Y, polar, histogram, pie, high-low, box, control, contour and surface graphs of the data in your spreadsheets, with user-selected formats, colors, scaling, axis characteristics, labeling, and annotation.
XESS was designed in accordance with Open Software Foundation, Inc. style guidelines for OSF/Motif software applications. Therefore, the look and feel of XESS should be familiar and intuitive to anyone who has used OSF/Motif applications before. In fact, OSF/Motif conventions such as pull-down menus, scroll bars, list boxes, pop-up dialog boxes, buttons to click on and off, and multiple windows should look familiar to anyone who has used a windows type program, including those that operate on Apple or IBM-compatible personal computers.
XESS is designed to be easy to learn and easy to use:
- Help>Index is a complete help system with a multi-level list of topics, "hot" links to related topics, and a keyword search facility.
- Help buttons in each dialog link provide information on the function and options of the dialog.
- Tips are displayed in pop-up windows when the mouse cursor is placed over a toolbar button.
- Help on gives information about the elements of the display windows.
To select a help topic:
Through the Help menu, you can get information on:
- general system functions and menus,
- the current window,
- special keys and mnemonics,
- all the subjects available in the Help index, and
- using the Help facility.
The Help dialog can be resized to display more of the help at one time. The relative size of the help area versus the help topics area can be adjusted by dragging the indicator between the scroll bars. You can also get context sensitive help while performing an operation that uses a dialog box.
To get help from a dialog box:
The help file is formatted as HTML which makes it possible to access on-line help outside XESS with a standard HTML browser such as that provided with Netscape.
Help is also available using the Help on feature or the [?] toolbar icon. First click Help on or [?], and then click on the feature of interest. XESS then displays a pop-up description of the feature. These pop-up features, tips, are automatically displayed when the cursor is over a toolbar icon.
For example:
The message: Error: Goal Seek - variable cell must be a constant means: The independent cell to be changed during Goal Seek must not contain a formula.
XESS displays error messages on the Message Line at the bottom of the primary spreadsheet display. A full list of XESS error messages and values and what they mean is contained in Appendix C of the User's Guide.
- menu bar
- toolbar
- edit line
- spreadsheet data area
- select all button
- row and column borders
- scroll bars
- sheet tabs and sheet tab scroll buttons
- message line
You can control which of these are actually being displayed by using the Display Options dialog from the Options menu.
There is a primary XESS display for each open workbook.
If you open multiple workbooks within the same XESS session, each workbook will be attached to its own main menu.
- New
- Open
- Save
- Cut to Clipboard
- Copy to Clipboard
- Paste from Clipboard
- Undo
- Redo
- Cell Format Type
- Cell Decimal Places
- Summation
- Bold toggle
- Italic toggle
- Underline toggle
- Left alignment
- Center alignment
- Right alignment
- Line graph
- Bar graph
- Overlay Editor
- Help on...
To display or remove the toolbar:
It contains the current cell indicator, followed by two check boxes used for accept and cancel when edit mode is active, followed by the cell contents. The cell contents field is a scrollable field.
- viewing the full contents of the current cell, and
- entering and editing cell contents
For sheets larger than the window, XESS shows only part of the sheet on screen at a time. To access other areas, you can scroll through the sheet using the scroll bars or the arrow keys on your keyboard. All components of the Data Area may be selectively removed from the display using the Display Options dialog.
XESS spreadsheets are a computerized version of a ledger pad, with information stored in a row-by-column table of cells. A group of sheets which work together and are saved in a single disk file is called a workbook. The cells in a sheet may contain several types of information:
- Text
- Text entries are useful for labeling columns and rows, for including comments about data values being calculated, and for managing textual data such as lists of names and addresses. A text string may be up to 4095 bytes. XESS accepts any character defined for your locale. By default, this is the ISO 8859-1 (Latin-1) character set.
- Numbers
- XESS treats numeric entries as constants, which you may change by editing the cell but which are not changed when the workbook is recalculated.
- Dates and Times
- XESS accepts date and time entries in several formats and displays these in the format you choose. You can perform calculations with dates and times. XESS supports both 1900 and 1904 date systems for compatibility with other spreadsheet products.
- Formulas
- Formulas are the backbone of the spreadsheet, defining and calculating mathematical relationships between elements of the spreadsheet. XESS formulas can calculate with numbers, text, logical values, cell references, and other formulas.
- Graphs
- Graphs created in XESS can be stored directly in a cell in the sheet. Once stored in the sheet, standard operations can be used to change its cell location.
- Images
- Images created outside XESS may be included in the body of a sheet by establishing a link in the cell where you want the image to be displayed. Several image formats are supported. Refer to File->Link for more details.
A Cell Note can also be associated with each cell, but is not considered as the value of the cell. A cell with a cell note is displayed with a small dot in its upper right corner. When the mouse cursor is positioned over the cell, the note is displayed in a pop-up window.
Overlay Objects can be drawn and displayed on top of the Data Area. As an option, they can be positioned relative to a cell and will scroll in the display area along with the associated cell.
Each secondary window can be sized, navigated, and manipulated independently using the main menu bar along with standard scrolling and window management facilities.
To create a secondary data window:
To move the mouse pointer (which usually appears on screen as an arrow), move the mouse across your desktop or mouse pad. To move the mouse pointer further than your mouse area allows, lift the mouse off the surface and reposition it.
The mouse has two or three buttons. Most XESS operations require only the left button (MB1). The right mouse button (MB3) is used to activate a short-cut dialog. On a three-button mouse, the middle button (MB2) is the paste operation. On a two-button mouse, you simulate MB2 by simultaneously clicking MB1 and MB3.
- Point
- Move the mouse pointer to a specific area of the screen.
- Click
- Quickly press and release the left button.
- Double-click
- Quickly press and release the left button twice.
- Hold down
- Hold down the left button while you perform some action, such as moving the mouse.
- Drag
- Press the left button and hold it down while you move the pointer.
- Release
- Release the left button after dragging.
- Select
- Hold down the left left mouse button and drag it over the area to be selected.
- Paste
- Click the middle mouse button to copy a selection to a new location.
XESS provides two faster methods for many operations:
A keyboard accelerator is a key or key combination that invokes a menu selection without displaying the menu. Not every menu selection has a keyboard accelerator. Those that do are marked with the accelerator key or key combination on the menu.
A mnemonic is a single character that provides a shortcut for making selections from the keyboard. Mnemonics are usually the first character of a command and are always marked on the menu with an underscore. While a menu is displayed, simply press the mnemonic character.
Many keyboard accelerators are formed by holding down the Ctrl key or the Meta key while pressing another key. This type of action is documented as Meta + key or Ctrl + key where key is the name of the key that is pressed. Depending on the system, the [Meta] key on your keyboard may be labeled [ALT], [Compose], [Meta], or be represented with a diamond.
The definition of keyboard accelerators can be changed by modifying the XESS resources. The ones documented below are the defaults.
XESS Keyboard Accelerators and special function keys are shown in the table below:
- Delete
- Clear
- Ctrl + a
- Select All
- Ctrl + b
- Bold Font
- Ctrl + c
- Insert Column
- Ctrl + d
- Redo
- Ctrl + f
- Copy Formula
- Ctrl + g
- Go To
- Ctrl + i
- Italic Font
- Ctrl + m
- Move
- Ctrl + n
- Normal Font
- Ctrl + o
- Open Sheet
- Ctrl + r
- Insert Row
- Ctrl + s
- Save
- Ctrl + t
- Insert Sheet
- Ctrl + u
- Undo
- Ctrl + v
- Copy Value
- Ctrl + C
- Delete Column
- Ctrl + F
- Format Range
- Ctrl + I
- Bold-Italic Font
- Ctrl + R
- Delete Row
- Ctrl + T
- Delete Sheet
- Ctrl + V
- Create new view
- Ctrl + Space
- Select
- Ctrl + Meta + Space
- Reselect
- Meta + a
- Automatic Alignment
- Meta + c
- Center Alignment
- Meta + i
- Center-over-selection Alignment
- Meta + l
- Left Alignment
- Meta + p
- Print Sheet
- Meta + q
- Quit
- Meta + C
- Close Sheet
- Meta + N
- New Sheet
- Meta + R
- Right Alignment
- F1
- Help
- F2
- Edit Cell
- F3
- Replace
- Meta + F3
- Replace Next Cell
- F4
- Toggle absolute/relative cell reference
- F6
- Find
- F7
- Find Next
- F8
- Find Previous
- F9
- Recalculate
- F10
- Shift focus to the menu bar
- F11
- Cancel Edit
- Esc
- Cancel Edit
- Left Arrow
- Move left one cell
- Right Arrow
- Move right one cell
- Up Arrow
- Move up one cell
- Down Arrow
- Move down one cell
- Ctrl + Left Arrow
- Page left
- Ctrl + Right Arrow
- Page right
- Ctrl + Up Arrow,
- Page up
- Ctrl + Down Arrow
- Page down
- Next Page/Page Down
- Page down
- Prev Page/Page Up
- Page up
- Home
- Top of sheet -- cell A1
- End
- Last non-empty row
- Ctrl + End
- Right-most non-empty column
- Shift + any motion
- Select while moving cursor
- Meta + arrow key
- Advance to next "break" in data in the specified direction
To display a pull-down menu using mnemonics:
Mnemonics are a keyboard alternative to using the mouse or cursor to access menus. For tear-off menus, mnemonics can be used when the menu has focus.
When secondary data windows (Multiple Views) are displayed within the same workbook, the menu bar is not attached to each window; however, any operation invoked through the menu bar is applied to the window(s) containing the current cell.
To view a pull-down menu from the menu bar:
To select a menu action:
Menu selections can result in any of three actions:
To display a submenu:
To avoid making a menu selection when you have displayed a menu, drag the pointer off the menu and release the mouse button. Keyboard users press the [Esc] or [F11] key.
To invoke the short-cut menu:
To disable MB3 popup, change the resource *popupMenu in the Xess5 resource file to False.
If you are in the middle of editing data in a cell and click MB3, some operations will be greyed out.
When you are through using a tear-off menu, it may be dismissed. On the Motif Window Manager (mwm), to cancel (close) a tear-off menu, double-click the top left button of the tear-off window frame.
Keyboard users: Press the space bar to display button options or change on/off state.
By clicking Apply you activate your choices and keep the dialog box open. With the Apply button, you are able to quickly readjust or add more settings without having to reopen the dialog box.
Any applied spreadsheet action which is destructive to the data can be reversed using Undo. Ten (10) levels of Undo are supported by default. You can reverse the most recent Undo with Redo.
Cancel does not undo changes that have already been applied.
The File Selection dialog box displays an alphabetical list of all the files in the selected directory whose names meet the criteria in your Filter. The current directory name is displayed at the top of the Directories list. If the lists are large, all the names may not fit in the boxes.
To move the selection highlight, use the up and down arrow keys, or move the mouse pointer to the desired name and click.
To scroll through the list of file names, click the up and down arrows along the right side of the list box, or drag the scroll box.
To jump to a specific alphabetical section of the list, type the first character(s) of the name of the file you are looking for in front of the asterisk (*). The dialog box then starts the display at the first file name starting with those characters.
To select a different directory, double-click on the directory name in the Directories list. XESS then displays the names of files in that directory in the Files list. Double-click on the second file in the Directories list change to the next-higher directory level.
To select a workbook, double-click on the workbook name, or click the name once and then click OK to complete the operation.
To cancel the operation after viewing the dialog box, click Cancel.
You can have several windows open at once, move from window to window, change the size and position of windows on screen, and shuffle the order in which windows overlap one another. If several windows are open at once, all of them are active, but keyboard and mouse actions can address only one current window. In X Window System terminology, that window has the input focus.
The window frame and functions are not controlled by XESS but rather by your system's window manager program. The exact method for manipulating windows depends on the window manager program you are using. XESS should work with any X11 compliant window manager.
The following instructions assume that you are using the OSF/Motif Window Manager (mwm) from the Open Software Foundation, Inc. Other window managers have different window frames and use different mouse and keyboard sequences to perform comparable actions.
OSF/Motif Window Manager windows usually contain the following functional elements:
- a window menu icon, located in the top left corner of the window frame
- a minimize icon, located in the top right corner of the window frame, that reduces a normal-sized window to an icon
- a maximize icon, located in the top right corner of the window frame, that enlarges a normal-sized window to fill the computer screen or reduces a full-screen window to normal size
- a resize border, located at the borders, that permits you to change the dimensions of the window
The Window Manager provides several options for manipulating windows with the keyboard, mouse and built-in shortcuts.
To return a maximized spreadsheet to normal size:
To change the dimensions of the window:
To restore a spreadsheet that has been turned into an icon:
To move the current window behind another window:
Keyboard shortcuts can be used to perform these functions. The keystrokes are marked beside the selection on the menus.
1-919-942-7801 561-042-563See the section Entering Text for details.
and
For example:
If you try to invert a 3 x 2 matrix, XESS highlights the cell where the formula was entered, and displays the message, "Error - @INVERT, matrix must be square" in the cell containing the invalid formula. In addition, the message, "Cell xx:Error - @INVERT must be square" appears on the Message Line.
XESS will not allow a syntactically incorrect expression to be entered.
For example:
If you enter the formula @DATE(1/10), XESS displays the message, "ERROR: not enough arguments to function", on the Message Line and the cursor is positioned to the right of the 0 on the Edit Line. You must correct or erase the invalid expression.
For example:
If you enter an invalid cell address in a dialog box which requires that data to continue, XESS displays the XESS Message dialog box which contains the message, ERROR: - illegal range specification. You must press Cancel to remove the box and continue.
If you are already working in a spreadsheet workbook and want to erase all cells and start again with an empty workbook:
If you are working in a workbook and want to begin working in a different workbook:
If you have set User Preferences to single-workbook mode and have made changes to the current workbook, XESS will first ask if you want to save the changes before loading the new workbook. In multiple-workbook mode, the new workbook is displayed in a new primary window.
The .xs5 file format consists entirely of printable characters. This makes it easy for you to copy XESS files from one system to another regardless of the operating system or file structure. It also means that XESS files can be mailed among systems without additional processing.
XESS can also access spreadsheets and workbooks in several other popular formats: .xs, .xs3, and .xs4 sheets compatible with previous versions of XESS; and .wk1, .wks, .wk3 (wk3/wk4), and .xls sheets compatible with most other spreadsheet systems.
You can get an existing workbook, view it, change it, recalculate it, and then save it (overwriting the original version) or exit without affecting the original version. You can load and use workbooks from other spreadsheet programs or load data from text files in a variety of formats.
To load an existing XESS, WK*, or XLS workbook:
Adjacent to the Files list is the Directories list. The files shown in the Files list are those files found in the directory whose name is highlighted in the Directories list.
The dialog box displays an alphabetical list of all files whose names meet the criteria in your File Filter. If the list is large, all the document names may not fit in the box.
If you do not find the file name you are looking for, check the File Format and the File Filter in the dialog box to make sure you are searching in the correct disk or disk directory and for the desired spreadsheet type.
XESS changes the default filter to match the file format you requested. For example, if you set File Format to WKS, the File Filter appears as *.wks and the Files list includes all files with names ending in .wks.
On Linux and UNIX systems, the default extension allows filenames in upper, lower, or mixed case, similar to the following: .[Xx][Ss]5. On OpenVMS and Windows NT, the same extension is displayed as .xs5 but is not case sensitive.
You can change the file filter to display only certain groups of files. This is especially useful when you have many files on the disk and the list is cumbersome to search. For example, you can change the file filter to display:
One way to change the file filter is to double-click on a different directory. Alternatively, you can change the file filter by doing the following:
Note that there are differences between spreadsheet programs, so you may have to modify certain formulas or cells to get the spreadsheet to work properly in XESS. You can load most spreadsheets without any difficulty, but those with complex interactions that use macros or certain functions may require some modification.
When loading an XLS or WK* file into XESS, formulas which contain functions that exist in the source spreadsheet product but not in XESS will generate a standard formula error indicating that the function does not exist. Formulas containing ambiguous function references are converted to text strings in XESS for manual intervention.
In addition, with the Import operation, you can load tabular data from text files in several formats which include comma-separated values (CSV), tab-separated values (TSV), user-defined delimiter, and HTML.
To save a workbook that has not yet been named:
To save a workbook that has already been named:
The Save and Save As operations do not remove your workbook from memory, so you can continue to make changes to it after saving. You should, in fact, save your work periodically during a session to minimize the risk of losing work if the computer system is interrupted for any reason.
If you Save the current workbook, it will have the same file name as the file already on your disk. The old version of this file is renamed to have a tilde character (~) at the end of the name before the workbook is saved with the file name.
When saving an XLS or WK* file from XESS, formula which contain functions that exist in XESS but not in Excel or Lotus are converted to text strings when XESS creates the XLS or WK* file.
In addition, with the Export operation, you can save tabular data into text files in several formats which include comma-separated values (CSV), tab-separated values (TSV), user-defined separators, LaTeX (TEX), and Hypertext Markup Language (HTML).
You should use names that are descriptive or mnemonic, so you can easily identify the file from a directory listing, possibly weeks or months after you have last used the file. If you have several files that are similar, you can differentiate between them by adding dates or code numbers, for example, MFG_391 or TEST91.
Follow these conventions in assigning file names:
- File names follow the conventions for the host file system. They can usually be at least eight characters long and can consist of both letters and numbers. (Some systems support names as long as 127 characters.)
- Be careful when using upper-case and lower-case letters. Some systems are case sensitive; others, case insensitive. For example, under some systems (e.g. OpenVMS, Windows NT), "USRTEST.XS5" is considered identical to "usrtest.xs5". On other systems, including UNIX and its derivatives, the previous names represent different files.
- Do not use spaces in a file name. You can use an underline character (_) or hyphen (-) to simulate spaces, for example, ekg-200 or EKG_200.
- Unless you have a specific reason to change the file extension (transferring the file to a different program, for example), let XESS assign the default file extension.
To save the changed version, click the Save button. XESS saves the new version (possibly overwriting a previous version) and ends the session.
To discard your changes and preserve the workbook on disk, click Discard. XESS discards the version on screen and ends the session.
To cancel the Exit operation, click the Cancel button. XESS returns you to the active workspace without saving or discarding anything.
- the mouse or the keyboard arrow keys to move the cell cursor,
- the data scroll bars to scroll to another view of the sheet,
- the sheet tabs to select a different sheet in the workbook,
- the End key to go to the last row used in the current column of the current sheet,
- the Go To operation to move to a designated cell address,
- the Find operation to move to a cell with a specified content,
- the Create View operation to permit multiple windows in the same workbook, or
- the Top and Bottom operations for moving within a view.
Because the spreadsheet window can show only part of a large sheet, you may need to scroll through the sheet to view other sections. The arrow keys can be used to scroll to the remote areas of the sheet as described below.
To move the view to the right:
Similarly, use the down, up, and left arrow keys to move the view other areas of the sheet.
The Ctrl key plus the arrow keys allow you to move the cell cursor around the sheet a page at a time. Hold down the Ctrl key while using the arrow keys to move an entire window (page) in any direction. Your keyboard may also have specific keys for moving a page at a time. These are usually labeled PageUp and PageDown or PrevScreen and LastScreen.
The Meta key plus the arrow keys advance the cursor to the next "break" in the current row or column. (On many keyboards, Meta is labeled ALT.) For example, Meta+Down advances to the last entry in the current column -- the one with an empty cell below it. A subsequent Meta+ Down might take you to the absolute last row available.
Other keys may be available on your keyboard which help you move around the workbook:
- Ctrl + g
- Go To
- Ctrl + V
- Create new view
- F6
- Find
- F7
- Find Next
- F8
- Find Previous
- Left Arrow
- Move left one cell
- Right Arrow
- Move right one cell
- Up Arrow
- Move up one cell
- Down Arrow
- Move down one cell
- Ctrl + Left Arrow
- Page left
- Ctrl + Right Arrow
- Page right
- Ctrl + Up Arrow,
- Page up
- Ctrl + Down Arrow
- Page down
- Next Page/Page Down
- Page down
- Prev Page/Page Up
- Page up
- Home
- Top of sheet -- cell A1
- End
- Last non-empty row
- Ctrl + End
- Right-most non-empty column
- Meta + arrow key
- Advance to next "break" in data in the specified direction
To move the view to the right:
To move the view down:
Similarly, follow the steps above to scroll towards the left and top of the sheet.
Each view has its own scroll bars. If the slider fills the entire scroll bar, then the current view displays the entire sheet.
To move the view left or right one column at a time:
To move the view up or down one row at a time:
To move the view one page at a time:
To move the view anywhere in the sheet:
To go to a designated cell:
If the cell is not currently visible, XESS changes the view so that the requested cell is in the displayed area of the sheet.
The Goto Cell dialog can reference sheet names and named ranges. This allows you to move the cell cursor to a cell anywhere on any sheet in the workbook.
For example, you can search for cells whose values are greater than 100 and less than 150, or for cells whose values are less than the average of the three preceding cells. This facility is extremely useful for spotting patterns in large, complex data sets.
You can tell XESS which part of the workbook to search, whether to search by row or by column, and whether to search for text characters or numeric values.
To use the Find tool:
- Search Range
- Specify the range of cells in which XESS should search, by entering two corner coordinates (e.g. A1..Z55). The default range is the entire sheet. If a range was selected when you invoked the Find operation, the default is this selected range.
- Target
- Specify the string or value as it would appear formatted in the cell. To find a numeric value that meets certain criteria, enter an expression in Target. For example, to find values less than 20, specify the Filter as #<20 and do a numeric search. The Target criteria are explained in detail below.
The initial settings for the Ignore case and Ignore accents toggles are determined by the respective collating settings for case and accents in the Workbook Defaults dialog. Once you override either setting from the Find dialog, it will be remembered with subsequent Find operations within the same session.
To find the next occurrence of the value or string being searched, select Find Next button from the Search menu. Alternatively, press F7 key to repeat the search. The Find operation (described above) must precede the Find Next operation.
To find the previous value that was searched, select Find Previous from the Search menu. Alternatively, press F8 key to search the previous value.
To find a character string, type the string inside the Target entry box as it would appear when formatted in the cell. For example:Doe, JohnTo find a character string that matches a pattern, select Regular Expression and enter the desired pattern in the Target area. For example:
A[B-Z]This finds a cell containing an A followed by another letter other than an A.To find a numeric value, either a constant or a calculated value, type the value exactly as it would appear formatted in the cell. For example:
$1,000,000To find numeric values that meet certain criteria, enter the target with a constraint expression. # is used to represent the current cell being examined. Select Numeric Comparison. For example:
- To find values less than 20, specify the target as:
#<20- To find values greater than or equal to 50, specify the target as:
#<=50- To find cells whose values are less than 600 and whose neighboring cells in the same column have values less than 500, specify the target as: #<600 && #{0,-1}<500 && #{0,1}<500
- To find the cell containing the date August 22, 1991, specify the target as:
#==@DATE(1991,8,22)
Secondary windows do not include a menu bar. However, any menu or operation selected from the main menu on the primary window is applied to any secondary window which has the current or selected cell(s) in view.
To create a secondary window of the spreadsheet data:
The title columns scroll with the view as you move up and down but remain in the same position at the left of the sheet as you scroll right and left.
Row and column titles must be entered before the view titles are locked. After view titles are set, the cursor no longer moves into the title area.
This section describes how to enter data in your spreadsheet and how to enable cell protection. For more information about editing cells, moving and copying data, and manipulating spreadsheets, refer to Manipulating the Spreadsheet. For more information about using formulas to calculate values, refer to Calculations.
A cell is the intersection of a row and column within a sheet in a workbook. Cells can contain numeric or text constants, dates and time, formulas, images, and graphs. Constants and calculated values are visible on screen, but the formulas that produce those values are generally invisible.
Formulas are viewed and changed directly in the cell if in-cell edit is enabled or in the Edit Line otherwise; they appear only when the cell is highlighted. The current cell is typically outlined in red in the body of the sheet; in addition the row and column button of the current cell is a different color from the other row/column buttons. This is the cell that will be affected by your next action.
Each cell is identified by an address that contains the column and row coordinates of a specific sheet in the workbook. For instance, the address of the first cell in the workbook is typically Sheet1!A1; the cell in column D, row 4 of Sheet 10 has the cell address Sheet10!D4. With 4096 columns, 10,000,000 rows, and 4095 sheets an XESS workbook may contain more 167 trillion cells. However, the actual size of your workbook is limited by the memory capacity of your computer system, which is far less than the theoretical size of the workbook.
The amount of information in each cell and the nature of the entries themselves determine how many cell entries you can make before you run out of memory. There is a good reason, though, for XESS to provide a spreadsheet grid larger than you can ever fill; it gives you the flexibility to develop long, narrow sheets or wide ones with few rows.
The actual size of a given workbook can be determined with the Workbook Statistics Tool.
Ranges can also be be 3-dimensional by referencing cells on more than one sheet in a workbook. For example, Sheet1!A1..Sheet10!A1 creates a rectangular group which cuts through the third dimension of a workbook.
You can reference ranges in other workbooks by including the filename of the other workbook in the range specification. Thus,
=@SUM("OtherSheets.xs5"::A.A1..C.A10)will sum 30 cells from another workbook, 10 on each of 3 sheets.
Input Mode allows you to enter data into a blank cell or retype the contents of a cell.To enter input mode, press any alphanumeric key on your keyboard. You can then enter text, numeric values or formulas. XESS stays in input mode until you press [Enter], move the cell cursor to another cell location by using the up or down arrow keys, or click the accept or reject indicators left of the edit line.
Edit Mode allows you to modify the contents of a cell without retyping the entire contents. Use the mouse or the arrow keys to position the cell cursor to the cell to be edited.To enter edit mode, either use the mouse to position the cursor in the current cell contents in the Edit Line, choose Edit Cell from the Edit menu, or use the [F2] key. You may edit either in the Edit Line or within the cell itself.
Use the [Delete] or [Backspace] key to erase and enter the correct entry.
Use the left and right arrow keys to move within the cell.
After making your changes, click the accept or reject buttons, press [Enter], or use the up or down arrow keys to complete the edit. You can cancel Edit Mode by pressing the [esc] key or by clicking the reject button.
In both input mode and edit mode, data entered from the keyboard appears in the line in the Edit Line of the main view of the current sheet. When you complete the entry with [Enter] or its equivalent, XESS inserts the new value into the current cell. In input mode, you can also use any arrow key to complete the entry and move one cell in the direction of the arrow.
You can change the current cell by:
- pressing an arrow key to complete an entry in input mode. The cursor moves one cell in the arrow direction.
- pressing the up or down arrow key to complete an entry in edit mode. XESS accepts the entry and moves the cursor one cell in the arrow direction.
Cell entries often look different on the input/edit lines than they do in the cells. For example, if a cell contains a formula that produces a value, the input/edit lines show the formula, not the value. If a cell is formatted for scientific notation or a special date format, it appears in the cell in its special format but appears on the input/edit lines just as you typed it.
- In input mode, any input beginning with + - . , @ = or a digit 0 - 9 is assumed to be a formula, unless the cell is already formatted to be text, a date, or time. Otherwise the entry is assumed to be text. In edit mode, XESS does not differentiate between formula and text entries except that formula always begin with the = character.
- In input mode, an entry is completed by pressing [Enter] or any arrow key. In edit mode, the left and right arrow keys move the position of the character cursor within the current value for the cell.
- In input mode, you cannot use the arrow keys to move the text cursor. In edit mode, you can use the arrow keys to move over characters without deleting them. In either mode you can use the mouse to reposition the text cursor. Characters can then be inserted or deleted at the text cursor.
- In input mode, cell and range references are appended to the characters already entered. In edit mode, cell and range references are inserted into the string at the cursor location.
When you are modifying the Edit Line, various editing options are usually available:
- left arrow
- Move the character cursor a single character.
- right arrow
- Move the character cursor a single character.
- Ctrl + left
- Moves the character cursor a word left.
- Ctrl + right
- Moves the character cursor a word right.
- Meta + left
- Moves to the beginning of the line.
- Meta + right
- Moves to the end of the line.
- Shift
- With one of the above, selects characters to be deleted or replaced.
- Text Entries
- Text entries are useful for labeling columns and rows, for including comments about data values being calculated, and for using XESS to manage textual information, such as names, addresses or whatever your application may require.
- Numeric Values
- If a cell entry begins with a digit from 0 - 9, XESS treats the entry as a numeric entry. XESS also recognizes the following symbols as indicators of numeric entries: + - . (and , in some locales)
You can format numeric values to be displayed in several ways, including fixed formats, scientific notation, currency, fractions, and hex.
- Dates and Times
- XESS provides special, built-in features for displaying date entries in the format you choose. Date and time entries begin with the the slash (/). Example date and time formats include:
24-Oct-99 24-Oct 10/24 4-Jul-1776 11/23/1963 24.10.91 2001-10-24 14:27Dates and times can also be entered without the initial slash. In this mode, both the day and year must be entered or the cell must already be formatted as date.- Formulas
- Formulas establish and calculate mathematical relationships between spreadsheet elements. XESS formulas can calculate with numbers, text, logical values, cell references, and other formulas. For example, you can easily calculate the sum of a series of cells, the total of values in a column, or the absolute value of another cell entry.
- Graphs
- Graphs can be inserted into cells. The anchor cell becomes the upper left corner of the embedded graph. Graph objects in cells can be moved with the Copy Formulas operation.
XESS treats text and numeric entries differently, so you differentiate between text and numeric values when entering cell contents.
To enter most text into a cell, just type the text string as you want it to appear. If the text you wish to enter would normally be considered a formula or a date, then you must precede the actual text with the ' (apostrophe) character.
If you make an entry that is not text but which returns an error when treated as a formula, XESS inserts an error message but remains in input mode.
If Smart Text Entry is set in the User Preferences dialog, then cells formatted as Text assume that their input will also be text strings (and not numbers or formulas), unless the initial character entered is:
= number or formula / date or time //g graph //r repeating character \ escaped character ' stringThis ensures that values entered are treated as text. A typical use of this feature would be to enter postal codes and to keep the leading zeros:
01754In this mode, if you change the format of a non-empty cell to Text, XESS displays the underlying contents of the cell. For example, a formula would be displayed rather than the result of its evaluation.
Type: //r-
This feature can be useful for drawing lines to demarcate areas of your spreadsheet when printed. Another way is to fill a cell with hyphens and plus signs:
Type: //r-+
However, if you wish to enter a character string that begins with a slash (/), you must be sure to begin the entry with the special text-indicator characters ' (apostrophe).
If you change the alignment of the data in the cell, the text will overflow or be truncated as needed on the left, the right, or both. You can format the entire column with the Snap Column Width to Contents option to adjust the column width to contain the entire string.
To edit an entry that is displayed over more than one cell, position the cell cursor to the cell actually containing the value. XESS displays the full entry in the Edit Line. Press [F2].
XESS lets you change the width of columns to accommodate entries up to 255 characters long.
In the Cell Format dialog box there is an additional choice for Default. Default displays the number in the manner defined by the default format governing the entire workbook. (This default is set by the Cell Default operation from the Options menu.)
- Scientific
- Displays the number in scientific notation (exponent form) with N significant digits.
- Fixed
- Displays the number using a fixed number of decimal places, specified by N.
- General
- Displays the number in fixed format or scientific notation, whichever fits. Trailing zeros are not displayed.
- Dollars
- Displays the number with a leading $ sign and with comma delimiters, as in $1,000,000. Negative values are displayed in parentheses.
- Currency
- Displays the number using the relevant currency settings from the workstation's Locale.
- Custom
- Displays the number using the combination of specification from the Custom dialog which allows you to override all settings defined by Locale.
- Comma
- Displays the number with comma delimiters, as in 1,000,000. Negative values are displayed in parentheses.
- Percent
- Display the number as a percentage, multiplying it by 100. For example, the value .1 is displayed as 10.00%.
- Fraction
- Displays the non-integer part of a number as a fraction instead of decimal.
- MM/DD/YY
- Displays the integer portion of a date/time value in the format 08/01/99.
- DD-MMM-YY
- Displays the integer portion of a date/time value as a Gregorian date, in the format 08-Aug-91.
- MMM-YY
- Displays the integer portion of a date/time value in the format Aug-99.
- DD-MMM
- Displays the integer portion of a date/time value in the format 08-Aug.
- YY-MM-DD
- Displays the integer portion of a date/time value in the format 99-08-01.
- YYYY-MM-DD
- Displays the integer portion of a date/time value in the format 2000-01-01.
- DD.MM.YY
- Displays the integer portion of a date/time value in the format 01.08.99.
- HH:MM
- Displays the fractional portion of a date/time value in the format 06:15.
- HH:MM:SS
- Displays the fractional portion of a date/time value in the format 06:15:30.
- Hex
- Displays the integer portion of the number in base 16 with a leading 0x indicator. For example, the value 30.5 would be displayed as 0x1e.
- Logic
- Displays 0 as 0, displays 1 as 1, and displays all other values as ? .
- Hidden
- Cell contents are not displayed.
- Text
- Displays the characters which were entered to create the cell rather than the resulting value of the cell.
When Default is chosen, the Decimal Places value is taken from the Cell Defaults dialog, not the Cell Format dialog.
The @TEXT function provides a higher-level of user control of formatting.
If Smart Date Entry or Smart Time Entry is not enabled, then for XESS to interpret the entry as a date or time, you must begin all date and time entries by typing a slash (/) before the desired value. Type a / followed by the date or time in any of the date/time formats. The dates and times entered with this method are also converted to the equivalent references to @DATE and @TIME.
XESS supports dates from 1 January 100 through 31 December 3999. The transition from the Julian calendar to the Gregorian calendar is implemented in 1582 when 15 October immediately follows 4 October, as it was decreed by Pope Gregory XIII.Date/Time Entered as Generates 19 July 1990 /07/19/90 @DATE(1990,7,19) 27 September 1991 /27-sep-91 @DATE(1991,9,27) 01 August 1999 /01-Aug @DATE(1999,8,1) 01 Aug 2003 /Aug-2003 @DATE(2003,8,1) 21 May 1621 /1621-05-21 @DATE(1621,5,21) 21 May 1621 /21.05.1621 @DATE(1621,5,21) 12:30 /12:30 @TIME(12,30,0)
XESS internally stores date and time information using the same convention as other popular spreadsheet programs:
Using this convention, date and time values may be used together. For example, the date/time value 2.25 corresponds to 6:00:00 AM, January 1, 1900.
- Dates
- are represented as an integer equal to the number of days before or since December 30, 1899 (or January 1, 1904 in the 1904 date system).
- Times
- are represented as fractions of a day, starting at midnight. For example, 6:00 am is stored as .25 (a quarter of a 24-hour day).
You can use date values in calculations. For example, subtracting 05-Oct-1999 from 10-Oct-1999 yields a value of 5 days.
=A1+B2-C4/(E1+E2)Whereas constant entries remain the same until you change them, cells defined by formulas are automatically changed to reflect changes in referenced cells -- even where there are complex interdependencies among cells.
Once entered in a cell, formulas are hidden behind the scenes, performing their work in the background and displaying only the result of their calculation. To view the formula in a cell, move the cell cursor to the cell. XESS displays the formula in the Edit Line.
You can edit the formula or values in cells by selecting the Edit Cell option from the Edit menu or by positioning into the cell contents in the Edit Line with the mouse.
If you type a non-formula cell value intended for the current cell and then click the mouse in a different cell, the data will be accepted into the current cell before the current cell is moved to the new mouse location. If you type/edit a formula, and click the mouse on different cell, XESS will treat this as true formula point/click mode and adjust the formula in the edit line with the cell address.
To embed a graph in the sheet using the menus:
To embed a graph in the sheet from the edit line:
To insert a link to an image into a cell:
To enter a note in a cell or to modify an existing note:
To delete a note from a cell:
Cell notes are saved in the spreadsheet file. Cell notes can be copied along with other cell values and attributes. This is controlled by the Copy Options dialog.
XESS provides a global setting Cell Protection in the Workbook Defaults dialog which controls whether or not protection is enabled and, if so, the level of cell protection being enforced for the entire workbook:
Off means that protection is disable or not enforced. Max does not allow any modification, manipulation, or movement of protected cells by the user, except through recalculation. The Mid and Min settings relax the stringency of the protection checking. For example, clearing an unprotected range within a protected workbook is allowed in both. The Min setting also allows relocation and reordering of data in protected workbooks.
Like color, font, format, etc. each cell has a protection attribute: Default, Protected, or Unprotected. The protection attribute of cells or ranges are set via the Tools->Cell Protection menu. It may be set to:
The default value of the protection attribute is defined by the Protection field in Cell Defaults dialog. Cell protection is controlled by three operations:
To enable or disable cell protection for the entire workbook:
To set default cell protection for the entire workbook:
To apply cell protection to a selected cell or range:
To remove cell protection from a selected cell or range:
To apply the default cell protection to a selected cell or range:
Cells are protected by default. If Cell Protection is on, then all cells will be protected until changed.
The Undo option is context-sensitive and the menu reflects which operation is to be removed. For example, if the last operation were Copy Formulas the menu would read Undo Copy. To Undo the Copy Formulas operation, select Undo Copy from the Edit menu.
If you accidentally Undo too many levels, use the Redo operation to redo the operation that was undone.
By default, you can undo 10 previous operations. This is can be changed in the resource file.
- Undo
- Undoes the last operation performed on the workbook. The Undo operation is context-sensitive and removes the most recent operation.
- Redo
- Performs again the operation that was just canceled with Undo.
- Edit Cell
- Switches into Edit Mode so that you can edit the contents of the current cell.
- Cut to Clipboard
- Copies the selected cells to the Clipboard and removes them from the sheet.
- Copy to Clipboard
- Copies the selected cells to the Clipboard.
- Paste from Clipboard
- Copies the Clipboard to the cells beginning at the cell cursor.
- Select All
- Highlights (selects) the entire sheet for use by the next operation.
- Select...
- Highlights a range of cells to be affected by a subsequent operation.
- Reselect
- Selects the most recent selection.
- Named Range...
- Defines and manipulates named ranges.
- Move
- Moves a selected cell or range of cells (including all data values, formulas, formatting and cell references) to a designated location, overwriting existing data in the destination range.
- Copy
- Duplicates the contents of a range of cells and writes them one or more times into a specified area of the workbook.
- Clear
- Erases all data values and formulas in a selected cell or range of cells. The cells and their formatting are retained.
- Insert
- Inserts a row, a column, or a page break into the sheet at the present position of the cursor or inserts a sheet before the current sheet.
- Delete
- Removes rows, columns, page breaks, or sheets from the workbook. When a row or column of cells is deleted, they no longer exist and other cells shift up and left to replace them.
If you happen to click MB3 during an edit operation, some selections will be greyed out.
You may disable the MB3 functionality by setting the resource, *popupMenu, in the Xess5 resource file to False.
The Undo operation allows you to undo the most recent operations performed on the workbook. Undo is context-sensitive. For example, if the last operation were Copy Formulas, the menu would read Undo Copy.
If there is not a command that can be undone, the Undo option will appear dim on the Edit menu and you can not select it.
Note: If Undo results in restoring cells to the empty state, some of their cell attributes may not be restored.
Before you do an operation that manipulates cell contents, you must select which cell(s) you wish to affect. For example:
XESS offers five options for selecting cells:
In each case, XESS highlights the selection. If no range or cell is selected, most XESS operations apply to the current cell.
Most operations affect all the cells in the selected range (for example: Clear, Cell Color, or Copy). Certain operations restrict the ranges that they use. For example, if you have 10 rows of numbers each in columns A and B and select all of both columns (using the column buttons) to define a graph, the graph operation will only use the 10 data points and ignore the thousands of empty cells.
If there is not an explicit selection of a cell or range, most operations affect the current cell, the one where the cell cursor is positioned.
To edit the contents of the current cell, use Edit Cell, or place the mouse cursor in the Edit Line and click the left mouse button.
If you wish to move, copy or clear cell contents, click once on the cell, then select the appropriate function from the Edit menu.
To select a range of cells using the mouse:
To select a row using the mouse:
To select a column using the mouse:
To extend a selection with the mouse:
Use the Shift key with the left mouse button to extend or reduce a selection. The current selection will be adjusted so that the newly-selected cell becomes one of the corners of the selection.
Multiple views of the workbook can be used when extending selections. For example, select the top elements in one view and shift-click the bottom cell in another view. The selection is extended as if it were all in a single view.
To select the entire sheet with the mouse:
Use either the Select All option of the Edit menu or click on the push button at the top of the row numbers and to the left of the column names. This selects the entire sheet.
To select a cell using the Select Range dialog:
To select a range of cells using the Select operation:
To select all cells using the Select All command, choose Select All from the Edit menu. XESS selects the range which covers all cells in the sheet.
If you are working in edit mode or input mode, XESS assumes that Select All is meant to be an insertion into the content of the current cell. Therefore, XESS does not leave the selection highlighted for subsequent action; it inserts the range address into the edit line text at the current cursor position.
If you wish to edit the contents of the cell, press the accelerator key for Edit Cell (usually [F2]) to enter edit mode. You can then use the keyboard to change cell contents.
To select a range of cells using the keyboard:
To select all cells using the keyboard, press Ctrl+a. This is the accelerator for Select All.
To enter a selection into the Edit Line: Press [Enter] after making the selection with the arrow keys and Shift.
To cancel a selection using the mouse, click the left mouse button on any cell.
To cancel a selection using the keyboard, move the cursor without depressing the Shift key. XESS will de-select the current cell or range.
Note: Any motion such as the arrow keys (without Shift), scrolling, Goto, Top, and Bottom also cancels the selection.
To specify a cell in a dialog box:
To specify a range in a dialog box:
If you have previously assigned a name to a cell or cell range using the Named Range dialog, you can specify cells and ranges by this name rather than by pointing or by coordinates.
The following guidelines apply to named ranges:
To name a cell or range:
To clear the name from a cell or range:
The most common ways to copy data are:
You can also copy between workbooks using either the mouse or the Clipboard.
Selection-Paste can be used within the current sheet, between XESS workbooks, and between XESS and other applications. If XESS is unable to exchange cell information with the other application, the current values are passed as text.
Selection-Paste is the standard convention for most X applications including terminal windows, text editors, and utility applications. This makes it easy to do things like selecting a file directory listing in a terminal window and pasting it directly into a sheet where the data might be sorted and graphed.
Items copied to the clipboard may be pasted into several different locations by using repeated paste operations. The clipboard holds its contents until the next cut or copy to the clipboard.
For Copy Formulas and Copy Values, XESS follows these rules for distributing the copies to the destination cell or range:
- Copy Formulas
- Copies formulas from a selected cell or cell range into a selected cell or range, overwriting existing data in the destination range. XESS changes cell references to reflect the new location, unless the cell references are absolute (marked with a dollar sign, $), which indicates that they should not change.
- Copy Values
- Copies values from an active cell or cell range into a designated cell or range, overwriting existing data in the destination range. When copying cells that contain formulas, XESS copies the present value of the cell, not the formula, and enters it into the destination cell or range as a constant.
Note: You can make multiple copies of cells or cell ranges in one operation, simply by making the destination range longer or wider than the source destination.
To create an absolute cell reference -- one that XESS will not translate if the cell contents are copied or moved -- insert a dollar sign ( $ ) before each component of the cell reference (e.g., $A$1). You can use the [F4] key to insert the $ into formulas.
To copy formulas from one cell or range to another:
Alternatively, use the the Select Range dialog box from the Edit menu to select a destination range.
Remember that copying with the mouse is usually an easier operation.
Copy Formulas can be use to copy cells with repeating characters or graphs that are stored in the sheet.
If you have used formulas to build part of your sheet and no longer need the formulas themselves, converting the formulas to values can save memory and reduce recalculation times.
To copy values from one part of the workbook to another:
Alternatively, use the the Select Range dialog box from the Edit menu to select a destination range.
To copy a large block of data using the Select operation:
The Transpose command can copy the values, copy the formulas, or move the formulas. With Transpose>Move and Transpose>Formulas, the cell references are updated appropriately.
To change copy options:
- Copy Formats
- Copy Fonts
- Copy Alignment
- Copy Colors
- Copy Range Names
- Copy Cell Notes
- Copy Patterns
- Copy Borders
To move data in a cell or range of cells:
For example, click on cell A17 to move the contents to cells A17 through A26. XESS clears the original cell location and overwrites any existing data in the destination range with values and formulas from the source. Alternatively, use the the Select Range dialog box from the Edit menu to select a destination cell.
Cells can also be moved by doing a Cut to Clipboard followed by a Paste from Clipboard at the appropriate destination. Effects of Moving Cells
Note: If you make a mistake when copying or moving data, you can use Undo from the Edit menu to restore the workbook to its state prior to the copy or move operation.
You cannot move data from one workbook to another using the Move operation. You can accomplish the same effect, however, with Cut to Clipboard followed by Paste from Clipboard. You can also paste data to and from other X Windows application. For more information, see Interacting with Other Applications.
To delete a row:
To delete a column:
XESS supports several recalculation options:
Note that As Needed does not support Constraint Checking and Iterative Recalculation options.
In some cases cyclic dependencies are useful in that they can represent iterative calculations, which XESS supports. Iterative calculation is useful when two or more cells mutually depend on each other such that each time they are recalculated, their values become closer and closer to the desired answer.
When the Iteration Limit field in the Recalc Options dialog box is set to a non-zero value and Method is set to Foreground, iterative calculation is enabled. In this mode, XESS will make multiple recalculation passes, still preserving the natural order and minimal recalculation rules described above, until either the iteration limit has been reached or, if constraint checking is enabled, until all constraints are satisfied. The @INIT function helps perform iterative calculations.
A simple example of the problem with fractions is to enter the value 0.01 into 100 cells and then sum the values and subtract 1. The result is not 0. Rather, it has small value in the 16th decimal place. The reason for this round-off error is that the decimal value .01 cannot be exactly represented as a binary fraction -- just as the value 2/3 cannot be exactly represented as a decimal number.
This behavior is well known and well understood in scientific and statistical computing, but can cause surprise when first using spreadsheet products to work with currencies. This behavior is found in all popular spreadsheet products.
Calculations with logical operators -- ! (logical NOT), && (logical AND), || (logical OR), and ?: (conditional) -- consider a non-zero value to be True and a zero value to be False. Integer operators -- ~ (complement), & (bitwise AND), | (bitwise OR), ^ (bitwise EXCLUSIVE-OR), and % (modulus) convert their operands to 32-bit integers before performing the operation.
XESS formulas can calculate with numbers, text, logical values, cell references, and other formulas. For example, you can easily calculate the sum of a series of cells, the total of values in a column, a minimum or maximum value within a range, the rounded result of another formula, or the absolute value of a cell entry. Formulas can express complex interdependencies among cells, and they can define constraints on the calculation, such as limits on acceptable values or specific conditions under which a calculation should take place.
Once entered in a cell, formulas are hidden behind the scenes, perform their work in the background, and display only the result of their calculation. To view the formula in a cell, simply select the cell.
XESS displays the formula in the Edit Line just below the main menu bar. You can edit the formula or values in cells at any time.
XESS also provides a wide variety of functions that perform certain tasks. Functions can be used alone or in conjunction with formulas and other functions. XESS provides many specialized functions in addition to those that are usually found in typical financial spreadsheets.
= expression ; constraint expression //comment
where expression defines the calculations needed to generate the
cell's value, constraint expression places limits on acceptable
values or the circumstances under which the calculation should
take place, and comment is any text you want to attach to the
cell.
The expression part of XESS formulas look just like algebraic formulas; they contain values and operators that define the relationships between values.
XESS uses the following conventions for formulas:
To change a formula in a cell, move the mouse pointer to the cell and choose the Edit Cell operation from the Edit menu or position the cursor in the formula display in the Edit Line.
XESS Formulas can contain the following operators to define relationship between values.
Operator Precedence Definition % 14 Unary percent ** 13 Exponentiation + 12 Unary plus - 12 Unary minus (negation) ~ 12 Bitwise complement (integer) ! 12 Logical not * 11 Multiplication / 11 Division % 11 Remainder (integer) + 10 Addition - 10 Subtraction << 9 Shift left (integer) >> 9 Shift right (integer) < 8 Less Than > 8 Greater Than <= 8 Less Than or Equal >= 8 Greater Than or Equal == 7 Equal != 7 Not Equal & 6 Bitwise And (integer) or String Concatenation ^ 5 Bitwise Exclusive Or (integer) | 4 Bitwise Or (integer) && 3 Logical And || 2 Logical Or ?: 1 Conditional
In formulas with more than one operator, XESS calculates operators in the order of precedence presented above, with highest precedence first. That is, AND/OR/NOT relationships are considered after equal/unequal relationships, and subtraction/ addition are considered after multiplication/division. Operators at the same precedence level are evaluated from left to right.
To change the precedence of operators, enclose highest priority operations in parentheses.
Here are some special notes about XESS operators:
@SUM(A1?B1..C20:C10..D15)returns the sum of B1..C20 if A1 evaluates to non-zero; otherwise it returns the sum of C10..D15.
To reference a cell by address:
Type the row and column coordinates of the cell in the formula. For example, to reference Row 5 in Column D, type D5OR
While entering a formula, move the mouse pointer to the cell to be referenced and click once. In input mode, XESS inserts the cell reference after the last character entered. In edit mode, XESS inserts the cell reference at the cursor location in the Edit Line.
To reference a contiguous group of cells by address:
Type the row and column coordinates of two cells in opposite corners of the block to be referenced, with two periods ( .. ) between the coordinates. For example, to reference the first five columns and the first five rows of the sheet, type A1..E5.OR
Move the mouse pointer to one corner of the block or range to be referenced. Press the left mouse button and drag the mouse to the opposite corner, then release the mouse button. In input mode,
XESS inserts the cell reference after the last character typed. In edit mode, XESS inserts the cell reference at the cursor location.
To reference a cell or range by name, type the pre-assigned name of the cell or cell block into the formula.
To assign a name to a cell or range of cells, use the Named Range utility in the Edit menu.
To specify an absolute cell address, insert a dollar sign ($) before the address coordinate to be fixed, or before both coordinates if the row and column coordinates are to be fixed. For example: $B$2.
To specify all or part of a cell address to be absolute, insert a dollar sign ($) before the address coordinate to remain fixed For example:
Cell ranges are also relative, so when you move a cell range, references in formulas within that range are updated to reflect their new location.
To specify an absolute range reference, insert dollar signs ($) before the coordinates in the formula. For example, to make the range A1..D5 absolute, type the reference as $A$1..$D$5.
To specify part of a cell range to be absolute, insert dollar signs only before the coordinates to remain absolute. For example, $A1..$D5 will fix the column coordinates of cell references but adjust the row coordinates to reflect the new location.
You can use the [F4] key when editing a cell to toggle through the addressing modes in a reference.
The format is as follows: #{column offset,row offset}
@CSUM(C4..C100,#{-1} == "Joe") calculates the sum of all the values in the range C4..C100 for which the cell in the column to the left contains the string "Joe."
@CCOUNT(C4..C100,# > #{0,-1}) counts all the cells in the range C4..C100 whose value is greater than the contents of the cell immediately above.
@XVALUE("master.xs5",#) returns the value of the same cell reference in which this function is stored from the sheet indicated.
#{-1}+2 adds 2 to the cell value from the cell to the left.
Sheet1, Sheet2,...Sheetn
The alternate form of sheet names is the same as column names:
A,B,C...AMI
The style of names used for new sheets is specified in the Workbook Defaults dialog and is controlled by the *defaultSheetNameFormat resource with values of N (numeric) or A (alphabetic). Sheets can also be given user-defined names. Sheet names are separated from cell specifications by either a period (.) or an exclamation point (!).
The upper left cell in the first sheet is: Sheet1.A1 or A.A1 Sheet1!A1 or A!A1
If an explicit sheet name is not specified, the cell reference is assumed to be on the current sheet. Sheet names (like column names) are case insensitive. Sheet1 is the same as SHEET1 and sheet1.
One or both of the cells which define the boundaries for a range may be qualified with a sheet name. Thus:
Sheet3.A1..Sheet9.A1 or C.A1..I.A1defines a range of 7 cells, drilling through the sheets.
Sheet3!A1..A5 or C.A1..A5defines a 5 cell range on Sheet3, which may not be the current sheet. By varying the sheet name, the column, and the row you can reference 3-dimensional ranges. For example:
Sheet1.A1..Sheet10.E10 or A.A1..J.E10defines a cubic solid containing 500 cells (10 sheets * 5 columns * 10 rows).
Just as row and column references may be relative or absolute, so can sheet names. Place a dollar sign ($) before the sheet name to prevent it from changing when formulas are are copied from one sheet to another.
To change the name of a sheet:
"cr�pe"!A5 "1997 Sales"!B5..J5 "Sales/Quarter"!B12
External cell references have the filename of the workbook enclosed in quotes and followed by two colons (::):
"book2.xs5"::Sheet1!A4 "/home/test/olddata.xls"::Sheet4.C1..C17 "part-table.xs5"::namedrange
If the referenced workbook is not active, the values of the cells are retrieved from the file on disk. If the referenced workbook file is opened by XESS, then the values dynamically change and the referencing workbook is recalculated as required.
Constraint expressions establish conditions under which a formula operates or boundaries for valid results of the formula. Constraint expressions may be simple equality/inequality relationships, or they can be arbitrary formulas. Any valid XESS expression which returns a numeric value is also a valid constraint expression. However, unlike the expression that defines a cell value, a constraint expression can reference the cell in which it resides, using the symbol #.
For example, the formula
=A1 + A2 ; #>2 && #<=B5 || #==C7means, "the value of the current cell is the sum of cells A1 and A2, and that value must be either greater than 2 and less than or equal to the value of cell B5, or equal to the value of cell C7."
Constraint expressions are used in several other contexts within XESS, including the Find and Extract Tools, and the conditional statistical functions.
The benefit of constraint expressions is maximized when combined with indirect reference support (#) as illustrated in the above example.
=@SUM(A1..A20)\D50instructs XESS to recalculate @SUM(A1..A20) whenever the contents of D50 change.
This feature is particularly important when you have a constraint expression containing an offset reference that produces a cell reference outside the cell range referenced in a dependent formula. Under these circumstances, Automatic Recalculation would not necessarily be triggered. Take for instance, the example from above:
@CCOUNT(C4..C100,# > #{0,-1}) counts all the cells in the range C4..C100 whose value is greater than the contents of the cell immediately above.
In order for C4 to be evaluated, it must be compared to C3 - which is not part of the explicit range, C4..C100. Without indicating an explicit dependency, C4 would never be evaluated properly. So, in this case, we could indicate the dependency as follows:
@CCOUNT(C4..C100,# > #{0,-1})\C3..C99which tells XESS to recalculate whenever any cell in the range C3..C99 changes.
To change or view the calculation options using the Recalc Options dialog box:
As Needed means that recalculation is highly optimized to recompute the minimum number of cells when updating the workbook. This can result in significant performance improvement for certain types of workbooks, particularly on very large workbooks.
As Needed does not support Constraint Checking and Iteration Limits.
Foreground means that minimal recalculation is performed, similar to other spreadsheets.
To change recalculation method:
To turn constraint-checking on:
To set iteration limit:
Other functions are used for more specialized purposes such as computing the future value of an investment or the product of multiplying one cell range by another range. Some functions perform calculations that arithmetic operators cannot handle such as text-string manipulations.
XESS functions fall into the following categories:
- Mathematical
- Statistical
- Conditional Statistical
- String
- Logic
- Digital Logic
- Financial
- Date and Time
- Miscellaneous
Function names can be entered without the initial @ as long as a left parenthesis immediately follows the function name. The User Preferences dialog controls whether the @ is displayed in formulas.
The following chart shows different types of arguments used in XESS functions.
Argument Example Numeric Value 123 Address of a cell A10 Address of a range F9..F99 Name of a cell or range BUDGET1, where BUDGET1 is the range D9..K9 String Value "Quarterly Report" Matrix constant {1,1,2,3,5,8,13,21}
=@CCOUNT(C3..C100,#>#{-1} )would not recalculate when the values in column B change. To make the formula recalculate when these values change, make the formula be:
=@CCOUNT(C3..C100,#>#{-1} )\B3..B10
This notion of explicit dependencies is important for recalculation. It guarantees that any cell that references B3 will not be recalculated until after cell B2 is recalculated. This ensures that data generated by the formulas is always current.
XESS also provides a full range of trigonometric functions as well as ones for matrix arithmetic and manipulation. Mathematical functions perform calculations with numeric values as arguments, returning numeric values.
Statistical functions return numeric values.
Conditional Statistical Functions return a numeric value.
These functions provide capabilities similar to those of database functions found in other spreadsheet products (e.g. DSUM).
String functions return strings or numeric values.
Logic functions return the value 1, 0, or a value.
Digital logic functions return the values 0, 1, or -1 (for unknown). Any argument value whose integer portion is not equal to 0 or 1 is considered unknown. Unknown input values may cause unknown output values. For example, @OR(1,27) returns 1, while @OR(0,27) returns -1.
Financial functions are most useful for solving cash flow calculations where you know all but one variable. For example, if you know the present value of an investment, interest rate, and periodic payment, you can use the @FV function to calculate the future value of the investment. If you know the future value and other variables, but need to know the present value, you can use the @PV function.
Many financial functions require specifying a Day Count Basis. A Day Count Basis indicates the way in which the days in a month and the days in a year are to be counted. Most of the financial functions in securities involve 4 different Day Count Basis: 30/360, actual/actual, actual/360 and actual/365.
30/360 Day Count Basis assumes 30-day months and 360-day years (12 months x 30 days). XESS also follows the "End-of-Month" rule which assumes that a security pays interest on the last day of the month and will always make its interest on the last day of the month. Special rules are followed when calculating the days between two dates on 30/360 Day Count Basis.
For example, let Start_Date = D1/M1/Y1, End_Date = D2/M2/Y2.
Financial functions use the following arguments:
- interest rate
- The interest rate to be used in the calculations. The rate may be specified as annual, monthly or quarterly, but it must agree with the increment you use for periods. By default the interest rate is an annual rate.
- present value
- The present value of an investment, representing the amount already received from or committed to an investment. period The number of periods over which the loan, investment or depreciation is to be calculated. The periods may be defined in months, quarters or years, but must agree with the increment used to define interest rate.
- future value
- The future value of an investment, given a certain present value, interest rate, and number of periods.
- cost
- The original cost of a depreciable capital asset.
- salvage value
- The remaining value of a capital asset after the depreciation period has expired. allowable life The allowable life of a depreciable item.
- yield
- The interest rate that will make the present value of the expected future cash flows equal to the price of the financial instrument.
- price
- The present value of the expected future cash flows where the discount rate is equal to the yield of the financial instrument.
- coupon rate
- The annual coupon rate of a security.
- frequency
- The number of coupon payments in a year.
- basis
- The day count basis to be used in calculation.
Functions related to fixed income securities usually require special dates as arguments: issue date, settlement date, first coupon date, last coupon date, maturity date of a security. When specified, the following constraints should be followed:
issue > settlement > maturity
issue > first coupon > maturity
issue > last coupon > maturity
XESS internally stores date and time information using the same conventions as other popular spreadsheet programs:
Using this convention, date and time values may be used together. For example, the date/time value 2.25 corresponds to 6:00:00 AM, January 1, 1900.
- Dates
- are represented as an integer equal to the number of days before or since December 30, 1899 (or January 1, 1904 for the 1904 date system).
- Times
- are represented as fractions of a day, starting at midnight. For example, 6:00 AM is stored as .25 (a quarter of a 24-hour day).
S = a string representing a cell, a range, or a named range
@@ returns a reference to the cell or range represented by S. Also known as an indirect reference.
Example:
@@("B17") = 17, where B17 = 17
@SUM(@@("B2..B7")) = 24, where B2..B7 = 12, 1, 0, 4, and 7
X = a numeric value or cell reference containing a numeric value
@ABS returns the absolute (positive) value of X.
Example:
@ABS(5) = 5
@ABS(-5) = 5
@ABS(C15) = 10, where C15 = -10
@SQRT(@ABS(D4)) = 10, where D4 = -100
I = The issue date
Ft = The first interest date
S = The settlement date
R = The annual coupon rate
P = The par value of the security
F = The number of coupon payments per year (frequency):
B = (Optional) The day count basis to be used:1 annual
2 semi-annual
4 quarterly
0 or omitted 30/360
1 actual/actual
2 actual/360
3 actual/365
Examples:
A security has the following terms: 4/1/93 settlement date, 6/1/93 maturity date, 10% semiannual coupon, $1000 par value, 30/360 basis:@accrint(34060,34121,10%,1000,2,0) = 33.333
I = The issue date, a date/time value.
S = The settlement date, a date/time value.
R = The annual coupon rate.
P = The par value of the security.
B = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@ACCRINTM returns the accrued interest for a security that pays interest at maturity.
Example:
@ACCRINTM(C6,C7,C8.C9,C10) = 39.3442, where C6 = 02/03/1992, C7 = 07/12/1992, C8 = 9%, C9 = 1000 and C10 = 1
X = a numeric value between -1 and 1.
@ACOS returns the arc cosine of angle X. The result is the angle (in radians) whose cosine is X and ranges from 0 to p. To convert the result from radians to degrees, use the @DEGREES function.
Examples:
@ACOS(1) = 0
@ACOS(R3) = 1.670963748, where R3 = -0.1
@DEGREES(@ACOS(0)) = 90
@ACOS(-20) = Error - @ACOS, domain is -1 <= x <= 1
X = a numeric value greater than or equal to 1.
@ACOSH returns the hyperbolic arc cosine of angle X. The result is the angle (in radians) whose hyperbolic cosine is X.
Examples:
@ACOSH(5) = 2.2924317
@ACOSH(F5) = 5.192926, where F5 = 90
@ACOSH(-1) = Error - @ACOSH, domain is x >= 1
X = a numeric value
@ACOT returns the arc cotangent of X.
Examples:
@ACOT(0) = 1.5707963
@ACOT(20) = 0.049958396
X = a numeric value
@ACOTH returns the hyperbolic arc cotangent of X.
Examples:
@ACOTH(40) = 0.02500521
@ACOTH(0) = Error - @ACOTH, domain is x > 1
@ACOTH returns the hyperbolic arc cotangent of X.
Examples:
@ACOTH(40) = 0.02500521
@ACOTH(0) = Error - @ACOTH, domain is x > 1
X = a numeric value
@ACSC returns the arc cosecant of X.
Examples:
@ACSC(1) = 1.5707963
@ACSC(0.5) = Error - @ACSC, domain is x >= 1
X = a numeric value
@ACSCH returns the hyperbolic arc cosecant of X.
Examples:
@ACSCH(1) = 0.88137359
@ACSCH(0) = Error: x must not be zero
X = an expression
S = a string ( evaluated as an expression if X is non-zero )
@ALARM evaluates expression X. If X evaluates to non-zero, it beeps and returns the result of evaluating string S as an expression. If X evaluates to zero, S is not evaluated and the return value is zero. @ALARM was important because, prior to Version 3, XESS always evaluated both the true and false clauses of @IF. This could cause side effects with remote functions.
Examples:
@ALARM(Pressure > 500, "@REMOTE_FN(Pressure)") If "Pressure" exceeds 500, then the terminal beeps and REMOTE_FN is called with the value of "Pressure".
argumentlist = any combination of numbers, cells, or ranges
@AND returns 1 if all arguments are 1; 0 if any argument is 0; otherwise -1 (unknown).
Examples:
A1=1, B1=1, C1=0, D1=0, E1=1 and A2=24
@AND(A1,B1) = 1
@AND(A1..E1) = 0
@AND(A1..A2) = -1
Text = a string value of the annotation
X, Y = numeric values representing graph coordinates
H, V = numeric values representing alignment
@ANNOTATE allows you specify a coordinate at which a label (Text) will be displayed in the data area of a 2-dimensional graph, and also how that label will appear in relation to the coordinate. X and Y represent the coordinates of the label on the graph.
H (horizontal alignment)and V (vertical alignment) are optional values that represent the text spacing offset of the label. If V is specified, H must be specified; however, you may specify only H. This is a convenience function for creating strings of the form accepted by the XESS graph annotation mechanism. For more information on annotation see Graphs.
Examples:
@ANNOTATE("Average",5/2,12,1,0.5) = "(2.5,12,1.0,5)Average"
@ANNOTATE("Data Point",5,10)= "(5,10)Data Point"
@ANNOTATE("x^2",6,36,-1/4) = "(6,36,-0.25)x2"
X = a numeric value
@ASEC returns the arc secant of X.
Examples:
@ASEC(1) = 0
@ASEC(1e+100) = 1.5707963
@ASEC(0) = Error: @ASEC, domain is abs(x) >= 1
X = a numeric value
@ASECH returns the hyperbolic arc secant of X.
Examples:
@ASECH(0.1) = 2.9932228
@ASECH(1000) = Error: @ASECH, domain is 0 < x < 1
X = a numeric value between -1 and 1.
@ASIN returns the arc sine of angle X. The result is the angle (in radians) whose sine is X and ranges from p/2 to -p/2. To convert the result from radians to degrees, use the @DEGREES function.
Examples:
@ASIN(A2) = 1.570796327, where A2 = 1
@DEGREES(@ASIN(V7)) = -11.536959, where V7 = -0.2
@ASIN(30) = Error - @ASIN, domain is -1 <= x <= 1
X = a numeric value
@ASINH returns the hyperbolic arc sine of angle X. The result is the angle (in radians) whose hyperbolic sine is X.
Examples:
@ASINH(1) = 0.88137359
@ASINH(L7) = -0.60282073, where L7 = -0.64
X = a numeric value expressed in radians.
@ATAN returns the 2-quadrant arc tangent of angle X. The result is the angle (in radians) whose tangent is X and ranges from -p/2 to p/2. To convert radians to degrees, use the @DEGREES function.
Examples:
@ATAN(.5) = 0.463647609
@ATAN(J44) = -0.785398163, where J44 = -1
@DEGREES(@ATAN(U6)) = 87.70939, where U6 = 25
X = a numeric value
Y = a numeric value
@ATAN2 returns the 4-quadrant arc tangent of Y/X. At least one of the arguments must be non-zero. The result is the angle (in radians) and ranges between -p and p. To convert the result from radians to degrees, use the @DEGREES function.
Examples:
@ATAN2(1,1) = 0.78539816
@ATAN2(A1,A2) = -0.78539816, where A1 = 10 and A2 = -10
@ATAN2(D3,S5) = 1.5707963, where D3 = 0 and S5 = 1
@ATAN2(0,0) = Error - @ATAN2, one argument must be non-zero
@DEGREES(@ATAN2(1,3)) = 71.565
X = a numeric value between -1 and 1
@ATANH returns the hyperbolic arc tangent of angle X. The result is the angle (in radians) whose hyperbolic tangent is X.
Examples:
@ATANH(0) = 0
@ATANH(J20) = 1.127029, where J20 = 0.81
@ATANH(1) = Error - @ATANH, domain is -1 < x < 1
argumentlist = any combination of numbers, cells, or ranges
@AVERAGE returns the average (arithmetic mean) of its arguments. Empty cells and strings are ignored.
Examples:
@AVERAGE(A1,B9,J32,F16) = 21.125, where A1 = 12, B9 = 34.5, J32 = 22, F16 = 16
@AVERAGE(A1,A12..H13,111+32) = 135.67, where we don't really care what is at those variables, but which shows that you can use numbers, ranges, and expressions all together as arguments for @AVG.
argumentlist = any combination of numbers, cells, or ranges
@AVG returns the average (arithmetic mean) of its arguments. Empty cells and strings are ignored. Another name for @AVERAGE.
X = a numeric value
N = an integer value
Computes the modified Bessel function of integer order In(x).
X = a numeric value
N = an integer value
Computes the Bessel function of integer order Jn(x)
X = a numeric value
N = an integer value
Computes the modified Bessel function of integer order Kn(x).
X = a numeric value
N = an integer value
Computes the Bessel function of integer order Yn(x), also known as the Neumann function.
Returns the Beta function. z and w must be > 0.
Returns the Incomplete Beta function. a and b must be > 0. x must be 0 <= x <= 1.
argumentlist = any combination of cells or ranges
C = a constraint expression
@CAVG returns the average (arithmetic mean) of those arguments which satisfy the constraint C. Empty cells and strings are ignored.
Examples:
@CAVG(A1..A5,#<6) = 2.333333, where A1..A5 are 2, 2, 3, 6, and 7
@CAVG(E1..E3,#>10) = Error - @CAVG, sample size less than 1, where E1 = 1, E2 = 5, and E3 = 0
@CAVG(B7..E10,#<#{-1}) = 15, where the average of the numbers in range B7..E10 which are less than the value of the cell to their left is 15.
argumentlist = any combination of cells or ranges
C = a constraint expression
@CCOUNT returns a count of its non-empty arguments which satisfy the constraint C. Cells containing strings are counted.
Examples:
@CCOUNT(T2..T6, #==W2) = 1, where T2..T6 are 4, 7, 2, 8, 0 and W2 = 7
@CCOUNT(E1..E3,#>=0) = 3, where E1 = 1, E2 = 5, and E3 = 0
@CCOUNT(C4..C100,#>#{0,-1}) = 68, counts those cells in range C4..C100 whose value is greater than the contents of the cell immediately above
X = a numeric value
@CEIL returns the smallest integer that is greater than or equal to X.
Examples:
@CEIL(5.5) = 6
@CEIL(E3) = -9, where E3 = -9.99
@CEIL(C17) = 1, where C17 = 1
Property = a string value
Cell = a cell reference
Return many useful things about a cell. Case is ignored in property names. The available property names are:
- "Address"
- The coordinates of the cell, as a string in A1 notation. For example, @CELL("address",C4) is equal to the string "$C$4". The sheet name is NOT included.
- "BackGroundColor"
- Index of background color
- "Bold"
- 1 if Bold attribute; 0 otherwise
- "BottomBorder"
- Index of border style
- "BottomBorderColor"
- Index of border color
- "Col"
- The number of the column containing the cell. Equivalent to the @COL(cell) function.
- "Contents"
- Contents (value) of the cell
- "Coord"
- The fully-qualified coordinates of the cell, as a string. For example, @CELL("coord",C4) on Sheet1 would be equal to the string "$Sheet1!$C$4".
- "FontFace"
- Index number of font family
- "FontSize"
- In points. 0 indicates default value
- "FontStyle"
- Font Style
0 Standard
1 Italic
2 Bold
3 Bold Italic- "Halign"
- Horizontal Alignment
0 Default
1 Left
2 Right
3 Center
4 Automatic- "Italic"
- 1 if Italic; 0 otherwise
- "LeftBorder"
- Index of border style
- "LeftBorderColor"
- Index of border color
- "Orientation"
- The orientation property
0 Default
1 Horizontal
2 Vertical
3 Up
4 Down- "Pattern"
- Background pattern index
- "PatternColor"
- Index of pattern foreground color
- "Protect"
- Cell protection attribute
0 Default
1 Off
2 On- "RightBorder"
- Index of border style
- "RightBorderColor"
- Index of border color
- "Rotation"
- The amount of rotation for letters, in degrees (NOT the same as the orientation). So the cells using the Vertical orientation have the same rotation as cells using the Horizontal rotation, but cells using Up or Down orientation have either +90 or -90 rotation.
- "Row"
- The number of the row containing the cell. Equivalent to the @ROW(cell) function.
- "Sheet"
- The number of the sheet containing the cell. Equivalent to the @SHEET(cell) function.
- "SheetName"
- The name of the sheet containing the cell.
- "StrikeThrough"
- 1 if strikethrough attribute; 0 otherwise.
- "TextColor"
- Index of color used for cell text.
- "TopBorder"
- Index of border style.
- "TopBorderColor"
- Index of border type
- "Type"
b empty ("blank")
l label (string constant)
v anything else- "Underline"
- Underline attribute
0 Default
1 None
2 Single underline
3 Double underline- "Valign"
- Vertical alignment
0 Default
1 Top
2 Bottom
3 Center- "Wrap"
- Word-wrap attribute
0 Default
1 Off
2 On
Property = a string value
Returns cell attribute information about the current cell (containing a formula using this function). The values for property are the same as for the @CELL function.
N1 = a numeric value
N2 = a numeric value
@CELLREF returns a reference to the cell whose column index is N1 and whose row index is N2. Column indices start with 0, so the column index for column A is 0, B is 1, etc. Row indices are the same as the row number, and therefore start with 1.
Examples:
@CELLREF(3,1) = -80, where D1 = -80
@CELLREF(27,34) = 2400, where AA34 = 2400
@CELLREF(4,8) = 100.00, where E8 = 100.00
n = an ASCII code from 1 to 255
@CHAR returns the character represented by the integer code n.
Examples:
@CHAR(55) = "7"
@CHAR(C2) = "C", where C2 = 67
@CHAR(F5) = "�", where F5 = 163
N = a numeric value
argumentlist = any combination of numbers, strings, or cell addresses separated by commas.
@CHOOSE returns the Nth argument from the argument list, starting with an index of 0. N should be less than the number of items in argumentlist - 1.
Examples:
@CHOOSE(2,D1,C22,F5,K1) = 54, where F5= 54
@CHOOSE(1,A9,D23,G12) = "Peaches", where D23 = "Peaches"
@CHOOSE(3,"nuts","rings","bolts","fittings") = "fittings"
@SUM(@CHOOSE(A1>B1,B1..B10,A1..A10)) sums either column A or column B.
S = a string value
@CLEAN returns the string formed by removing all non-printing characters from the string S.
Examples:
@CLEAN(A1) = "test", where A1=@STRCAT(A2,A3), A2="test" and A3=@CHAR(10)
argumentlist = any combination of cells or ranges
C = a constraint expression
@CMAX returns the maximum value among its arguments which satisfy the constraint C. Empty cells and cells containing strings are not counted.
Examples:
@CMAX(A1..A6,#<@SUM(A11,A12)) = 56, where A1..A6 are 4, 56, 33, 100, 0, -1; A11=50 and A12=50
@CMAX(S3..S7,#<0) =-1, where S3..S7 = -1, -4, -99, -20, and -1.5
@CMAX(F1..F25,#<D1||#>D2) = 1.99, where the maximum of the values in range F1..F25; are less than D1 or greater than D2.
argumentlist = any combination of cells or ranges
C = a constraint expression
@CMIN returns the minimum value among its arguments which satisfy the constraint C. Empty cells and cells containing strings are not counted.
Examples:
@CMIN(A1..A6,#<@SUM(A11,A12)) = -1, where A1..A6 are 4, 56, 33, 100, 0, -1 and A11=50 and A12=50
@CMIN(S3..S7,#<0) = -99, where S3..S7 = -1, -4, -99, -20, and -1.5 @=code(CMIN(F1..F25,#<D1||#>D2) = .99, where the minimum of the values in range F1..F25; are less than D1 or greater than D2.
S = a string value
@CODE returns the ASCII code for the first character in string S.
Examples:
@CODE("test") = 116
@CODE(H100) = 107, where H100 = "k"
@CODE(M10) = 56, where M10 = "89"
C = a cell or range. If C is omitted the current column will be returned.
@COL returns the column index of the cell referenced by C, or the left-most column if C is a range.
Examples:
@COL(A1) = 0
@COL(F10..G19) = 5
@COL = 25, where @COL is in cell Z20.
R = a range
@COLS returns the number of columns in the specified range.
Examples:
@COLS(A3..J17) = 10
Sheet = sheet number (1 origin)
Column = column number (0 origin for column A)
Row = row number (1 origin)
Flags = an integer
Returns a string giving a cell specification. Sheet and row are 1-origin and column is 0-origin, to be consistent with other functions such as @CELLREF. The flags argument specifies which elements in the address string are absolute.
For example, the function reference =@COORD(1, 0, 1, flags) would return the following strings for the possible values of flags:
1 - $Sheet1!$A$1
2 - $Sheet1!A$1
3 - $Sheet1!$A1
4 - $Sheet1!A1
5 - Sheet1!$A$1
6 - Sheet1!A$1
7 - Sheet1!$A1
8 - Sheet1!A1
R1 = a range
R2 = a range
@CORR returns Pearson's product-moment correlation coefficient for the paired data in ranges R1 and R2. R1 and R2 must have the same dimensions. The result is between -1 and 1.
@CORR can be used to determine whether pairs of data are statistically related. The closer the correlation is to zero, the less likely that they are related.
Examples:
@CORR(A1..A4,B1..B4) = 0.44213546, where A1..A4 = .5, .98, .22, .1, and B1..B4 = .87, .6, .21, .49.
@CORR(H5..H9,K5..K9) = 0.92384914, where H5..H9 = 14, 35, 37, 0, 33, and K5..K9 = 67, 77, 94, 34, 99.
@CORR(F1..F9,G1..G15) = Error - @CORR, ranges must be same dimensions
X = a numeric value expressed in radians.
@COS returns the cosine of angle X. The result is between -1 and 1. To convert the argument from degrees to radians, use the @RADIANS function.
Examples:
@COS(-45) = 0.52532199
@COS(K24) = 0.5403023, where K24 = 1
@COS(@RADIANS(30)) = 0.866025
X = a numeric value
@COSH returns the hyperbolic cosine of angle X. The result is greater than or equal to 1.
Examples:
@COSH(1) = 1.543080635
@COSH(FF1) = 3.762195691, where FF2 = -2
@COSH(0) = 1
X = a numeric value
@COT returns the cotangent of X.
X = a numeric value
@COTH returns the hyperbolic cotangent of X.
argumentlist = any combination of numbers, cells, or ranges
@COUNT returns a count of its non-empty arguments. Cells that contain strings are counted.
Examples:
@COUNT("Tom","Bob","Sue","Mary","Zack","Ann") = 6
@COUNT(D4..D8) = 3, where D4 is empty, D5 = 1, D6 is empty, D7 = 0, and D8 = 5
@COUNT(E5..J10) = 30, E5..J10 contains 36 cells, therefore 6 cells are empty
S = The settlement date
M = The maturity date
F = The number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@COUPDAYSBS returns the number of days between the beginning of the coupon period and the settlement date.
Examples:
@COUPDAYBS(@DATE(1993,2,15),@DATE(1994,12,20),2,0) = 55
@COUPDAYBS(@DATE(1993,2,15),@DATE(1994,12,20),2,1) = 57
S = The settlement date
M = The maturity date
F = The number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@COUPDAYS returns the number of days in the coupon period that the settlement date is in.
Examples:
@COUPDAYS(@DATE(1993,2,15),@DATE(1994,12,20),2,0) = 180
@COUPDAYS(@DATE(1993,2,15),@DATE(1994,12,20),2,1) = 182
S = The settlement date
M = The maturity date
F = The number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@COUPDAYSNC returns the number of days between the settlement date and the next coupon date.
Example:
@COUPDAYSNC(@DATE(1993,2,15),@DATE(1994,12,20),2,0) = 125
S = The settlement date
M = The maturity date
F = The number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@COUPNCD returns the next coupon date after the settlement date.
Example:
@COUPNCD(@DATE(1993,2,15),@DATE(1994,12,20),2,0) = 34140 or 20-Jun-1993
S = The settlement date
M = The maturity date
F = The number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@COUPNUM returns the number of coupon payments between the settlement date and the maturity date.
Example:
@COUPNUM(@DATE(1993,2,15),@DATE(1994,12,20),2,0) = 4
S = The settlement date
M = The maturity date
F = The number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@COUPPCD returns the previous (most recent) coupon date before the settlement date.
Example:
@COUPPCD(@DATE(1993,2,15),@DATE(1994,12,20),2,0) = 33958 or 12/20/1992
X = a non-zero numeric value
@CSC returns the cosecant of X.
Examples:
@CSC(0.01) = 100.00167
@CSC(3) = 7.0861674
@CSC(4) = -1.3213487
X = a numeric value
@CSCH returns the hyperbolic cosecant of X.
Examples:
@CSC(1) = 0.85091813
argumentlist = any combination of cells or ranges
C = a constraint expression
@CSTD returns the standard deviation (N weighting) of its arguments that satisfy the constraint C. Empty cells and cells containing strings are not counted.
Examples:
@CSTD(A1..A3,#<10) = 2.6246693, where A1..A3 are 1, 2, and 7
@CSTD(Y1..Y5,#>25) = 6.6833126, where Y1..Y5 = 22,24,29,34,45
argumentlist = any combination of cells or ranges
C = a constraint expression
@CSTDS returns the sample standard deviation (N-1 weighting) of its arguments which satisfy the constraint C. Empty cells and cells containing strings are not counted.
Examples:
@CSTDS(A1..A3,#<10) = 3.2145503, where A1..A3 are 1, 2, and 7
@CSTDS(Y1..Y5,#>25) = 8.1853528, where Y1..Y5 = 22, 24, 29, 34, and 45
argumentlist = any combination of cells or ranges
C = a constraint expression
@CSUM returns the sum of its arguments which satisfy the constraint C. Empty cells and text cells are not counted.
Examples:
@CSUM(L1..L3,#<5) = 1.32, where L1 = 1.32, L2 = 5.45, L3 = 8.32
@CSUM(C5..C10,#>=D1/D10) = 150, where C5..C10 are 10, 20, 30, 40, 50, and D1 = 100 and D10 = 10
R = interest rate
FV = future value of the investment
PV = present value of the investment
@CTERM calculates the number of compounding periods required for an investment of PV to reach a value of FV at the given interest rate R.
Examples:
@CTERM(0.085,1500,1000) = 4.97 (years, if the annual interest rate is 8.5%)
@CTERM(B5,D5,C5) = 11, where B5 = 10.5%, D5 = $300,000, and C5 = $100,000
@CTERM(.09,1900,1100) = 6.3
R = Rate, a numeric expression
N = Number of payments, an integer > 0
P = Present value
S = Starting period in calculation
E = Ending period in calculation
T = (Optional) timing of the payment
0 payment is made at the end of the period 1 payment is made at the beginning of the period
@CUMIPMT returns the cumulative interest paid between S (the start) and E (the end) on a loan. Make sure that you are consistent about the units used for specifying R and N. For Example, for a 4-year loan with 10% annual interest rate, use 10%12 for R and 4*12 for N)
Example:
@CUMIPMT(9.5%/12,30*12,100000,1,12, 0) = 9473.61
R = Rate, a numeric expression
N = Number of payments, an integer > 0
P = Present value
S = Start of loan
E = End of loan
T = (Optional) timing of the payment
0 payment is made at the end of the period 1 payment is made at the beginning of the period
@CUMPRINC returns the cumulative principal paid between S (the start) and E (the end) on a loan. Make sure that you are consistent about the units used for specifying R and N. For Example, for a 4-year loan with 10% annual interest rate, use 10%12 for R and 4*12 for N)
Example:
@CUMPRINC(9.5%/12,30*12,100000,1,12, 0) = 616.64
argumentlist = any combination of cells or ranges
C = a constraint expression
@CVAR returns the population variance (N weighting) of its arguments which satisfy the constraint C. Blank cells and cells containing strings are not included.
Examples:
@CVAR(Y1..Y5,#<25) = 1, where Y1..Y5 = 22, 24, 29, 34, and 45
@CVAR(A1..A3,#<C2*E7) = 6.8888889, where A1..A3 are 1, 2, 7, and C2 = 5 and E7 = 2
argumentlist = any combination of cells or ranges
C = a constraint expression
@CVARS returns the sample variance (N-1 weighting) of its arguments which satisfy the constraint C. Empty cells and cells containing strings are not included.
Examples:
@CVARS(Y1..Y5,#<25) = 2, where Y1..Y5 = 22, 24, 29, 34, and 45
@CVARS(A1..A3,#<C2*E7) = 10.333333, where A1..A3 are 1, 2, 7, and C2 = 5 and E7 = 2
Y = year
M = month
D = day
@DATE returns the date value corresponding to year Y, month M, and date D. If Y is between 0 and 99, it is assumed to be in the current century. Otherwise, it represents the year from 100 to 3999.
Examples:
@DATE(66,4,6) = 24203, April 6, 1966
@DATE(366) = Error! wrong number or arguments
S = string value of a date
@DATEVALUE returns the corresponding date value for a given string S. It interprets the value of S as if it had been entered into a cell.
The year may be given as 2 or 4 digits. A two year digit assumes the current century.
In the above formats, the month (MMM) is case insensitive and may be either the standard 3 letter abbreviation or the full name of the month.
Examples:
@DATEVALUE("3/24/1954") = 19807
@DATEVALUE("3/24/54") = 19807
@DATEVALUE("4-July-1994") = 34519
@DATEVALUE("4-July") = 34519, where the year is omitted, and assuming the year is 1994.
@DATEVALUE("September-94") = 34578
@DATEVALUE("Sep-1994") = 34578
@DATEVALUE("SEP") = 34578, where the year is omitted, and assuming the year is 1994.
@DATEVALUE("06.04.66") = 24203
@DATEVALUE("06.04.1966") = 24203
CAUTION: When the year is defaulted, the value returned by @DATEVALUE will vary depending on the year.
DT = a date/time value
@DAY returns the day of the month component of the date/time value DT.
Examples:
@DAY(24203) = 6 (24203 represents April 6, 1966)
@DAY(@TODAY) = 25, where TODAY = January 25, 1994
@DAY(366) = 31 (366 represents December 31, 1900)
S = Start date
E = End date
@DAYS360 returns the number of days between two dates, based on a 30/360 Day Count Basis (30-day-per-month, 360-day year.) Please refer to "Financial Functions" in Chapter 7 for more detail on 30//360 day count basis.
Examples:
@DAYS360(@DATE(1992,5,1),@DATE(1992,6,1)) = 30
@DAYS360(@DATE(1993,2,28),@DATE(1993,3,1)) =1
@DAYS360(@DATE(1992,2,28),@DATE(19923,1)) = 3 (1992 is a leap year.)
C = Initial cost of asset
S = Salvage value of asset
L = Number of periods over which the asset is depreciating (life)
N = Number of periods over which to calculate the depreciation
M = (Optional) Number of months in the first year. Assumed to be 12 if omitted.
@DB returns the fixed-declining real depreciation of an asset for a specified period.
Example:
@DB(40000,100,6,3,2) = 8323.1198
C = cost
S = salvage value
L = allowable life
P = the period for which the double declining depreciation allowance is being calculated
@DDB returns the double-declining depreciation allowance given cost C, salvage value S, allowable life L, and N number of depreciation periods.
The double declining balance depreciation allowance for the Pth depreciation period (DDBp) is calculated by the following iteration formula, where BVi is the following iteration formula, where BVi is the book value for the ith depreciation period. BV0 = C for i=1 to P do DDBi = max(2(BVi / L), 0) BVi = max(BVi-1�DDBi, S)
Examples:
@DDB(200,120,25,10) = 9.6
@DDB(F9,F5,10,6) = 524.29, where F5 = $1800.00 and F9 = $8000.00
@DDB(200,220,10,7) = error!, must have "cost" >= "salvage" >= 0
X = a numeric value
@DEGREES returns 180/p * X.
Examples:
@DEGREES(0.5) = 28.64789
@DEGREES(@PI) = 90
Returns a 1 if number1 == number2, or 0 if number1 != number2. If number2 is not specified, it is assumed to be 0.
M = a range, which must contain an equal number of rows and columns.
@DET returns the determinant of the matrix specified by the range M, which must be square.
Examples:
Matrix A1..C3A B C 1 1 2 6 2 3 4 11 3 4 7 2@DET(A1..C3) = 37 @DET(A1..B3) = Error - @DET, matrix must be square
S = Settlement date
M = Maturity date
P = Price per $100
R = Redemption value per $100
B = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@DISC returns the discount rate of a security.
Examples:
@DISC(@DATE(1993,1,10), @DATE(1993,7,20),97.375,100,3) = 0.05016
@DISC(@DATE(1993,1,10), @DATE(1993,7,20),97.375,100) = 0.04974
R = a range representing a vector
@DFT generates the Discrete Fourier Transform of the given range R. R must represent a real vector (either its row or column dimension must be 1), or a complex vector (either its row or column dimension must be 2). The result is a complex vector.
Example:
Vector C1..C4C 1 1.2 2 3.4 3 54.3 4 0.34 @DFT(C1..C4) = 59.2 0 -53.1 3.06 51.8 0 -53.1 -3.06
D = Dollars (in fractional form)
F = Fraction (denominator of fraction)
@DOLLARDE returns the amount in Dollar Decimal form of an amount expressed in fractional form.
Examples:
@DOLLARDE(1.02,8) = 1.025
@DOLLARDE(1.2,8) = 1.25
@DOLLARDE(10.16,32) = 10.5
D = Dollars (in decimal form)
F = Fraction (denominator of fraction)
@DOLLARFR returns the amount in Dollar Fractional form of an amount expressed in decimal form.
Examples:
@DOLLARFR(1.025,8) = 1.02
@DOLLARFR(1.25,8) = 1.2
@DOLLARFR(10.5,32) = 10.16
R1= a vector
R2 = a vector
@DOT returns the dot product of two vectors. R1 must have the same number of rows and columns as R2, or R1 and R2 can be one-dimensional vectors of the same length.
Examples:
Matrix 1, A1..B2 A B 1 1 3 2 2 4 Matrix 2, C1..D2 C D 1 9 5 2 2 4@DOT(A1..B2,C1..D2) =44 @DOT(A1..B1,C1..C2) = 15 @DOT(A1..B2,D1..D2) = Error - @DOT, incompatible range dimensions
S = Settlement date
M = Maturity date
C = Annual coupon rate
Y = Annual yield
F = Number of payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@DURATION returns the Macauley duration for an assumed par value of $100.
Example:
@DURATION(@DATE(1990,1,1),@DATE(1995,1,1),10%,8%,2,0) = 4.0954
S = Start date
M = Months
@EDATE returns a date/time value representing the date M months after S if M is positive, and M months previous to S if M is negative. The date returned will be on the same day of the month as S.
Examples:
@EDATE(@DATEVALUE("2/29/1992"),3) = 33753 or 05/29/1992
@EDATE(@DATEVALUE("2/29/1992"),12) = 34028 or 2/28/1993
@EDATE(@DATEVALUE("3/30/1993"),-6) = 33877 or 09/30/1992
R = Nominal rate
P = Number of compounding periods per year
@EFFECT returns the effective annual interest rate.
Example:
@EFFECT(6.75%,5) = 0.06935
M = a matrix
@EIGEN generates the eigenvalues of the matrix M, which must be square and symmetric.
Examples:
Matrix B9..C10 B C 9 0 1 10 1 2 @EIGEN(B9..C10) = -0.414 2.4142 Matrix A1..B4 A B 1 .99 0 2 3 6.2 3 4.1 1.1 4 3.3 6.3 @EIGEN(A1..B4) = Error - @EIGEN, matrix must be square
S = a string
Returns the value of the environmental variable whose name is in the string S.
S = Start date, a date/time value
M = Months, an integer
Returns a date/time value representing the date M months after S, if M is positive, and M months before S, if M is negative. The date returned will be on the last day of the month.
Examples:
@EOMONTH(@DATEVALUE("7/7/1993"),-24)= 33450 or 7/31/1991
@EOMONTH(@DATEVALUE("4/15/1994"),2)= 34515 or 6/30/1994
L = Lower bound for integrating ERF, L>=0
U = (Optional) Upper bound for integrating ERF
@ERF returns the error function integrated between L and U. If U is omitted, @ERF integrates between 0 and L:202
Examples:
@ERF(1) = 0.8427
@ERF(0.35) = 0.3794
@ERF(0.35,0.89) = 0.4125
L = Lower bound for integrating ERF, L>=0
@ERFC returns the complementary error function integrated between L and infinity.
Example:
@ERFC(1) = 0.1573
@ERFC(0.35) = 0.6206
Returns an error indicator for this cell.
Returns the even number with the next larger absolute value. EVEN(1) = 2, EVEN(-1) = -2.
S1 = a string value
S2 = a string value
@EXACT returns 1 if string S1 exactly matches string S2; returns 0 otherwise.
Examples:
@EXACT("computer","computer") = 1
@EXACT("Abc","abc") = 0
X = a numeric value
@EXP returns e raised to the power specified by the argument, where e is the base of the natural log 2.71828183. @EXP is the inverse of the natural log function @LN.
Examples:
@EXP(1) = 2.71828183
@EXP(D30) = 1, where D30 = 0
@LN(@EXP(X4)) = 5.1, where X4 = 5.1
@EXP(710) = Error - @EXP, floating exception
M,N = degrees of freedom
X = bound
@F returns the integral of Snedecor's F-distribution with M and N degrees of freedom from minus infinity to X.
Examples:
@F(14,35,99) = 1
@F(D3,W2,Y8) = Error - @F, degrees of freedom must be > 0, where D3 = .5, W2 = 0, and Y8 = .99
@F(B1,B2,B3) = 0.77459667, where B1 = 1, B2 = 2, and B3 = 3
N = a numeric value
@FACT returns N! of N. The formula is computed as:
N! = N * (N-1)! 0! = 1
Examples:
@FACT(4) = 24, because 4! = 4 * 3 * 2 * 1
@FACT(C13) = 3628800, where C13 = 10
@FALSE returns 0.
Examples:
@FALSE = 0
@IF(B17 == 0,@TRUE,@FALSE) = 0, where B17 is not equal to 0
R = a range
@FFT generates the Discrete Fourier Transform of the range R using a Fast Fourier Transform algorithm. The length of the range must be a power of 2. @FFT will produce the same results a @DFT, but it is much faster (N*log(N)) time, as opposed to N2 time).
S = a string value
@FILEEXISTS returns the value 1 if file S can be opened for reading; otherwise 0.
Examples:
@FILEEXISTS("connections.c") = 1
@FILEEXISTS("Q1EXPENSES96.XS5") = 1
@FILEEXISTS("Q1EXPENSES90.WKS") = 0
S1 = a string value
S2 = a string value
N = a numeric value
@FIND returns the index of the first occurrence of string S1 in string S2, starting the search at position N in string S2. Note that the string index always starts with 0.
Examples:
@FIND("bc","abcdefg",0) = 1
@FIND(V1,V2,5) = 9, where V1 = "Functions", and V2 = "Built-in Functions"
@FIND(V1,V2,5) = Error - @FIND, substring not found, where V1 = "Built-in" and V2 = "Functions"
X = a numeric value
@FLOOR returns the largest integer less than or equal to X.
Examples:
@FLOOR(5.5) = 5
@FLOOR(E3) = -10, where E3 = -9.99
@FLOOR(C17) = 3, where C17 = 3.45
X'= New x value
X = Old x value
Y = Old y value
@FORECAST returns Y', the predicted value for y for X', given original x and y values X and Y.
Example:
A B 1 20 6 2 28 7 3 31 9 4 38 15 5 40 21 @FORECAST(30, A1..A5, B1..B5) = 10.60725
F = the XESS format code
N = the precision level, from 0 to 15
X = a numeric value
@FORMAT returns the string formed by formatting the numeric value X using the XESS format code F and the precision specified by N.
Examples:
@FORMAT("dollars",2,660406) = "$660,406.00"
@FORMAT("hex",0,660406) = "OxA13B6"
@FORMAT("general",2,660406) = "6.6e+05"
X = a numeric value
@FRAC returns the fractional portion of X.
Examples:
@FRAC(232.45566) = 0.45566
@FRAC(20) = 0
@FRAC(@PI) = 0.14159265
R = a range of values on which frequencies will be counted
B = a range of intervals used to group values in R.
@FREQUENCY returns a frequency distribution for a set of values R with a set of intervals B
Example:
@FREQUENCY(A1..A8,B1..B2) = 3,2,2 where A1..A8 = 70,79,80,61,83,93,88,97 and B1..B2 = 80,90
R1 = a range
R2 = a range
@FTEST returns the significance level (alpha) of the two-sided F-test on the variances of the data specified by ranges R1 and R2. Alpha is the probability of error in rejecting the null hypothesis that var[R1]=var[R2].
Examples:
@FTEST(A1..A4,B1..B4) = 0.57065573, where A1..A4 = .5, .98, .22, .1, and B1..B4 = .87, .6, .21, .49
@FTEST(H5..H9,K5..K12) = 0.62049415, where H5..H9 = 14, 35, 37, 0, 33, and K5..K12 = 67, 77, 94, 34, 99, 56, 86, 67
P = periodic payment
R = interest rate
N = number of periods
@FV returns the future value of an annuity given periodic payment P, interest rate R, and N number of periods.
Examples:
@FV(100,0.085,5) = 592.54
@FV(G7,C2,2) = 6240, where C2 = 8% and G7 = $3000.00
@FV(1000,0.075,1.5) = 15.27
P = Principal, or present value
R = An array of interest rates by which to compound
@FVSCHEDULE returns the future value of an initial principal after compounding by a series of interest rates.
Example:
@FVSCHEDULE(100,A1..A4) = 133.4260, where A1..A4 = 7.5%, 6.6%, 8%, 7%
X = a numeric value
@GAMMA returns the value of the Euler's gamma function evaluated for values of X > 0, and less than or equal to approximately 171 (less on a few computers with limited mathematics capabilities). Gamma is a continuous function whose value for integer arguments N is (N�1)! (N�1 factorial).
Examples:
@GAMMA(5) = 24
@GAMMA(1.59) = 0.89243
@GAMMA(L38) = Error - @GAMMA, floating exception, where L8 = 175
Returns the greatest common divisor of the numbers in the list.
argumentlist = any combination of numbers, cells, or ranges with each of the values greater than or equal to 0
@GMEAN returns the geometric mean of its arguments. Empty cells and cells containing strings are not included.
Examples:
@GMEAN(56,49,99) = 64.76491
@GMEAN(F10..F14) = 3.4712517, where F10..F14 = 2, 2, 3, 6, and 7
@GMEAN(U7..V15) = Error - @GMEAN, operand less than or equal to zero, where U13 = 0
@GRAND returns a 12th-degree binomial approximation to a Gaussian random number. A set of these numbers will approximate a normal (bell-shaped) distribution with a mean of 0 and a variance of 1. The number will change with every recalculation.
Examples:
@GRAND = 1.2255531
S = a string value
@HEXTONUM returns the numeric value for the hexadecimal (base 16) interpretation of S. Since XESS can operate directly on hexadecimal numbers, this function is not very useful; it is included primarily to maintain compatibility with other spreadsheets.
Examples:
@HEXTONUM("A") = 10
@HEXTONUM(J10) = 45019, where J10 = "AFDB"
X = a numeric or string value
R = a range
N = a numeric value
@HLOOKUP returns the value of a cell found by performing a horizontal table lookup.
@HLOOKUP searches the first row (known as the index row) in the range R for the numeric or string value which "matches" X, and returns the value N rows beneath the matching cell.
If X is a string value, an exact match must be found or an error is returned.
If X is a numeric value, the index row must contain numeric values, sorted in ascending order, and the matching column is determined by the following rules:
Examples:
A B C D 1 Lodging Meals Airfare Entertainment 2 $85.00 $30.00 $698.00 $25.00@HLOOKUP("Meals",A1..D2,1) = 30@HLOOKUP("Airfare",A1..D2,1) = Error - @HLOOKUP, lookup failed to produce a match
@HLOOKUP("Airfare",A1..D2,3) = Error - @HLOOKUP, row offset out of range
argumentlist = any combination of numbers, cells, or ranges where each value is not equal to 0
@HMEAN returns the harmonic mean of its arguments. Empty cells and cells containing strings are not counted.
Examples:
@HMEAN(F10..F15) = 3.0434783, where F10..F14 = 2, 2, 3, 6, and 7
@HMEAN(C1..C5) = Error - @HMEAN, operand equal to 0, where C4 = 0
DT = a date/time value
@HOUR returns the hours (0 - 23, where 0 represents midnight) component of the date/time value DT.
Examples:
@HOUR(.25) = 6
@HOUR(0) = 0
@HOUR(.99) = 23
X = a numeric value
T = a value
F = a value
@IF returns the value of T if X evaluates to non-zero, or F if X evaluates to zero. If F is omitted, it is assumed to be 0.
Examples:
@IF(A1,7,9) = 7, where A1 = 1
@IF(B17==0,0,"non-zero") = "non-zero", where B17 = 1
Range = a range
Column = an integer
Row = an integer
Worksheet = an integer
Returns the value of the cell at the indicated offset from the Range. The column, row, and worksheet offsets are 1-origin, and the resulting reference must not be outside the range.
item = a string value
Returns information about the current spreadsheet and its environment. The information returned is determined by the value of item. The case of the argument is ignored.
- "Directory"
- Current directory
- "OSversion"
- Current operating system version
- "Processor"
- Processor (CPU) type
- "Recalc"
- Recalculation mode, either "manual" or "automatic"
- "Release"
- Current release number of XESS.
- "Screen-Height"
- Height in pixels of current display.
- "Screen-Width"
- Width in pixels of current display.
- "System"
- Operating system name.
X1 = initial value
X2 = iterative or subsequent value
@INIT returns its first argument on the first recalculation pass and its second argument on all subsequent recalculation passes when XESS is performing iterative recalculations.
Examples:
C5 = @INIT(1,C5+1) C6 = @INIT(1,C5*C6)
C5 = Cycle! if Iteration Limit = 0
C5 = N if Iteration Limit = N
C6 = Cycle! if Iteration Limit = 0
C6 = N! if Iteration Limit = N
X = a numeric value
@INT returns the integer portion of X.
Examples:
@INT(232.45566) = 232
@INT(J20) = -10, where J20 = -10.3
@INT(@PI) = 3
R1 = a range reference points to x values of the vector;
R2 = a range reference points to y values of the vector.
N = a numerical value or range for which the interpolation value will be based on.
@INTERP2D returns interporlated values for a 2 dimensional vector. R1 and R2 have to be same size.
Example:
A B 1 1 2.5 2 3 4.5 3 5 8.2 4 7 10.5 5 9 13.4@INTERP2D(A1..A5,B1..B5,C1..C2) = 6.35, 9.35 where C1..C2 = 4,6
R = a range reference points to x, y and z values of the vector;
X = x values on which the interpolation values are based
Y = y values on which the interpolation values are based
@INTERP3D returns interporlated value for a 3 dimensional vector. X and Y have to be same size.
Example:
A B C D E F G 12.5 14.5 15.5 18.2 19.5 22.5 1 11.5 1 2 3 4 5 6 2 13.5 7 8 9 10 11 12 3 16.5 13 14 15 16 17 18 4 17.5 19 20 21 22 23 24 5 18.5 25 26 27 28 29 30 6 20.5 31 32 33 34 35 36 @INTERP3D(A1..G6,A11..A12,B11..B12) = 3.25 12.5556, where A11..A12 = 12, 15, and B11..B12 = 14, 17
S = Settlement date, date of purchase
M = Maturity date.
I = Investment amount
R = Redemption amount
B = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@INTRATE returns the interest rate for a fully invested investment.
Example:
@INTRATE(@DATE(1993,1,15), @DATE(1993,6,15), 10000, 10545) = 0.1317
R = Interest rate per period
P = The period for which the interest will be calculated (an integer)
NP = The total number of payment periods.
PV = The present value of the investment
FV = The future value or a cash balance you would like to attain at the end of the last period.
T = (Optional) timing of the payment
0 payment is made at the end of the period 1 payment is made at the beginning of the period
@IPMT returns the interest payment for a specified period for an loan or investment based on periodic, constant payments and a constant interest rate. Make sure that the units used for R and P are consistent. For example, for a 5-year loan with 12% annual interest, if you make payments monthly, use 12%/12 for (monthly) R and 5*12 for NP.
Example:
@IPMT(10%/12,1,24,2000,0,0) = 16.6667
R = a range
@INVDFT generates the inverse Discrete Fourier Transform of the range R. Like @DFT, R must represent a real vector (either its row or column dimension must be 1), or a complex vector (either its row or column dimension must be 2). The result is a complex vector.
Examples:
A B 1 .99 0 2 3 6.2 3 4.1 1.1 4 3.3 6.3 With @INVDFT(A1..B4) in B6 gives: B C 6 2.8475 3.4 7 -0.8025 -0.2 8 -0.3025 -2.85 9 -0.7525 -0.35 @INVDFT(G4..I6) = Error - @INVDFT, improper dimensions
M = a regular matrix
@INVERT generates the inverse of the matrix M, which must be square. The result matrix is the same size as the argument matrix. Multiplying M times the result matrix (@MMUL) produces an identity matrix (a matrix with 1's in the diagonal and 0's elsewhere).
@MMUL(A,@INVERT(A))A singular matrix (a matrix without an inverse) is non-regular and produces an error.
Examples:
Matrix B9..C10 B C 9 0 1 10 1 2 @INVERT(B9..C10) = -2 1 1 2
R = a range
@INVFFT generates the inverse Discrete Fourier Transform or range R using a Fast Fourier Transform algorithm. The length of the vector must be a power of 2. @INVFFT will produce the same results as @INVDFT, but it is much faster (N*log(N)) time as opposed to N2 time).
G = a numeric value
F = cash flow, represented by a range
@IRR returns the internal rate of return on an investment given a set cash flows contained in range F, and an initial "guess" G (usually 0). F must contain at least two cash flow values. Negative cash flows represent expenditures, and positive cash flows represent income. Empty cells and text are treated as zeros.
Examples:
@IRR(0,L2..L6) = -0.32606171, where L2..L6 = -80, 90, 67, 72, and -90
@IRR(0,I5..I9) = 1.0462142, where I5..I9 = -700, 750, 900, 600 and 850
@IRR(0,-200,100,300) = ERROR: too many arguments to function
X = An expression
@ISERROR returns 1 if X "contains" an error, otherwise it returns 0. X "contains" an error if it it would generate an error outside of the @ISERROR function, which means that the expression itself may generate an error, or it may reference a cell which has generated an error.
Examples:
@ISERROR(1) = 0
@ISERROR(3/0) = 1
@ISERROR(@ISERROR(3/0)) = 0
Returns 1 if a number is even or 0 if not. If a number is not an integer it is truncated before the test.
X = a numeric value
@ISNUMBER returns 1 if X is a numeric value, otherwise 0. Empty cells are considered numeric.
Examples:
@ISNUMBER(C10) = 0, where C10 = "Total"
@ISNUMBER(D10) = 1, where D10 = $1000.00
@ISNUMBER(A1) = 1, where A1 is empty
Returns a 1 if a number is odd or 0 if not. If a number is not an integer it is truncated before the test.
X = a numeric value
@ISSTRING returns 1 if X is a string value, otherwise 0. Empty cells are considered numeric.
Examples:
@ISSTRING(C10) = 1, where C10 = "Total"
@ISSTRING(D10) = 0, where D10 = $1000.00
@ISSTRING(A1)= 0, where A1 is empty
R = Range of data
N = Integer specifying Nth largest datum from R
@LARGE returns the Nth largest datum in the range R.
Examples:
A1..A9 = 1,4,8,3,7,12,54,8,23
@LARGE(A1..A9,3) = 12
@LARGE(A1..A9,1) = 54
@LARGE(A1..A9,@COUNT(A1..A7)) = 1
Returns the least common multiple of the numbers in the list.
S = a string value
N = a numeric value
@LEFT returns the string composed of the leftmost characters of string S. If N is greater than or equal to the length of S, then the entire string S is returned.
Examples:
F1 = "workstation"
@LEFT(F1,1) = "w"
@LEFT(F1, 4) = "work"
@LEFT(F1,20) = "workstation"
S = a string value
@LENGTH returns the number of characters in string S.
Examples:
@LENGTH("computer") = 8
@LENGTH(G3) = 14, where G3 = "Expense Report"
@LENGTH(Z7) = 20, where Z7 = "Linear Least Squares"
X = a range representing a column vector of independent variables values,
Y = a range representing a column vector of dependent variables values
@LINCOEF generates the straight line least squares fit. The output is the values for a1 and a0 and is a row vector if X and Y are row vectors, and a column vector if X and Y are column vectors. This function is equivalent to @POLYCOEF(X,Y,1).
X = a range representing a vector of independent variables values,
Y = a range representing a vector of dependent variables values
@LINFIT generates the estimated Y values for a straight line least squares fit. The output of this function is the vector of estimated y values on the left hand side of the above equation. The input vector X and Y must both be row vectors or both column vectors.
The output vector will be a row vector if X and Y are row vectors, and a column vector if X and Y are column vectors. The length of the output vector is equal the the length of the input vectors. This function is equivalent to @POLYFIT(X,Y,1).
Example:
Matrix B1..B5 and C1..C5B C 1 1 3 2 2 5 3 3 11 4 4 18 5 5 31 @LINFIT(B1..B5,C1..C5) = -0.2 6.7 13.6 20.5 27.4
A = matrix of X values
Y = vector of observed values for Y
FLAG = an optional value indicating whether the X data intercepts with the origin (0)
@LLS generates the following regression analysis:
The output of @LLS is a a table with four rows and n+1 columns, where n is the number of independent variables in the model (i.e., the number of columns in the A matrix). The table is presented in the following format:
x(1) x(2) ... x(n) MSE SE(x(1)) SE(x(2)) ... SE(x(n)) RSQUARE t(x(1)) t(x(2)) ... t(x(n)) F(R) P(t(x(1))) P(t(x(2))) ... P(t(x(n))) P(F(R))where
- x(i)
- the least squares estimate of the ith coefficient, corresponding to the independent variable in the ith column of A.
- SE(x(i))
- the standard error of xi
- t(x(i))
- the t-statistic for testing whether xi is significantly different from zero.
- P(t(x(i)))
- the probability of error in rejecting the null hy pothesis that xi=0, based on two-sided t-test.
- MSE
- the mean squared error of the model.
- R2
- the model coefficient of determination (the square of the model correlation coefficient, R)
- FR
- the F-statistic for testing whether R is significantly different from zero.
- P(FR)
- the probability of error in rejecting the null hy pothesis that R=0, based on a two-sided t-test.
Matrix A1..C4 and D1..D4 A B C D 1 0 0 1 3 2 1 1 1 5 3 4 2 1 13 4 9 3 1 18 @LLS(A1..C4,D1..D4)= 0.75 3.05 2.55 4.05 1.01 3.15 1.96 0.97 0.75 0.97 1.30 17.62 0.59 0.51 0.42 0.17 @LLS(A1..A2,B1..C2) = Error - @LLS, improper dimensions
The first result above is exactly equivalent to @PLS(B1..B4,D1..D4,2)
X = a numeric value greater than 0.
@LN returns the log base e of X. The inverse of @LN is the exponentiation function @EXP.
Examples:
@LN(6) = 1.7917595
@LN(@EXP(X4)) = 10, where X4 = 10
@LN(-1) = Error - @LN, domain is x > 0
X = a numeric value greater than or equal to 0
@LNGAMMA returns the log base e of the gamma function evaluated at X.
Examples:
@LNGAMMA(1.20) = -0.08537
@LNGAMMA(10) = 12.801827
@LNGAMMA(D30) = Error - @LNGAMMA, domain is x > 0, where D30 = 0
@LNGAMMA(K19) = 9.9677617, where K19 = 8.7
X = a numeric value greater than 0
@LOG returns the log base 10 of X. This function is included for compatibility with WKS and WK1 formats.
Examples:
@LOG(1) = 0
@LOG(14) = 1.146128
@LOG(1.00e+27) = 27
@LOG(0) = Error - @LOG, domain is x > 0
X = a numeric value greater than 0
@LOG10 returns the log base 10 of X.
Examples:
@LOG10(1) = 0
@LOG10(14) = 1.146128
@LOG10(1.00e+27) = 27
@LOG10(0) = Error - @LOG10 domain is x > 0
X = a numeric value greater than 0
@LOG2 returns the log base 2 of X.
Examples:
@LOG2(1) = 0
@LOG2(1.00e+27) = 89.692
@LOG2(0) = Error! domain x > 0
S = a string value
@LOWER returns returns the alphabetic string S converted to lower-case characters.
Examples:
@LOWER("AIRPORT") = "airport"
@LOWER(G3) = "expense report", where G3 = "Expense Report"
@LOWER(K10) = "connections", where K10 = "CONNECTIONS"
M1 = a matrix
M2 = a matrix
@MADD adds the corresponding elements of matrix M2 and matrix M1. If the dimensions of the matrices are incompatible, the function generates an error.
Examples:
Matrix B9..C10 B C 9 0 1 10 1 2 Matrix D9..E10 D E 9 3 5 10 4 8 @MADD(B9..C10,D9..E10) = 3 6 5 10
V = Value to be matched.
R = Range in which to match V
T = Type of match
@MATCH return the relative position of the value V in the range R, according to the rule specified by T:
1 or omitted Find largest value in R <= V 0 Find first value in R = V -1 Find smallest value in R >= VV can be a string or a numeric value. If V is a string, T must be 0.
If V is a string, it may contain the wildcard characters, asterisk (*) and question mark (?), to represent any sequence of characters and any single character respectively. The items in the R do not need to be in any specific order.
Examples:
A B 1 Products Quantity (Boxes) 2 Apple 32 3 Orange 50 4 Cherry 15 5 Banana 20 6 Cantaloupe 10 7 Strawberry 25@MATCH(15,B1..B7) = 4
@MATCH(30,B1..B7,1) = 7
@MATCH(30,B1..B7,-1) = 2
@MATCH("Orange",A1..A7,0) = 3
@MATCH("Can*",A1..A7,0) = 6
argumentlist = any combination or numbers, cells, or ranges
@MAX returns the maximum of its arguments. Empty cells and cells containing strings are not counted.
Examples:
@MAX(4,56,33,100,0,-1) = 100
@MAX(S3..S7) = -1, where S3..S7 = -1,-4,-99,-20,-1.5
@MAX(A1..B2) = 93, where A1 = 0, A2 = -93, B1 = 93, and B2 = 7
S = Settlement date
M = Maturity date
R = Annual coupon rate
Y = Annual yield
F = Number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@MDURATION returns the modified Macauley duration of a security assuming $100 face value.
Example:
@MDURATION(@DATE(1990,1,1),@DATE(1995,1,1),10%,8%,2,0) = 3.9379
argumentlist = any combination or numbers, cells or ranges
@MEDIAN returns the median (middle value) of its arguments. Empty cells and cells containing strings are not counted.
Examples:
@MEDIAN(A1..A6) = 80.5, where A1..A6 = 65,70,74,87,88,95
@MEDIAN(2, 8, 6, 5, 9) = 6
X = an expression
S = a string
If the value of X is not 0, then @MESSAGE displays S in the Message Line and beeps. @MESSAGE returns the value of X.
Examples:
@MESSAGE(@HOUR(@NOW) > 17, "Time to go home!")
S = a string value
N1 = a numeric value
N2 = a numeric value
@MID returns the string of length N2 that starts at position N1 in string S. N1 is the number of characters from the beginning of the string, must be greater than or equal to zero, and less than the length of S. N2 must be greater than or equal to zero. If N1+N2 is greater than the length of S, then the substring starting at position N1 in S is returned. The first character in string S is in position zero.
Examples:
T5 = "Spreadsheet"
@MID(T5,6,5) = "sheet"
@MID(T5,10,1) = "t"
@MID(T5,1,0) = " "
argumentlist = any combination or numbers, cells or ranges
@MIN returns the minimum of its arguments. Empty cells and cells containing strings are not counted.
Examples:
@MIN(4,56,33,100,0,-1) = -1
@MIN(S3..S7) = -99, where S3..S7 = -1,-4,-99,-20,-1.5
@MIN(A1..B2) = -93, where A1 = 0, A2 = -93, B1 = 93, and B2 = 7
DT = a date/time value
@MINUTE returns the minutes (0 to 60) component of the date/time value DT.
Examples:
@MINUTE(.99) = 45
@MINUTE(.6) = 24
@MINUTE(.3) = 12
V = A range of values representing periodic income (positive values) and payments (negative values)
F = Finance rate, the interest paid on the payments
R = Reinvestment rate, the rate of return on the income
@MIRR returns the Modified Internal Return Rate for a range of periodic cash flows. Empty cells and text are treated as zeros.
Example:
A B 1 Investment -140000 2 1st year return 34000 3 2nd year return 46000 4 3rd year return 45000 5 4th year return 47000 6 5th year return 46000 @MIRR(B1..B6,11%,12.5%) = 0.14522
M1 = a matrix
M2 = a matrix
@MMUL generates the product of the multiplication of matrix M2 by matrix M1. If the dimensions of the matrices are incompatible, the function generates an error.
Examples:
Matrix B9..C10 B C 9 0 1 10 1 2 Matrix D9..E10 D E 9 3 5 10 4 8 @MMUL(B9..C10,D9..E10) = 4 8 1 21
X = a numeric value
Y = a numeric value
@MOD returns the remainder of X/Y with the same sign as X. (This function is NOT modulus as sometimes documented.)
Examples:
@MOD(8,4) = 0
@MOD(D2,F3) = 12, where D2 = 100 and F3 = 44
@MOD(F5,A1) = Error!, divide by zero, where F5 = 98.6 and A1 = 0
@MOD(-14,3) = -2 (the true modulus is 1)
argument = any combination of numbers, cells, or ranges.
@MODE returns the mode, or most frequently occurring datum, of all the arguments. Empty cells and cells containing text are ignored.
Examples:
@MODE(5,4,10,8,7,5,4,14,5) = 5
@MODE(A1..A7) = 2.3, where A1..A7 = 2.3,3.4,5.0,3.4,3.4,2.3,2.3
X = a numeric value
Y = a numeric value
@MODULUS returns the modulus of X/Y.
Examples:
@MODULUS(8,4) = 0
@MODULUS(D2,F3) = 12, where D2 = 100 and F3 = 44
@MODULUS(F5,A1) = Error!, divide by zero, where F5 = 98.6 and A1 = 0
@MODULUS(-14,3) = 1
DT = a date/time value
@MONTH returns the months component of the date/time value DT.
Examples:
@MONTH(24203) = 4, where 24203 represents April 6, 1966
@MONTH(366) = 12, where 366 represents December 31, 1900
argumentlist = any combination of numbers, cells, or ranges
@MSQ returns the mean of the squares of its arguments. Empty cells and cells containing strings are not counted.
Examples:
@MSQ(-9,-3,-5,0,1) = 23.2
@MSQ(F10..F14) = 20.4, where F10..F14 = 2, 2, 3, 6, and 7
@MSQ(D1..D6) = 2373.6667, where D1..D6 = 4, 56, 33, 100, 0, and -1
M1 = a matrix
M2 = a matrix
@MSUB subtracts corresponding values of matrix M2 from matrix M1. If the dimensions of the matrices are incompatible, the function generates an error.
Examples:
Matrix B9..C10 B C 9 0 1 10 1 2 Matrix D9..E10 D E 9 3 5 10 4 8 @MSUB(B9..C10,D9..E10) = -3 -4 -3 -6
R = a range
@N returns the numeric value of the upper left cell in the range R, or zero if the cell is empty or contains a string. This function is included for compatibility with older spreadsheets.
Examples:
A1..B3 A B 1 1 "electrons" 2 2 "protons" 3 3 "neutrons"@N(A1..B3) = 1 @N(B1..B3) = 0 @N(A1..Z25) = $1,000,000.00, where A1 = $1,000,000.00
argumentlist = any combination or numbers, cell, or ranges
@NAND returns 0 if all arguments are 1; 1 if any argument is 0; otherwise -1 (unknown).
Examples:
A1 = 1, B1 = 1, C1 = 0, D1 = 0, E1 = 1 and A2 = 24
@NAND(A1,B1) = 0
@NAND(A1..E1) = 1
@NAND(A1..A2) = -1
S = Starting date, a date/time value
E = Ending date, a date/time value
H = A range of dates to exclude, such as holidays.
@NETWORKDAYS returns the number of whole working days, beginning with S and ending with E, excluding days in Hand weekends.
Examples:
@NETWORKDAYS(@DATE(1993,1,1),@DATE(1993,12,31)) = 261
@NETWORKDAYS(@DATE(1993,1,1),
@DATE(1993,12,31),A1..A5) = 258, where
A1 = @DATEVALUE("1/1/1993"),
A2 = @DATEVALUE("5/25/1993"),
A3 = @DATEVALUE("7/4/1993"),
A4 = @DATEVALUE("9/3/1993"),
A5 = @DATEVALUE("11/28/1993")
R = Effective interest rate
C = Number of compounding periods per year
@NOMINAL returns the nominal annual interest rate for an effective interest rate R and the number of compounding periods per year C.
Example:
@NOMINAL(6.9347%,5) = 0.0675
argumentlist = any combination of numbers, cells, or ranges
@NOR returns 0 if any argument is 1; 1 if all arguments are 0; otherwise -1 (unknown).
Examples:
A1 = 1, B1 = 1, C1 = 0, D1 = 0, E1 = 1 and A2 = 24
@NOR(C1,D1) = 1
@NOR(A1..E1) = 0
@NOR(A1..A2) = -1
X = a numeric value
@NOT returns 1 if X=0; 0 if X=1; otherwise -1 (unknown).
Examples:
A1 = 1, B1 = 1, C1 = 0, D1 = 0, E1 = 1 and A2 = 24
@NOT(A1) = 0
@NOT(A2) = -1
@NOT(C1) = 1
@NOW returns the date/time value corresponding to the current system time and date.
Examples:
@NOW = 33139.37, where 33139.37 represents September 23, 1990 at 8:52:48 A.M.
@MONTH(@NOW) = 9
@HOUR(@NOW) = 8
R = periodic interest rate
CF = future cash flow series represented by a range
@NPV returns the present value of a series of future cash flows, CF, at a given rate R. Empty cells and text are treated as zeros.
Examples:
@NPV(.095, C3..C8) = 287.29, where the interest rate is 9.5% and the future cash flow is in the range C3..C8 and are each $65
@NPV(.10,C3) = Error! cash flow series must be a range
X = a numeric value between -231 <= X <= (231) - 1
@NUMTOHEX returns a string containing the hexadecimal representation of the integer portion of X.
Examples:
@NUMTOHEX(10) = "a"
@NUMTOHEX(C17) ="f", where C17 = 15.289374
Returns the number of times that the substring "pattern" occurs in "string".
Returns the odd number with the next larger absolute value. ODD(2) = 3, ODD(-2) = -3.
S = settlement date
M = maturity date
I = issue date
FC = first coupon date of the security
R = annual coupon rate of the security
Y = annual yield of the security
RD = redemption value of the security at maturity per $100 face value
F = the number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@ODDFPRICE returns the price per $100 face value of a security with an odd (short or long) first period.
Example:
@ODDFPRICE(A1,A2,A3,A4,7.85%,6.25%,100,2,1) = 113.5977, where A1 = @DATE(1992,11,11), A2 = @DATE(2005,3,1), A3 = @DATE(1992,10,15), A4 = @DATE(1993,3,1)
S = settlement date
M = maturity date
I = issue date
FC = first coupon date of the security
R = annual coupon rate of the security
PR - the price of the security per $100 face value
RD = redemption value of the security at maturity per $100 face value
F = the number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@ODDFYIELD returns the yield per $100 of a security with an odd (short or long) first period.
Example:
@ODDFYIELD(A1,A2,A3,A4,7.85%,113.598,100,2,1) = 0.0625, where A1 = @DATE(1992,11,11), A2 = @DATE(2005,3,1), A3 = @DATE(1992,10,15), A4 = @DATE(1993,3,1)
S = settlement date
M = maturity date
LC = last coupon date of the security
R = annual coupon rate of the security
Y = annual yield of the security
RD = redemption value of the security at maturity per $100 face value
F = the number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@ODDLPRICE returns the price per $100 face value of a security with an odd (short or long) last period.
Example:
@ODDLPRICE(A1,A2,A3.6.5%,5.35%,100,2,0) = 100.5418, where A1 = @DATE(1992,2,7), A2 = @DATE(1993,8,1), A3 = @DATE(1992,2,4)
S = settlement date
M = maturity date
LC = last coupon date of the security
R = annual coupon rate of the security
PR - the price of the security per $100 face value
RD = redemption value of the security at maturity per $100 face value
F = the number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@ODDFYIELD returns the yield per $100 of a security with an odd (short or long) last period.
Example:
@ODDLYIELD(A1,A2,A3.6.5%,100.542,100,2,0) = 0.0535, where A1 = @DATE(1992,2,7), A2 = @DATE(1993,8,1), A3 = @DATE(1992,2,4)
argumentlist = any combination of numbers, cells or ranges
@OR returns 1 if any argument is 1; 0 if all arguments are 0; otherwise -1 (unknown).
Examples:
A1 = 1, B1 = 1, C1 = 0, D1 = 0, E1 = 1 and A2 = 24
@OR(C1,D1) = 0
@OR(A1..E1) = 1
@OR(A1..A2) = -1
R - A range of data
N - A numeric value between 0 and 1, inclusive.
@PERCENTILE returns the datum from the range R which is at the Nth percentile in R. Only numeric data in R are considered. The result will be interpolated if N is not a multiple of 1/(s-1), where s is the size of R.
Examples:
@PERCENTILE(A1..A4,0.65) = 2.95, where A1..A4 = 1,2,3,4
@PERCENTILE(B1..B6,0.75) = 21.35, where A1..A6 = 3.8,23,4,12,67,0.2
R - A range of data
N - A number to find
@PERCENTRANK returns the percentile rank of the number N among the values in range R
Examples:
@PERCENTRANK(A1..A6,4.5) = 0.7, where A1..A6 = 1,2,3,4,5,6
@PERCENTRANK(B1..B6,21.35) = 0.77, where B1..B8 = 3.8,23,4,12,67,0.2
N = Number of objects to choose from
K = Number of objects to be chosen
@PERMUT returns "N choose K", or the permutations of K objects that can be chosen from the set N, where order is significant.
Examples:
@PERMUT(10,4) = 5040
@PERMUT(8,1) = 8
@PI returns the value of p.
Examples:
@PI = 3.1415927...
X - a range representing a row or column vector of independent variable values
Y - a range representing a row or column vector of dependent variable values
d - polynomial degree in the range 1 to 10
flag - omitted or 1 means that X data intercepts with the origin; 0 means data does not intercept with the origin
@PLS analyzes the least squares polynomial model. The output of this function is identical to that of @LLS, with the polynomial coefficients listed in order of decreasing degree.
Example:
Matrix A1..C4 and Matrix D1..D4 A B C D 1 0 0 1 3 2 1 1 1 5 3 4 2 1 11 4 9 3 1 18 @PLS(B1..B4,D1..D4,2) = 0.75 3.05 2.55 4.05 1.01 3.15 1.96 0.97 0.75 0.97 1.30 17.62 0.59 0.51 0.42 0.17
PV = present value of an investment
R = interest rate
N = number of periods
@PMT returns the periodic payment for a loan, given present value PV and interest rate R.
Examples:
@PMT(15000,rate,4) = 4834.90, where rate is a named cell = 11%
@PMT(M4,0.07,G4) = 8058.6404, where G4 = 30 and M4 = 100000
@PMT(1700,11,0) = Error!, "Period" must be an integer>0
X = a numeric value
... = coefficients of the polynomial in decreasing order of degree
@POLY returns the value of an Nth-degree polynomial in X. The coefficient arguments may be any combination of numbers, cells containing numbers, or ranges containing numbers. Any non-numeric argument produces an error. @POLY(X,3,4,5) =( 3*X**2+4*X+5)
Examples:
@POLY(2,3,4,5) = 25, where (3*(2**2) + 4*(2) + 5) = 25
@POLY(-1,A1,A2) = 1, where A1 = 2 and A2 = 3 because (2*-1 + 3) = 1
@POLY(3,2,5,4,6) = 117
@POLY(-1,-2,-3,-4) = -3
X - a range representing a row or column vector of independent variable values
Y - a range representing a row or column vector of dependent variable values
d - polynomial degree in the range 1 to 10
@POLYCOEF generates the least squares coefficients for the polynomial fit. The output of this function is a vector of length d+1 containing ,1,...,1,0 The output vector will be a row vector if X and Y are row vectors, and a column vector if X and Y are column vectors.
Example:
Matrix B1..B5 and C1..C5 B C 1 1 3 2 2 5 3 3 11 4 4 18 5 5 31 @POLYCOEF(B1..B5,C1..C5,2) = 1.6428571 -2.9571429 4.4
X - a range representing a row or column vector of independent variable values
Y - a range representing a row or column vector of dependent variable values
d - polynomial degree in the range 1 to 10
@POLYFIT generates the least squares polynomial fit. The output of this function is the vector of estimated y-values on the left hand side of the above equation. The input vector X and Y must both be row vectors or both column vectors. The output vector will be a row vector if X and Y are row vectors, and a column vector if X and Y are column vectors. The length of the output vector is equal the the length of the input vectors.
Example:
Matrix B1..B5 and C1..C5 B C 1 1 3 2 2 5 3 3 11 4 4 18 5 5 31 @POLYFIT(B1..B5,C1..C5,2) = 3.0857143 5.0571429 10.314286 18.857143 30.685714
R = interest rate per period
P = the period for which the interest will be calculated
NP = the total number of payment periods.
PV = present value of the investment.
FV = future value or a cash balance you would like to attain at the end of the last period.
T = (Optional) timing of the payment
0 payment is made at the end of the period 1 payment is made at the beginning of the period
@PPMT returns the payment on the principal for a specific period for an investment based on periodic, constant payments and a constant interest rate. Make sure the units used be R and NP are consistent. For example, for a 5-year loan with 12% annual interest, if you make payment monthly, use 12%/12 for (monthly) R and 5*12 for NP. If you make annual payment on the same loan, use 12% for R and 5 for NP.
Examples:
@PPMT(10%/12,1,60,55000,0,0) = 710.2541
@PPMT(10%/12,1,60,55000,1000) = 723.1678
S = settlement date
M = maturity date
R = annual coupon rate of the security
Y = annual yield of the security
RD = redemption value of the security at maturity per $100 face value
F = the number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@PRICE returns the price per $100 face value of a security that pays periodic interest.
Example:
@PRICE(@DATE(1991,3,15),@DATE(1998,10,15),6%,7%,100,2,0) = 94.1854
S = settlement date
M = maturity date
D = discount rate of the security
RD = redemption value of the security at maturity per $100 face value
B = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@PRICEDISC returns the price per $100 face value of a discounted security.
Example:
@PRICEDISC(@DATE(1993,2,1),@DATE(1993,6,1),6.5%,100,0) = 97.8333
S = settlement date
M = maturity date
I = issue date
R = annual coupon rate of the security
Y = annual yield of the security
B = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@PRICEMAT returns the price per $100 face value of a security that pays interest at maturity.
Example:
@PRICEMAT(@DATE(1993,3,1),@DATE(1993,6,15),@DATE(1992,11,1), 6.5%,0) = 101.8778
argumentlist = any combination of numbers, cells, or ranges
@PRODUCT multiplies all the numeric elements of the argument list together, ignoring empty and non-numeric values, and returns the product.
Examples:
@PRODUCT(6,5,8,2) = 480
@PRODUCT(A1..A3) = 25.1327, where A1..A3 = 2,@PI,4
S = a string value
@PROPER returns the string S with the first letter of each word capitalized.
Examples:
@PROPER("president") = "President"
@PROPER(P9) = "Chicago", where P9 = "CHICAGO"
@PROPER(E18) = "Chapel Hill", where E18 = "chapel hill"
R1 = a range
R2 = a range
@PTTEST returns the significance level (alpha) of the two-sided paired T-test for the paired samples contained in ranges R1 and R2, respectively. Then alpha is the probability of error in rejecting the null hypothesis that mean [y-x]=0. R1 and R2 must have the same dimension.
Examples:
@PTTEST(A1..A4,B1..B4) = 0.64, where A1..A4 = .5, .98, .22, .1, and B1..B4 = .87, .6, .21, .49.
@PTTEST(H5..H9,K5..K9) = 0.0008594, where H5..H9 = 14, 35, 37, 0, 33, and K5..K9 = 67, 77, 94, 34, 99.
@PTTEST(A1..A30,B1..B50) = Error!, ranges must be same dimension
Returns the count of cells in a list of ranges that contain values, excluding the count of cells that contain strings.
P = periodic payment
R = interest range
N = number of periods
@PV returns the present value of an annuity given periodic payment P, interest rate R and N number of periods.
Examples:
@PV(360, RATE, 4) = 1116.88, where RATE is a named cell = 11%
@PV(V10, C6,5) = 41001.97, where C6 = 7% and V10 = 10000
@PV(4500,0.05,-1) = Error!, "Period" must be an integer >0
R = Range of cells
Q = Quartile as follows:
0 Minimum value
1 First quartile (25th percentile)
2 Second quartile (50th percentile)
3 Third quartile (75th percentile)
4 Maximum value
@QUARTILE finds the quartile Q of the data in range R. This is equivalent to @PERCENTILE(R,Q/4).
Examples:
A1..A8 = 1,2,4,7,8,9,10,12
@QUARTILE(A1..A8,2) = 7.5
@QUARTILE(A1..A8,1) = 3.5
X = a numeric value
@RADIANS returns p/180 times X.
Examples:
@RADIANS(1) = 0.017453293
@RADIANS(@DEGREES(25)) = 25
@COS(@RADIANS(G57)) = 0.5, where G57 = 60
@RAND returns a uniformly distributed random number on the interval [0,1). The number will change every time the sheet is recalculated.
Examples:
@RAND = .38952085
@RAND * 10 = 7.6609264, a number between 0 and 10
@RAND/1 = 0.85737794
C = a cell reference
@RANGENAME returns the name of the first named range (alphabetically) which contains the cell C.
N1 = the upper left column index of the range
N2 = the upper left row index of the range
N3 = the lower right column index of the range
N4 = the lower right row index of the range
@RANGEREF returns a reference to the range described by corner coordinates N1, N2, N3, and N4. Row index must be relative to 1; column index must be relative to 0.
Examples:
@SUM(@RANGEREF(0,1,0,2)) is equivalent to @SUM(A1..A2)
@AVG(@RANGEREF(1,1,25,10)) is equivalent to @AVG(B1..Z10)
E = Numeric value whose rank you wish to determine
R = Range of cells containing data to rank
O = Order of rank as follows:
0 or omitted Ascending
Non-zero Descending
@RANK returns the rank of a numeric argument E in the range R based on order O. If O is non-zero, the rank is equal to the position of the element if the list were sorted in ascending order, but if O is zero or omitted, the rank is equal to the position of the element if the list were sorted in descending order. Empty cells and text are ignored. Duplicate numbers will have the same rank.
Examples:
A1..A8 = 5,7,5,2,8,1,9,10
@RANK(A1..A8,7) = 4
@RANK(A1..A8,7,1) = 5
FV = future value of the investment
PV = present value of the investment
N = number of periods
@RATE returns the interest rate required to go from present value PV to future value FV in N compounding periods. The formula used is:1111
Examples:
@RATE(5000,3000,10) = .05
@RATE(H8,G8,B6) = .149, where B6 = 5, G8 = $5,000.00, and H8 = $10,000.00
@RATE(8700,-1000,3) = Error!, "PV" and "FV" must have the same sign
S = Settlement date, date of purchase
M = Maturity date.
I = Investment amount
D = Discount rate
B = Day count basis as follows:
0 or omitted 30/360 1 Actual/actual 2 Actual/360 3 Actual/365
@RECEIVED returns the value at maturity of a fully invested security. Dates must be entered as a serial date value.
Example:
@RECEIVED(@DATE(1993,1,15),@DATE(1993,6,15),,10000,12.5%,1) = 10545.323
S1 = a string value
S2 = a string value
@REGEX returns True (1) if the string S2 matches the pattern specified by the regular expression in string S1, and False (0) otherwise. This function is similar to @EXACT except it allows "wildcard" comparisons by interpreting S1 as a regular expression of the type used in the Find and Extract operations. For more information on regular expressions, see Shortcuts and Tools.
Examples:
@REGEX("t.p","top") = 1
@REGEX("t.*e","table") = 1
@REGEX("t.*e","talk") = 0
@REGEX("F[0-9]","F3") = 1
@REGEX("F[0-9","F3") = Error! Missing ]
@REGEX("a","apple") = 1
@REGEX("ab","apple") = 0
S = a string value
N = a numeric value
@REPEAT returns the string S repeated N times.
Examples:
Z1 = "There's no place like home."
@REPEAT(Z1,1) = "There's no place like home."
@REPEAT(Z1,3) = "There's no place like home.There's no place like home.There's no place like home."
@REPEAT(Z1,0) = " "
S1 = a string value
N1 = a numeric value
N2 = a numeric value
S2 = a string value
@REPLACE returns the string formed by replacing the N2 characters starting at position N1 in string S1 with string S2.
Examples:
@REPLACE("John",1,3,"ack") = "Jack"
@REPLACE(E1,8,3,"Log") = "Expense Logort", where E1 = "Expense Report"
@REPLACE(E1,8,6,"Log") = "Expense Log", where E1 = "Expense Report"
@REPLACE("ABC",0,0,"XYZ") = "XYZABC"
S = a string value
Returns the characters in string S in reverse order. The first is last, the last is first, etc.
Examples:
@REVERSE("ABCD") = "DCBA"
S = a string value
N = a numeric value
@RIGHT returns the string composed of the rightmost N characters of S. If N is greater than or equal to the length of S, then the entire string S is returned.
Examples:
F1 = "workstation"
@RIGHT(F1,1) = "n"
@RIGHT(F1,4) = "tion"
@RIGHT(F1,20) = "workstation"
argumentlist = any combination of numbers, cells, or ranges@RMS
@RMS returns the square root of the mean of squares of its arguments. Empty cells and cells containing strings are not counted.
Examples:
@RMS(2,2,3,6) = 3.6400549
@RMS(D1..D6) = 48.72029, where D1..D6 = 4, 56, 33, 100, 0, and -1
X = a numeric value
n = the number of decimal places or whole numbers, between -15 and 15
@ROUND returns X rounded to the number of decimal places specified by n (when n is positive); it returns X rounded to a whole number when n is negative.
Examples:
@ROUND(@PI,2) = 3.14
@ROUND(@COS(60),2) = -0.95
@ROUND(1234.5678,-2) = 1200
C = a cell or range. If C is omitted, the current row will be returned.
@ROW returns the row index of the cell referenced by C, or the top row if C is a range.
Examples:
@ROW(G42) = 42
@ROW(T10..V25) = 10
@ROW = 3, where @ROW is in cell B3.
R = a range
@ROWS returns the number of rows in the specified range.
Examples:
@ROWS(C4..C13) = 10
R = a range
@S returns the string value of the top left cell in range R, or a null string ("") if the cell is empty or contains a numeric value.
Examples:
Matrix A1..B3 A B 1 1 electrons 2 2 protons 3 3 neutrons@S(A1..B3) = " " @S(B1..B3) = "electrons" @S(A1..Z25) = " ", where A2 = $1,000,000.00
X = an expression
S = a string
@SALARM evaluates the string S as an expression if X evaluates non-zero. The return value is set to the result of evaluating expression S. If X evaluates to zero, S is not evaluated and the return value is zero. Unlike @ALARM, the terminal does not beep (silent alarm). @SALARM differs from @IF by taking a string argument whose contents are evaluated as an expression only when X is non-zero. Important in real-time control.
Examples:
@SALARM(Pressure > 500, "@REMOTE_FN(Pressure)") If "Pressure" exceeds 500, REMOTE_FN is called with the value of "Pressure".
X = a numeric value expressed in radians.
Return the secant of X
X = a numeric value expressed in radians.
Return the hyperbolic secant of x.
DT = a date/time value
@SECOND returns the seconds (0 to 59) component of date/time value DT.
Examples:
@SECOND(.1000000) = 0
@SECOND(.8755342) = 46
@SECOND(.0645977) = 1
Returns a string of length len with alignment align. The default alignment is 0. If the string is longer than len then the original string is returned. The valid alignments are:
0 - Left-aligned. 1 - Center-aligned. 2 - Right-aligned.
The number of the sheet in a cell reference.
The number of sheets in a range.
X = a numeric value
@SIGMOID returns the value of the sigmoid function. The result is between 0 and 1.
Examples:
@SIGMOID(1) = 0.26894142
@SIGMOID(D14) = .5, where D14 = 0
@SIGMOID(T5) = 1.026188e-10, where T5 = 23.
Returns the sign of the number (1, 0, -1).
X = a numeric value expressed in radians.
@SIN returns the sine of the angle X. To convert the argument from degrees to radians, use the @RADIANS function.
Examples:
@SIN(1) = 0.841470984
@SIN(-2) = -0.90929743
@SIN(@RADIANS(R5)) = 0.70710678, where R5 = 45
X = a numeric value expressed in radians
@SINH returns the hyperbolic sine of angle X.
Examples:
@SINH(1) = 1.175201194
@SINH(O12) = -4.0218567, where O12 = -2.1
@SINH(A1/A2) = 0.521095305, where A1 = 1 and A2 = 2
C = cost
S = salvage value
L = allowable life
@SLN returns the straight-line depreciation allowance given cost C, salvage value S, and allowable life L.
Examples:
@SLN(5000,1500,15) = 233.333
@SLN(S10,S9,20) = 5, where S9 = 400 and S10 = 500
@SLN(500,1000,12) = error!, must have "Cost" >= "Salvage" >= 0
R = range of cells containing the numerical data
N = the nth position from the smallest in the range specified
@SMALL returns the Nth smallest number in range R. Cells that are empty or that contain text are ignored.
Examples:
A1..A9 = 1,4,8,3,7,12,54,8,23
@SMALL(A1..A9,3) = 4
@SMALL(A1..A9,1) = 1
@SMALL(A1..A9,@COUNT(A1..A7)) = 54
X = a numeric value
@SQRT returns the positive square root of X.
Examples:
@SQRT(100) = 10
@SQRT(@ABS(P9)) = 2, where P9 = -4
@SQRT(-3) = Error!, argument is negative
Returns SQRT(number*PI).
argumentlist = any combination of numbers, cells, or ranges
@SSE returns the sum squared error of its arguments. It is equivalent to @VAR(...) * @COUNT(...).
Examples:
@SSE(1.5,2.5,3.5,4.5) = 5
@SSE(-1.5,4.5,7.65,9.56) = 70.31
argumentlist = any combination or numbers, cells or ranges
@SSQ returns the sum of squares of its arguments. Empty cells and cells containing strings are not counted.
Examples:
@SSQ(2,2,3,6) = 53
@SSQ(G1..G4) = 132, where G1 = -8, G2 = -6, G3 = -4, and G4 = -4
@SSQ(D1..D6) = 14242, where D1..D6 = 4, 56, 33, 100, 0, and -1
argumentlist = any combination of numbers, cells, or ranges
@STD returns the population standard deviation (N weighting) of its arguments. Empty cells and cells containing strings are not counted.
Examples:
@STD(1,2,7) = 2.6246693
@STD(Y1..Y5) = 8.2316463, where Y1..Y5 = 22, 24, 29, 34, and 45
@STD(K6..K10) = 0.7076892, where K6..K10 = 1, .33, 0, -0.66, and -0.99
argumentlist = any combination of numbers, cells, or ranges
@STDS returns the sample standard deviation (N-1 weighting) of its arguments. Empty cells and cells containing strings are not counted.=121
Examples:
@STDS(1,2,7) = 3.2145503
@STDS(Y1..Y5) = 9.2032603, where Y1..Y5 = 22, 24, 29, 34, and 45
@STDS(K6..K10) = 0.79122058, where K6..K10 = 1, .33, 0, -0.66, and -0.99
argumentlist = any combination of numbers, cells, or ranges
@STRCAT returns the concatenation of all its arguments. For cell arguments, the actual formatted contents of the cell are used, even if the cell contains a numeric value.
Example:
@STRCAT("The bottom line is ",B3,"!") = "The bottom line is 1!", where B3 = 1
@STRCAT("The sum is ",@SUM(I1..I5) = "The sum is 4", where I1..I5 = 1, 1, -4, 0, and 6
@STRCAT("The Word is ",@PROPER(S3)) = "The word is Boston", where S3 = "Boston"
X = a numeric value
N = a numeric value
@STRING returns the string representing the numeric value of X, formatted to N decimal places, where N is in the range 0 to 15. The results are rounded.
Examples:
@STRING(2,4) = "2.0000"
@STRING("2",4) = "0.0000"
@STRING(@SUM(A1..A3),1) = "1.7", where A1 = 0.33, A2 = 0.55, and A3 = 0.77
argumentlist = any combination of numbers, cells, or ranges
@STRLEN returns the total length of all the strings in its argument list. It differs from @LENGTH in that it can take multiple arguments, but more significantly, it returns the length of the formatted contents of a cell, even if it contains a numeric argument.
Example:
@STRLEN("PHYSICS") = 7
@STRLEN(B1) = 34, where B1 ="Engineering Scientific Spreadsheet"
@STRLEN(A1) = 10, where A1 contains the value formatted as currency with two decimal places so that it appears on screen as $1,000.00 (plus a trailing space).
Substitutes the new pattern for the occurrences of the old pattern. If instance is not specified, all occurrences are substituted. If instance is specified, only that occurrence number is substituted.
argumentlist = any combination of numbers, cells, or ranges
@SUM returns the sum of its arguments. Empty cells and cells containing strings are not counted.
Examples:
@SUM(10,20,30,40,50) = 150
@SUM(L1..L3) = 15.10564, where L1 = 1.32342, L2 = 5.45735, and L3 = 8.32487
@SUM(A1,B1,C1,D1) = 0, where A1 = -1, B1 = -9, C1 = 9, and D1 = 1
Returns the sum of the negative values in the list. List can contain ranges, single cells, or expressions.
Returns the sum of the positive values in the list. List can contain ranges, single cells, or expressions.
R1 = a vector
R2 = a vector
@SUMPRODUCT returns the sum of products of two vectors. R1 must have the same number of rows and columns as R2, or R1 and R2 can be one-dimensional vectors of the same length.
Examples:
Matrix 1, D4..E5 D E 4 2 3 5 4 6 Matrix 2, D7..E8 D E 7 -5 0 8 2 8@SUMPRODUCT(D4..E5,D7..E8) = 46
@SUMPRODUCT(D4..D5,D7..E7) = -10
@SUMPRODUCT(A1..A2, M1..P4) = Error!, incompatible range dimensions
Returns the sum of the squares of the values in the list. List can contain ranges, single cells, or expressions.
Returns the sum of squares of the differences of corresponding elements in the ranges. Range1 and Range2 must have conforming sizes.
Returns the sum of the squares of the values in the first range minus the sum of the squares of the values in the second range. (SUM(X(I)**2-Y(I)**2). Equal to SUMSQ(range1) - SUMSQ(range2) but ensures that both ranges are conforming sizes.
Returns the sum of the squares of the values in the first range plus the sum of the squares of the values in the second range. (SUM(X(I)**2+Y(I)**2). Equal to SUMSQ(range1) + SUMSQ(range2) but ensures that both ranges are conforming sizes.
C = cost
S = salvage value
L = allowable life
P = the period for which the depreciation allowance is being calculated
@SYD returns the "sum-of-years-digits" depreciation allowance given cost C, salvage value S, allowable life L, and depreciation period P. +1+12
Examples:
@SYD(5000,1500,15,14) = 58.333
@SYD(S10,S9,20,2) = 9.048, where S9 = 400 and S10 = 500
@SYD(2500,750,0,5) = Error!, "Life" must be > 0
N = a numeric value
T = a numeric value
@T returns the integral of Student's T-distribution with N degrees of freedom from minus infinity to T.
Examples:
@T(14,35) = 1
@T(F3,G6) = 0.8411029, where F3 = 500, and G6 = 1
@T(C1,C2) = Error!, degrees of freedom must be > 0, where C1 = 0 and C2 = -1
X = a numeric value expressed in radians
@TAN returns the tangent of angle X.
Examples:
@TAN(1) = 1.554707725
@TAN(Y1) = 1.619775191, where Y1 = 45
X = a numeric value expressed in radians
@TANH returns the hyperbolic tangent of angle X. The result is between -1 and 1.
Examples:
@TANH(0) = 0
@TANH(G4) = 0.454216432, where G4 = .49
@TANH(X8) = -1, where X8 = -30
S = Settlement date
M = Maturity date
D = Discount rate of Treasury bill
@TBILLEQ returns the bond-yield equivalent (BEY) for a Treasury Bill equivalent to a bond, given settlement date S, maturity date M, and discount rate D. Dates must be expressed as serial date values. If the term is one half-year or less, BEY is equivalent to an actual/365 simple interest rate. If the term of the security is more than one-half year, BEY is equivalent to a semiannually compounded Treasury bond yield.
Examples:
@TBILLEQ(@DATE(1993,3,31),@DATE(1993,6,20),9.14%) = 0.09462
@TBILLEQ(@DATE(1993,3,31),@DATE(1993,12,15),9.14%) = 0.09819
S = Settlement date
M = Maturity date
D = Discount rate of Treasury bill
@TBILLPRICE returns the price per $100 face value for a Treasury bill, given settlement date S, maturity date M, and discount rate D. Dates must be expressed as serial date values.
Example:
@TBILLPRICE(@DATE(1993,4,2),@DATE(1993,7,5),9.25%) = 98.5847
S = Settlement date
M = Maturity date
D = Discount rate of Treasury bill
@TBILLYIELD returns the yield on a treasury bill, given settlement date S, maturity date M, and discount rate D. Dates must be expressed as serial date values.
Example:
@TBILLYIELD(@DATE(1993,4,2),@DATE(1993,7,5),97.585) = 0.09478
P = amount of periodic payments
R = interest rate
FV = future value of the investment
@TERM returns the number of payment periods for an investment given the periodic payment P, the interest rate R and future value FV.
Examples:
@TERM(1050,0.105,300000) = 34.39
@TERM(R13,RATE,S19) = 16.48, where R13 = 360, S19 = 15000, and RATE is a named cell = 11%
@TERM(100,0.095,-1) = error!, "P" and "FV" must have same sign
X = A numeric value
S = A format string
Formats the value X value using the picture format string S. It returns a string with the value converted to the specified format.
The string S contains a picture defining how to format the value. It is the same format as User Defined Formats, except that the color information is ignored.
H = hour
M = minute
S = second
@TIME returns the time value represented as a fraction of a day, starting at midnight. H must be between 0 and 23, and M and S must be between 0 and 59.
Examples:
@TIME(12,0,0) = 0.5, where 0.5 represents half of a day, which is noon
@TIME(8,45,46) = 0.36511574
@HOUR(@TIME(C1,D1,E1)) = 13, where C1 = 13, D1 = 40, and E1 = 2
S = a string value
@TIMEVALUE returns the corresponding time value for a given string value S. The function interprets the times specified in the following formats:
HH:MM:SS AM or PM (1 <= HH <=12) HH:MM:SS (0 <= HH <=23) HH.MM.SS (0 <= HH <=23) HH,MM,SS (0 <= HH <=23) HHhMMmSSs (0 <= HH <=23)The first format is the international 12-hour AM/PM time format. All others are international 24-hour time formats.
In all formats the seconds (SS) may be omitted, in which case they default to 00.
In all formats the hours may be specified with 1 or 2 digits, while the minutes (MM) and seconds (SS) must be 2 digits.
The following are equivalent:
@TIMEVALUE("12:55:00 AM") @TIMEVALUE("12:55 am") @TIMEVALUE("00:55:00") @TIMEVALUE("00:55") @TIMEVALUE("00,55,00") @TIMEVALUE("0.55.00") @TIMEVALUE("0h55m00s")The result is 0.038194444
@TODAY returns the date value corresponding to the current system date.
Examples:
@DATE(@TODAY) = 33139, where 33139 represents September 23, 1990
@MONTH(@TODAY) = 9
M = a matrix
@TRANSPOSE generates the transpose of the numeric matrix M.
Examples:
Matrix B9..C10 B C 9 1 3 10 2 4 @TRANSPOSE(B9..C10) = 1 2 3 4 Matrix A1..B4 A B 1 .99 0 2 3 6.2 3 4.1 1.1 4 3.3 6.3 @TRANSPOSE(A1..B4) = .99 3 4.1 3.3 0 6.2 1.1 6.3 @TRANSPOSE(B17) = Error!, improper argument type
NX = range for new x values for which TREND will return corresponding y values
KX = known x values
KY = known y values
@TREND fits a straight line to KX (known x's) and KY (known y's) using least square method, and then returns the y values along the line for NX (new x's).
Example:
B C 10 X values Y values 11 1 242 12 2 256 13 3 263 14 4 274 15 5 279 16 6 285 17 7 290 18 8 19 9 20 10 @TREND(A1..A2, B11..B17, C11..C17) = 301 308.7857 316.5714
S = a string value
@TRIM returns the string formed by removing leading, trailing and consecutive embedded spaces from string S.
Examples:
@TRIM(" Alpha Beta Gamma ") = "Alpha Beta Gamma"
@TRUE returns the value 1.
Examples:
@TRUE = 1
@IF(B17 == 0,@TRUE,@FALSE) = 1
R = a range
X = a numeric value
@TTEST returns the significance level (alpha) of the two-sided single population T-test for the population samples contained in the range R. Alpha is the probability of error in rejecting the null hypothesis that mean [R]=X.
Examples:
@TTEST(A1..A4,B1) = 0.12093936, where A1..A4 = .5, .98, .22, .1, and B1 = .87,
@TTEST(H5..H9,K5) = 0.0039514106, where H5..H9 = 14, 35, 37, 0, 33, and K5 = 67
@TTEST(V1..V10,W1..W10) = Error!, improper argument type
R1 = a range
R2 = a range
@TTEST2EV returns the significance level (alpha) of the two-sided dual population T-test for the population samples contained in the ranges R1 and R2 under the assumption that the population variances are the same. Alpha is the probability of error in rejecting the null hypothesis that mean[R1] = mean[R2] assuming var[R1] = var[R2].
Examples:
@TTEST2EV(A1..A4,B1..B4) = 0.71153758, where A1..A4 = .5, .98, .22, .1, and B1..B4 = .87, .6, .21, .49.
@TTEST2EV(H5..H9,K5..K9) = 0.0061236, where H5..H9 = 14, 35, 37, 0, 33, and K5..K9 = 67, 77, 94, 34, 99.
R1 = a range
R2 = a range
@TTEST2UV returns the significance level (alpha) of the two-sided dual population T-test for the population samples contained in the ranges R1 and R2 without assuming that the population variances are the same. Alpha is the probability of error in rejecting the null hypothesis that mean[R1] = mean[R2], assuming var[R1] and var[R2] are unrelated.
Examples:
@TTEST2UV(A1..A4,B1..B4) = 0.71306706, where A1..A4 = .5, .98, .22, .1, and B1..B4 = .87, .6, .21, .49.
@TTEST2UV(H5..H9,K5..K9) = 0.0083561, where H5..H9 = 14, 35, 37, 0, 33, and K5..K9 = 67, 77, 94, 34, 99.
S = a string value
@UPPER returns the string S converted to uppercase characters.
Examples:
@UPPER("New York") = "NEW YORK"
@UPPER(H7) = "POPULAR VOTE", where H7 = "popular vote"
S = a string value
@VALUE returns the numeric value represented by string S, or 0 if S does not represent a number.
Examples:
@VALUE("324.399") = 324.399
@VALUE(G10) = 1.7, where G10 = "1.7"
@VALUE(M8) = 0, where M8 = "cosine"
argumentlist = any combination of numbers, cells, or ranges
@VAR returns the population variance (N weighting) of its arguments. Empty cells and cells containing strings are not counted. =12
Examples:
@VAR(1,2,7) = 6.8888889
@VAR(Y1..Y5) = 67.76, where Y1..Y5 = 22, 24, 29, 34, and 45
@VAR(K6..K10) = 0.500824, where K6..K10 = 1, .33, 0, -0.66, and -0.99
argumentlist = any combination of numbers, cells, or ranges
@VARS returns the sample variance (N-1 weighting) of its arguments. Empty cells and cells containing strings are not counted.
Examples:
@VARS(1,2,7) = 10.333333
@VARS(Y1..Y5) = 84.7, where Y1..Y5 = 22, 24, 29, 34, and 45
@VARS(K6..K10) = 0.62603, where K6..K10 = 1, .33, 0, -0.66, and -0.99
C = the initial cost of the asset
S = salvage value (the value at the end of the depreciation)
L = life (the total number of periods over which the asset is being depreciated)
S = start period (first period in the calculation)
E = end period (last period in the calculation)
@VDB returns the depreciation of an asset between two specific period using the fixed-declining balance method.
Examples:
@VDB(10000,500,120,2,4) = 319.6289
argumentlist = Any combination of numbers, cells or ranges
@VECLEN returns the square root of the sum of squares of its arguments. It calculates the length of a vector in N-dimensional space. In the two-argument case, @VECLEN is the Pythagorean theorem for the hypotenuse of a right triangle, given the length of the other two sides.
Examples:
@VECLEN(3,4) = 5
@VECLEN(-1,-2,-3,0) = 3.7416574
@VECLEN(A1..A2) = 2 where A1 = 1 and A2 = 2.236068
@VECLEN(S1..S3,4) = 5.4772256,where S1 = 1, S2 = 2, and S3 = 3
Returns the number of the first character in string that is not contained in the list of valid characters. The number returned is 0-based as in the FIND() function. If all characters in the string are found in the list of valid characters, VERIFY returns the length of the string.
X = a numeric or string value
R = a range
N = a numeric value
@VLOOKUP searches the first column (known as the index column) in range R for the numeric or string value which "matches" X, and returns the value N columns to the right in the row where the match is found. The index column is searched from top to bottom. If the column contains numeric values, they must be in ascending order, and cannot contain an empty cell.
If X is a string value, an exact match must be found or an error is returned.
If X is a numeric value, the matching row is determined by the following rules:
Examples:
A B 1 Lodging $85.00 2 Meals $30.00 3 Airfare $698.00 4 Entertainment $25.00@VLOOKUP("Meals",A1..B4,1) = 30
@VLOOKUP("Airfare",A1..B4,1)) = Error - @VLOOKUP, lookup failed to produce a match
@VLOOKUP("Airfare",A1..B4,2)) = Error - @VLOOKUP, column out of range
argumentlist = any combination of numbers, cells or ranges
@VSUM returns the "visual sum" of its arguments. This function differs from @SUM in that it uses the precision and rounding of the actual formatted values appearing in the cells instead of the internal double-precision value of the cell. This ensures that what you see is what you get when calculating a sum.
Examples:
@VSUM(L1..L3) = .99 where L1 = 1/3, L2 = 1/3, and L3 = 1/3 and are displayed with two decimal places
D = serial date value
@WEEKDAY returns an integer representing the day of the week on which the day D falls. 1 is Sunday, 7 is Saturday.
Examples:
@WEEKDAY(@DATEVALUE("2/25/1994")) = 6
@WEEKDAY(34466) = 5
S = Serial start date value
D = Number of days before (negative) or after (positive) start date
H = Cell or range of cells containing serial date values to exclude
@WORKDAY returns the serial day value that is D working days after day S (if D is positive) or D working days before day S (if D is negative),excluding weekends and all holidays specified as dates in range H.
Examples:
@WORKDAY(@DATE(1991,1,1),5,B1..B2) = 33249 or 01/11/1991, where A1..A2 = @DATEVALUE("1/7/1991"), @DATEVALUE("1/8/1991")
@WORKDAY(@DATE(1993,1,1),258,A1..A5) = 34334n or 12/31/1991, where A1..A5 = @DATEVALUE("1/1/1993"), @DATEVALUE("5/25/1993"), @DATEVALUE("7/4/1993"), @DATEVALUE("9/3/1993"), @DATEVALUE("11/28/1993")
F = a filename (as a string)
X = a numeric or string value
R = a range
N = a numeric value
@XHLOOKUP is the same as @HLOOKUP except that it has an extra argument.which specifies the file containing the spreadsheet where the lookup table is located. The range argument can be a range specification or a string which contains a range specification to be evaluated in the context of the external spreadsheet file.
Example:
=@XHLOOKUP("table.xs5",1,"input",3)
G - a guessed value of the result
V - a range containing a series of cash flows
D - a range containing the dates of cash flows in V
@XIRR returns the internal rate of return for a series of cash flows (V) with variable intervals (D). V and D must be one-dimensional ranges and have the same size.
Example:
A B 1 02/01/91 -12000 2 05/01/91 2800 3 10/01/91 3250 4 02/01/92 4460 5 04/01/92 5000 @XIRR(0.5,B1..B5,A1..A5) = 0.3632
R - discount rate to apply to the cash flows
V - a range containing a series of cash flows
D - a range containing the dates of cash flows in V
@XNPV returns the net present value for a series of cash flows (V) with variable intervals (D). V and D must be one-dimensional ranges and have the same size.
Example:
A B 1 01/10/91 -12000 2 04/01/91 3000 3 09/30/91 4150 4 01/10/92 3300 5 04/01/92 3150 @XNPV(9.00%,B1..B5,A1..A5) = 705.1677
argumentlist = any combination of numbers, cells, or ranges
@XOR returns -1 if any argument is not 0 or 1; otherwise 1 if the total number of arguments with the value 1 is odd; 0 if the total number of arguments with the value 1 is even. Text and empty cells are ignored.
Examples:
A1 = 1, B1 = 1, C1 = 0, D1 = 0, E1 = 1 and A2 = 24
@XOR(A1,B1) = 0
@XOR(A1..E1) = 1
@XOR(A1..A2) = -1
N = a string containing the pathname of another spreadsheet file
C = a valid cell reference, #, or string
@XVALUE returns the value of cell C in sheet saved as file N.. When the cell reference C is the same as the cell containing the @XVALUE function, use the hash mark (#) as the second argument. If C is a string containing a range name, that name is resolved in the workbook specified by N. If sheet N is currently loaded into another instance of XESS or some other spreadsheet program and you change a value, you must first save sheet N then recalculate the sheet containing the @XVALUE function to retrieve the new value entered into sheet N.
Examples:
@XVALUE("controls.xs5",A1) returns the value of cell A1 from the sheet saved as the file controls.xs5 in your default directory when the @XVALUE function is stored in a cell other than A1.
@XVALUE("controls.xs5",#) returns the value of cell A1 from the sheet saved as the file controls.xs5 in your default directory when the @XVALUE function is stored in cell A1. =@XVALUE("table.xs5","Sheet3!C5") =@XVALUE("sales1997.xs5","Q4.total")
F = a filename (as a string)
X = a numeric or string value
R = a range
N = a numeric value
@XVLOOKUP is the same as @VLOOKUP except that it has an extra argument.which specifies the file containing the spreadsheet where the lookup table is located. The range argument can be a range specification or a string which contains a range specification to be evaluated in the context of the external spreadsheet file.
Example:
=@XVLOOKUP("table.xs5",1,"input",3)
DT = a date/time value
@YEAR returns the years component of the date/time value DT.
Examples:
@YEAR(24203) = 1966, where 24203 represents April 6, 1966
@YEAR(@TODAY) = 1999, where TODAY = December 31, 1999
S = a date value that represents the start date
E = a date value that represents the end date
B = (Optional) The day count basis to be used. Omitted is treated as 0.
0 30/360
1 Actual/actual
2 Actual/360
3 Actual/365
@YEARFRAC returns the year fraction representing the number of whole days between S (start date) and E (end date). This function is useful in calculating the percent of benefit or obligation to assign a specific period.
Examples:
@YEARFRAC(@DATE(1994,1,1),@DATE(1994,5,30),0) = 0.4167
@YEARFRAC(@DATE(1994,1,1),@DATE(1994,5,30),1) = 0.4110
S = settlement date
M = maturity date
R = annual coupon rate of the security
PR = the price of the security per $100 face value
RD = redemption value of the security at maturity per $100 face value
F = the number of coupon payments per year (frequency):
1 annual 2 semi-annual 4 quarterlyB = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@YIELD returns the yield at maturity of a security that pays periodic interest. All dates must be entered as serial date value.
Example:
@YIELD(@DATE(1991,3,15),@DATE(1998,10,15),6%,94.1854,100,2,0) = 0.07
S = settlement date
M = maturity date
PR = the price of the security per $100 face value
RD = redemption value of the security at maturity per $100 face value
B = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@YIELDDISC returns the annual yield for a discounted security. All dates must be entered as serial date value.
Example:
@YIELDDISC(@DATE(1993,3,1),@DATE(1993,5,1),98,875,100,0) = 0.06827
S = settlement date
M = maturity date
I = issue date
R = interest rate at date of issue
PR = the price of the security per $100 face value
B = (Optional) the day count basis to be used:
0 30/360 (Default) 1 Actual/actual 2 Actual/360 3 Actual/365
@YIELDMAT returns the annual yield of a security which pays interest at maturity. All dates must be expressed as serial date values.
Examples:
@YIELDMAT(@DATE(1993,3,1),@DATE(1993,10,1),@DATE(1992,11,5), 6.5%,99.875,0) = 0.06585
Additionally, what you see on the display is essentially what you get when the sheet is printed to a PostScript printer which supports colors and fonts.
While XESS maintains a set of "fallback" definitions internally, you may wish to change the local resources (start-up defaults) to suit your preferences. Start-up defaults which can be changed that affect the spreadsheet appearance include:
- Workbook Defaults
- Sheet Attributes
- Cell Defaults
- Highlight Options
- Color Palette
- XESS Aesthetics
Default characteristics are viewed and changed using the Cell Defaults dialog box and the Workbook Defaults dialog box available from the Options menu.
You may save a workbook template of these settings which are then used as the default whenever you create a new workbook. Simply set the desired options and save the workbook with the name xess_template.xs5.
To change default workbook settings:
To change sheet attributes:
The Cell Defaults that you can set include:
- Cell format
- Cell font family, size, style and color
- Orientation and alignment
- Underlining and strikethrough
- Automatic text wrapping
- Colors and patterns used to display values
These defaults change all cells, rows, or columns in the workbook that are not already explicitly assigned attributes.
To change Cell Default settings: Select Cell Defaults from the Options menu. XESS displays the Cell Defaults dialog box.
As an alternative to using the Format menu, you can change individual cell formats and attributes using the toolbar or the mouse button 3 (MB3) popup menu.
When you apply formats to specific cells, you do not interfere with the global defaults or the appearance of other cells in the workbook
- Errors
- Negative Values
- Constraint conditions which are not met
You may choose distinct background and foreground colors to flag these results for all cells in the workbook. These colors override any colors already in the cells:
- errors
- negative values
- constraint conditions which are not met.
These colors are applied to the entire sheet and override those selected by Cell Colors for individual cells.
To set the highlight options:
You can only choose one format; when you make a selection, XESS automatically turns off the previous selection.
To change default Cell Format:
To change the Cell Format for individual cells using the menu:
You can also click on the Format and Decimals icon buttons on the toolbar.
When the Cell Format selected is Default, the number of decimal places is defined by the Cell Defaults dialog, not by the Toolbar or the Cell Format dialog.
You can define as many Custom Formats as you need for you application. Custom Formats are saved with the workbook.
While primarily designed for defining multiple currencies in the same workbook, this feature also gives you control over how negative numbers are displayed, what characters are used for the decimal point and thousands separator, and where these are displayed relative to each other.
User Defined formats and the @TEXT function provides additional methods for formatting values for display in the sheet. They let you design your own formats using a shorthand notation. These formats are particularly useful for displaying date and time values.
The @TEXT function uses a subset of these definitions, ignoring those that affect color.
The format string may contain any of the following operators. These operators are replaced with the appropriate values in the result string.
Numbers:
Text and Insertion:
- #
- Ouput significant digits
- 0
- Ouput significant digits or zeros
- .
- Output the decimal point
- ,
- Output a comma separator
- %
- Output number as percent including percent character
Dates and Times
- @
- Output the value if it is text; otherwise, output nothing.
- "..."
- Ouput the text between the quotes
Spaces (blanks) in the format string are preserved in the result string. Examples: @TEXT(@NOW, "dddd\, mmmm d") might return "Monday, October 19"
- yy
- Output the last two digits of the year
- yyy
- Output the last two digits of the year if it meets the rule for this workbook; otherwise output all 4 digits of the year.
- yyyy
- Output all four digits of the year.
- m
- If seen after an h or hh operator, output the minutes in 1-digit format if the minutes are less than 10, or in 2-digit format if the minutes are between 10 and 59.
If seen at any other time, output the month in 1-digit format if the month is less than 10, or in 2-digit format if the month is between 10 and 12.
- [m]
- Elapsed time in minutes.
- mm
- If seen after an h or hh operator or before an s or ss operator, then output the minutes in 2-digit format.
If seen at any other time, output the month in 2-digit format.
- mmm
- Output the month abbreviation.
- mmmm
- Output the full month name.
- d
- Output the day in 1-digit format if the day is less than 10, or in 2-digit format if the day is between 10 and 31.
- dd
- Output the day in 2-digit format.
- ddd
- Output the abbreviation of the day of the week.
- dddd
- Output the full name of the day of the week.
- h
- Output the hour in 1-digit format if the hour is less than 10, or in 2-digit format if the hour is between 10 and 23.
- hh
- Output the hour in 2-digit format.
- [h]
- Elapsed time in hours
- s
- Output the second in 1-digit format if the second is less than 10, or in 2-digit format if the second is between 10 and 59.
- ss
- Output the second in 2-digit format.
- [s]
- Elapsed time in seconds
- a/p
- Output a if the hour is between 0 and 11, or p if the hour is between 12 and 23. If this format specifier is present, the hour will always be displayed using the 12-hour clock (0-12).
- am/pm
- Output am if the hour is between 0 and 11, or pm if the hour is between 12 and 23. If this format specifier is present, the hour will always be displayed using the 12-hour clock (0-12).
- A/P
- Output A if the hour is between 0 and 11, or P if the hour is between 12 and 23. If this format specifier is present, the hour will always be displayed using the 12-hour clock (0-12).
- AM/PM
- Output AM if the hour is between 0 and 11, or PM if the hour is between 12 and 23. If this format specifier is present, the hour will always be displayed using the 12-hour clock (0-12).
- \
- Escape the normal meaning of the next character and write it as an immediate literal to the output string.
[>0]#0.00+;[<0]#0.00-;places a trailing plus or minus character following the value, has at least one digit before the decimal point, and displays 0 values as blank. When formatting a value, the conditionals are evaluated from the left, comparing the value against the simple test conditions. The first test that is true determines the format to be used. The comparisons must be against constants. A single format may have many conditionals.
Because the comparisons with zero are so common, you may omit them when there are no other comparisons. Based on the number of formats specified, the default comparisons are:
[all] [>=0] ; [<0] [>0] ; [<0] ; [=0] [>0] ; [<0] ; [=0] ; [text]If only a single format is given, it is used for all values specified. In this case only, a minus character is inserted before negative values in numeric formats. The [all] and [text] items above cannot be specified directly; they are applied internally by default.
User defined formats allow you to control the foreground (or font) color of the cell, possibly dependent on its value. The color names or codes are placed within square brackets, separate from the test conditions. A typical use of this is to highlight values in a certain range.
[>=1000][Color 3]#;[>=500][Color 5]#;[>0][Color 4]#;"ERROR"The color numbers shown correspond to the XESS color palette. Color names, such as [Blue], use colors predefined on your system. Depending on your system, these names may be case sensitive.
#;[Red]-#;#
The default font settings for the whole workbook are modified with the Cell Defaults dialog box from the Options menu. However, you can control the font characteristics for the individual cell or range of cells by using the Font Family, Font Style, and Font Size options from the Format or MB3 popup menus.
XESS allows you to assign font characteristics which consist of family, style, and size.
- Courier
- Helvetica
- Souvenir
- Times-Roman
- Lubalin Graph
- Avant Garde
- New Century Schoolbook
- Symbol (Symbol)
Additional or alternative fonts can be defined using the resource file.
- Normal
- Bold
- Italic
- Bold-Italic
- 8 Pt
- 10 Pt
- 12 Pt
- 14 Pt
- 18 Pt
- 24 Pt
Additional font sizes can be defined using the resource file.
To change the Font characteristics for individual cells:
To change the default Underline specification:
To change the Underline setting for individual cells:
Default to use the cell default setting
On to enable single underline
Off to disable underlining
Double to enable double underline
Alternatively, you can click the underline toggle button icon on the toolbar to cycle through Off/Single/Double options.
To change the default Strikethrough specification:
On to make strikethrough the default
Off to disable strikethrough
To change the Strikethrough setting for individual cells:
Default to use the cell default setting
On to set strikethrough attribute
Off to clear strikethrough attribute
The default for the whole sheet is changed in the Cell Defaults dialog box from the Options menu. However, you can set the alignment for an individual cell or range of cells by using the Alignment option from the Format menu, Toolbar icon buttons, or MB3 popup menu.
To change the default Alignment specification:
Automatic Text is left aligned; numerics are right-aligned
Right Text and numerics are right-aligned
Left Text and numerics are left-aligned.
Center Text and numerics are centered.
To change the Alignment setting for individual cells:
- OR -
Select Alignment from the Format menu or MB3 popup menu to display a cascading menu of choices. Choose an explicit setting or choose default to use the default setting from Cell Defaults.
One additional option, Center Selection, allows text to be centered over a group of cells.
To use Center Selection:
The default for the whole sheet is changed in the Cell Defaults dialog box from the Options menu. However, you can set the vertical alignment for an individual cell or range of cells by using the Vertical Alignment option from the Format menu or MB3 popup menu.
To change the default Vertical Alignment specification:
To change the Vertical Alignment setting for individual cells:
Select Vertical Alignment from the Format menu or MB3 popup menu to display a cascading menu of choices. Choose an explicit setting or choose default to use the default setting from Cell Defaults.
The default for the whole sheet is changed in the Cell Defaults dialog box from the Options menu. However, you can set the wrap option for an individual cell or range of cells by using the Wrap option from the Format menu or MB3 popup menu.
To change the default Wrap specification for all cells:
To change the Wrap setting for individual cells:
If Check Protection is set to OFF in Sheet Default, UnProtect FG and UnProtect BG have essentially no visible impact.
There are two typical ways to use cell borders. The first places borders around each cell. The second places a single border around a group of cells.
To place borders on each cell in a range of cells:
To place an outline border around a range of cells:
- change column width,
- change row height,
- insert rows and columns,
- delete rows and columns,
- hide rows and columns, and
- create row and column titles
You can also set individual columns to be wider or narrower than the default by using the Column Width option under the Format menu or MB3 popup or by simply dragging the column border with the mouse.
To explicitly set the width of selected columns:
To restore the original default column width to selected columns:
These two features together allow you to define a column width to achieve optimal page layout and force long text strings to wrap within the column bounds rather than be truncated or overflow into the adjacent cell. Then you can use the snap-to mechanism to adjust the row height to accommodate the wrapped text.
To snap column width to best fit cell contents:
When the column width of a cell is too narrow such that it cannot display a numeric entry completely, XESS alerts you to this condition by showing a bold cell border in the truncated cell. If truncation occurs to the left, the left cell border is highlighted. If the truncation occurs to the right, the right cell border is highlighted. (Cell Alignment determines whether the truncation occurs on the left or the right.)
You can also set individual rows to be wider or narrower than the default by using the Row Height option under the Format menu or by simply dragging the row border with the mouse.
To explicitly set the height of selected rows:
To apply the default row height to selected rows:
To snap row height to best fit cell contents:
If the adjacent cell is not empty, the displayed content will appear truncated. You may want to use the Snap-to option to force the row height to accommodate the tall text or multiple lines of text in the same cell.
To insert new, empty rows:
To insert new, empty columns:
To insert cells by row:
If you delete a row or column, the data in the deleted row or column is lost, but all dependencies in the sheet are preserved. The ranges which span the deleted row are contracted to prevent inclusion of unwanted cells.
To delete a row(s):
To delete a column(s):
To delete cells by row:
To hide a range of columns using the Hide Columns operation:
To unhide a range of columns using the Unhide Columns operation:
If you have hidden rows/columns at the edge of the sheet, position the cursor in the first row or column that is not hidden and then unhide. For example, the column A is hidden, place the cursor in column B and Unhide Column to restore A.
Rows and columns can also be hidden by dragging their button borders (described above).
XESS supports three variations of view titles: row headings, column heading, row and column headings. The text for view titles is entered before the view is protected with the Lock View Titles operation. After view titles are set, the cursor will no longer move into that area. When you lock a view title, XESS changes the applicable border color from to designate the locked area.
To make a change to data in a view title area, select Create New View from the View menu which displays a secondary view area without the view title locks. You can make the changes in the secondary window which are automatically reflected in the view with the title locks.
To create column view titles:
All rows above the cell cursor are highlighted and protected as a title area.
To create row view titles:
All columns to the left of the cell cursor are highlighted and protected as a title area.
To create both title rows and title columns:
All columns and rows above and to the left of the cell cursor are highlighted and protected as a title area. When you scroll down, the column view titles will remain onscreen; when you scroll right the row view titles will remain onscreen.
- Recalculate - forces recalculation of the workbook.
- Cell Protection - sets and clears cell protection.
- Transpose -swaps row and column orientation of cells
- Data Fill - extend a sequence of values over a range
- Goal Seek - varies the value of an independent variable in order to achieve a desired result in another variable.
- Solver - solve a multi-rule, multi-variable system
- Sort - sorts data in ascending or descending order.
- Extract - extracting data from internal databases.
- Overlay - editor for free-form drawing and illustration.
These are powerful features that give you control over the spreadsheet beyond the logic embedded in cells. For instance, you can create what-if scenarios, asking XESS what value is required to achieve a certain outcome. You can quickly identify patterns in research data, and sort the data by criteria you select. You can visualize your data in the manner most useful to you, then discard the new view or save it under a new name, preserving the original workbook intact.
A B C 1 One Two Three 2 10 20 30in A1..C3 and the Transpose>Copy Values places the result beginning at cell A5. The result would be:
A B 5 One 10 6 Two 20 7 Three 30The Transpose tool works in ways similar to the Copy and Move commands on the Edit menu. With Transpose>Move and Transpose>Copy Formulas, the cell and range references are adjusted appropriately.
To use Data Fill:
Using this method, XESS usually finds the desired value in two or three iterations for linear relationships, more for higher-order dependencies.
To perform Goal Seek:
- Variable Cell
- The name or address of the cell value to change.
- Target Cell
- The name or address of the cell containing the target value.
- New Value
- The value to be reached.
If the value of the target cell does not respond to changes in the variable cell, XESS stops goal seek, delivers an error message, and restores the sheet to its original values.
If the target value is not reached in ten (10) iterations, goal seek pauses and enables the Continue button allowing you to choose whether or not to continue with the goal seek operation.
Constraints are rules that must be met in order to have a valid solution to the problem. They restrict the posible values a cell may have and define the relationships among cells which must be maintained in the solution. Example constraints are:
A3 > 20 revenue > expenses
To use the Solver:
- Target Cell
- The name or address of the cell that is the target of the solution.
- Seek to:
- The goal to be reached - min, max, or specific value.
- Variable Cell(s)
- The names or addresses of the cells whose values will be changed when searching for a solution.
- Constraint(s):
- The current constraints for this problem. You can click on an existing constraint and then Delete it.
- Add Constraint:
- Enter a new constraint rule here and then click Add.
The SOLVER will stop when the target cell is not changing in response to changes in the variable cells, when the value is reached (within the precision you specify), or when computational errors are encountered.
A given problem might have many solutions or it might have none. It may have localized maxima or minima that meet the specified criteria and prevent the solver from finding better solutions. In these situations, your choices for the initial values of the variable cells often affect which solution is found by the SOLVER.
- Cells containing text (labels) or text-valued formulas are sorted in lexical order (alphabetical order following the same sorting conventions as a dictionary). Cells containing numeric formulas or constants are sorted by the numeric value of the cell.
- When sorting a mixed range of numeric and string values, XESS assigns the following priority order to different cell types: cells containing text values are less than those with numeric values. numeric values are ordered from largest-magnitude negative to largest-magnitude positive. empty cells are considered highest-ranking for ascending sorts and lowest-ranking for descending sorts. This places empty cells at the bottom of the results.
- For alphabetic sorts, the output of the sort will reflect case and accent mark sensitivity according to the setting of the case and accent collating option.
- XESS does not modify range references within the sorted range. This avoids the risk of cells in the referenced range becoming non-contiguous.
- When the sort includes named cells, XESS updates the definition of the named cell to reflect its new location. Named ranges are not changed.
- XESS keeps track of what it moves and where -- and updates cell references throughout the workbook to reflect the changes that occurred while sorting. However, XESS lets you choose not to update cell references, if you wish.
If you specified that XESS not update cell references during the sort:
- Cell and range references are changed only in a linear fashion, calculated by the distance that the cell moves.
- The definitions of named cells and ranges are unchanged.
- References to named cells and ranges are changed to standard references such as A1..A5.
To sort a range of cells:
Range Type the addresses of opposite corners of the range to be sorted, separated by one or two periods (e.g. A1..D1) or use the mouse to select the range and paste it in with the middle mouse button. If you selected a range before choosing the Sort operation, XESS enters this range by default. Key 1 Enter the address of a cell in the column on which to base the sort. For example, to sort by the contents of column B starting at row 2, enter B2. If you enter a range, XESS uses the leftmost column of the range. Key 2 Enter the address of a cell on which to Key 3 sort if two or more values in the primary Key 4 column are the same. If you enter a Key 5 range, XESS uses the leftmost column of the range.
Case Lower case after all upper case Lower case after corresponding upper Lower case with corresponding upper (case ignored) Accented Characters Accents after all unaccented Accents after corresponding unaccented Accents with corresponding unaccented (accents ignored)
Use the Undo Sort operation from the Edit menu, MB3 popup, or the X icon on the toolbar to cancel the most recent sort operation. All cells are returned to their unsorted locations.
To Extract a range of cells:
Doe, John
$1,000,000
To find values less than 20, specify the target as
#<20To find values greater than or equal to 50, specify the target as
#>=50To find cells whose values are less than 600 and whose neighboring cells in the same column have values less than 500, specify the target as: #<600 && #{0,-1}<500 && #{0,1}<500
To find the cell containing the date August 22, 1991, specify the target as:
#==@DATE(1991,8,22)
Use the Undo Extract operation from the Edit menu, MB3 popup, or the X icon on the toolbar to cancel the most recent extract operation. All cells are returned to their original state before the extract.
The Overlay Editor dialog contains eight icons and several selection options. Clicking on an icon places you in a drawing mode. (These icons have tips associated with them.) The icon for the currently selected action is displayed in reverse video. The icons have the following meanings:
Send Object to Back Select Object Draw Line Draw Text Draw Hollow Rectangle Draw Filled Rectangle Draw Hollow Oval Draw Filled Oval
The selection options control colors, patterns, and fonts. The Foreground Color is used to draw text, lines, and outlines. The Background Color is used to draw the background of filled objects. The Pattern Color is used to draw the foreground of fill patterns. The Font Family, Font Style, and Font Size control drawing text objects.
Overlay Attachment defines how the object is attached to the sheet and when it is visible:
- Objects attached with View Window maintain a constant position relative to the upper left corner of the spreadsheet data area, even when the sheet is scrolled.
- Objects attached with Nearest Cell maintain a constant position relative to the nearest cell. These objects scroll with the sheet and reflect changes in the size of cells above and to the left of their anchor cell.
- Objects attached with Sheet Origin maintain a constant position relative to cell A1. They scroll with the sheet.
To convert rectangles and ovals into squares and circles, press the [Shift] while drawing or resizing the object.
To enter text on the sheet:
To change the shape of an object:
To modify object attributes:
To move a Text object:
- Search Range
- Specify the range of cells in which XESS should search, by entering two corner coordinates (e.g. A1..D87). The default range is the entire workbook. If a range was selected when you invoked the Replace operation, the default is the selected range.
- Search For
- Specify the string or value as it would appear formatted in the cell. Refer to Target Criteria with the Find operation for more details.
- Replace With
- Specify the string or value with which you which to replace the "Search For" string or value.
- importing and exchanging static data between XESS and other programs, and
- establishing connections for dynamic data exchange between XESS and other programs.
Similarly, you can use Export and Paste operations to export static data to other programs. This data can be used by the other program but is no longer affected by calculations and manipulations that take place in XESS.
Dynamic links to other spreadsheet files is provided directly in XESS formulas. The external filename qualifies the cell or range reference.
If the linked-to workbook is also openned by the current invocation of XESS, then the referencing formulas are recalculated automatically when the referenced cells change, even when they are in different workbooks.
- import static data from other programs
- export static data to other programs
- import static data from other XESS workbooks
- export static data to other XESS workbooks
XESS can load spreadsheet files stored in WKS, WK1, WK3/WK4, and XLS formats, plus spreadsheet files stored in XESS formats. These operations handle formulas, values, formatting, and global settings. You can also save XESS workbooks in WKS, WK1, WK3, XLS or XESS formats for use in applications that recognize those formats.
XESS can also import values in text files and HTML files and export XESS spreadsheet data as files, to be used by other programs. Import operations are an efficient way to bring information into XESS without the risk of error associated with retyping everything.
Obviously, there are many occasions when it makes sense to import data from other programs, for example:
When opening WK*/XLS files, XESS loads the entire WK* or XLS file including its formulas and formatting. Note that there are differences between spreadsheet programs, so you may have to modify certain formulas or cells to get the spreadsheet to work properly in XESS.
You can open most spreadsheet files without difficulty, but those with complex interactions that use macros or certain functions may require some modification. Here are some principal differences between typical WK* and XLS spreadsheet programs and XESS:
To load an existing WK*/XLS file:
To load only part of a WK*/XLS file, create a temporary workbook that contains only the desired data, and import the temporary workbook instead of the full original.
To load the data into an existing XESS workbook with other data, open both workbooks and then copy the desired data from one XESS workbook to the target workbook.
Both methods transfer formats, fonts and formulas. For each method, XESS updates cell references as appropriate. However, if the exported range contained references to cells outside the range, it may have errors when imported into another spreadsheet.
To import data using the Import/Cells operation:
To paste formulas/values from one XESS workbook to another:
You can also use the Mouse Paste operation to copy values from other windows displayed on your workstation. The applications associated with these windows need not be aware of XESS; they only need to support the X Windows standard for data interchange. Similarly, XESS data can be selected and pasted into the windows of other applications.
You can also paste text into an XESS workbook from other programs with a simple mouse operation. For more information, refer to Manipulating a Spreadsheet.
During the Import/Text operation, XESS tries to convert values to numbers. If a value cannot be converted to a valid numeric value, XESS converts it to a text value. The converted values are placed in the destination range starting at the current cell or at the top left cell of the selected range.
To change import and export options:
- Use UNIX quote escape
- Use the UNIX method of representing quote characters (") within quoted strings by using the back-slash character (\"). Otherwise, use two quote characters to represent a single character in the string ("").
- Treat leading 0s as text
- Treat leading zeros as text characters.
- Modify cell formats
- Change the formats of the target cells to correspond to the data type of the value from the smart recognition.
- Smart number recognition
- Allows formatted numeric values to import as values with formatting (e.g. $123,456.78 or (1,234.56) ).
- Smart date recognition
- Allows date values to import as values with formatting rather than strings (e.g. 1-Jan-2000 ).
- Smart time recognition
- Allows time values to import as values with formatting rather than strings (e.g. 7:00pm or 12:45 ).
- Preserve formats for export
- Preserves formatting of cells when exporting into delimited files.
- User-defined Delimiter
- Specifies the character used to separate successive fields when importing and exporting files with the User Delimited File Format.
- One Word Per Column
- Allows you to import a text file where blank spaces in the file are used as delimiters. Text strings are imported as text and numbers are imported as numeric values. A string or a value is placed in each corresponding cell. When cleared, text is separated into cells using the Whitespace Threshold.
- Whitespace Threshold
- This option allows you to indicate what percent of all lines must have a blank in the exact same location for that location to be recognized as a field delimiter on import. The extreme cases (0 and 100) have the following properties:
0 The import creates only one column; the entire text of the line goes into the cell. 100 In order for a column to be defined, a blank must be in the same relative position in every row.- Escape HTML tags
- Escape HTML tags in the text values of cells so that they will be displayed as text by the browser. Otherwise treat the HTML tags as commands to be interpreted by the browser.
- Write Graphs with Page
- When exporting HTML, save graphs inserted on the sheet as image files in PNG format and save links to these files in the HTML file. This makes the HTML be a snapshot of the sheet, including graphs.
For Import/TSV, tabs contained in the records being imported are used as the only delimiters and the text is formatted appropriately inside the spreadsheet.
For Import/CSV, commas contained in the records being imported are used as the only delimiters and the text is formatted appropriately inside the spreadsheet.
For Import/UD, the user-specified delimiter character separates fields within the input records.
For HyperText Markup Languate/HTML, the structure of the HTML page and its tables determine which values are placed in which cells.
The default filename extension for TSV, CSV, UD, and HTML files are .tsv, .csv, .dat, and .html, respectively.
To Import a TSV, CSV, UD, or HTML file into a spreadsheet:
Because there are differences between spreadsheet programs, you may have to modify certain formulas or cells to get the spreadsheet to work properly in the other spreadsheet. Here are some principal differences: .Each of the WK* and XLS formats defines different limits for the number of sheets, rows, and columns, and it is possible for native XESS spreadsheets to be larger in any of these dimensions. All of the Lotus and XLS formats are limited to 256 columns. While the latest Excel and Lotus products support 65,535 rows, earlier versions were limited to 8,191 or 16,383 rows.
To save an XESS spreadsheet in WK* or XLS format:
Remember that XESS exports the entire spreadsheet during the Save operation.
To export only part of a spreadsheet, create a temporary spreadsheet that contains only the desired data, and save this file instead of the full original.
Both methods transfer formats, fonts and formulas. For both methods, XESS updates cell references as appropriate. However, if the exported range contained references to cells outside the range, it will create error messages when imported into another spreadsheet.
To export data using the Export/Cells operation:
You can also export XESS formulas and values to another active spreadsheet using the Paste operation, which involves only a few simple mouse actions.
To export XESS data in text format:
XESS exports the selected data to an intermediate text file. You can import the text file into another program later with a separate operation.
XESS will create an HTML document which includes a table element comprised of the cells from the selected range. To ensure that the HTML table elements approximate their order in the spreadsheet, empty cells are treated as empty data elements in the table. Note also that if a cell element overflows into an adjacent cell, it is necessary to include the root cell into the range selected.
To create an HTML table:
You may include HTML elements directly into spreadsheet cells. These elements will be passed through, as text, to the HTML file and ultimately processed by the browser. For example, a cell could contain the anchor element, <A ...>, which anchors some text to a hypertext link, or <CAPTION> which can be used to label the table of data. Users can also create a table of links which then point to different table documents.
You may edit the HTML file and enter a title, through the <TITLE>...</TITLE> tags within the <HEADER> elements using the text editor of choice. Also, you may delete the <HTML>, <HEAD> and <BODY> tags if you wish to include the table into another HTML document.
Most parameters for PostScript printing are defined with the Page Options dialog box. Other appearance attributes are defined in Workbook Defaults, Sheet Attributes, Cell Defaults, and in individual cell Formats.
To print a spreadsheet the first time:
For subsequent printing, you may simply select Print from the File menu. The current printer and page options will be used.
Using the Page Options dialog box, you can customize the page layout features such as:
- page size
- page margins
- column and row titles
- pagination
Using the Cell Defaults dialog box or the Format operation, you can define for each cell:
- font characteristics
- underlines
- color
Furthermore, whether or not the grid is printed and its color is defined in the Workbook Defaults, Sheet Attributes, and Cell Attributes dialog boxes.
To change Page Options:
- Page Size
- Orientation
- Page Height and Page Width
- Margins (Top, Bottom, Left, Right)
- Fit to Page
- Centering
- Shrink/Expand
- Row Titles
- Column Titles
- Expand Graph to Page (On/Off)
- Page Header and Page Footer (On/Off)
- Border (On/Off)
- Print Cell Notes
If you select Other, then the Page Height and Page Width boxes become open for data entry. You may enter either in inches (IN) or centimeters (CM). Whichever is entered is converted automatically to your default setting. To change the page size:
To change the orientation:
However, if you enter in centimeters (CM), the number is automatically converted to your default setting..
To change the margins:
To center the page contents:
- Off
- Disable Fit-to-Page option.
- Horizontal
- Reduce the size of the selected print area to fit within the page width eliminating overflow.
- Vertical
- Reduce the size of a selected print area to fit within the page height eliminating page overflow.
- Both
- Reduce the size of the selected print area (width and height) to fit within the bounds of a single page.
To override the automatic page breaks:
To shrink or expand the printed output:
Page breaks are marked by thickened row or column borders.
To set a horizontal page break:
To set a vertical page break:
To remove a page break:
To expand graph to page size:
The Column Titles option allows you to specify repeating column labels to be used on a multi-page printout where the number of rows exceeds the page length.
If you print only part of a spreadsheet, XESS only prints row and column titles for the selected range.
To print row and column titles:
The Page Footer option allows you to specify whether or not an additional line is printed at the bottom of the page which contains the page number. If selected, it is printed below the specified page boundary.
To print headers and/or footers:
To print borders:
You can specify the text, font family, font size, font style, and color of each of the headers and footers separately using the Headers and Footers dialog, accessed either either the Options menu or from the Print Dialog.
In the text string, special codes indicate where special values should be inserted into the prototype strings. These special values begin with the ampersand character (&) and are enclosed in square brackets ([ ]). Case is not significant for the []-enclosed escape codes. The optional date-spec, time-spec, and number-spec strings use the same picture formats as User Defined formats and the @TEXT function.
&[cell=A5]
&[date=dd-mmm-yyyy]
If you have selected Printer as your print destination in the Printer Options dialog box, you may choose from the list of printers shown in the Printer list box. When you select a printer, its associated print command is displayed in the Print Command display field which is the command XESS will use to complete the print operation.
To define multiple output destinations:
To print a sheet or workbook:
To change the printer options:
- Printer Type
- Destination
- Horizontal Pitch
- Vertical Pitch
- Print Area
- Printers
- PostScript
- The printed output will be in standard PostScript format with all related options such as font and page characteristics enforced. Used with filters to other printer types and Preview.
- Text
- The printed output will be a basic ASCII text file.
To change the printer type:
- Printer
- The printed output will be directed to the current printer specification
- File
- The printed output will be directed to a file whose name is specified in the Print Sheet dialog box
- Both
- The printed output will be directed to both the current printer specification and a file
To change the print destination:
- 10 CPI
- 12 CPI
- 16.5 CPI
The Vertical Pitch option allows you to control the number of lines per inch (LPI) in the printed output. There are three choices:
- 6 LPI
- 8 LPI
- 12 LPI
To change the horizontal or vertical pitch:
The Select Sheet to Print dialog allows you to choose a specific sheets to print for the immediate print operation. Your selection is temporary. (Use the Sheet Attributes dialog from the Options menu to set sheet-specific printing options which are saved until you next change the setting.)
If you select a range whose cell entries overflow out of the selected range, XESS does not print the overflow portion. When multiple pages are printed which are wider than the specified width of the page, the print order is left-to-right then down. If you select page footer to be printer, each physical segment is identified with the second page number qualifier (e.g. Page 1-0, Page 1-1, etc.)
To specify or change the print range:
To select a different output destination:
The current printer name is saved with the sheet. When the sheet is reloaded, the saved printer name will be compared to the list available. If there is a match the associated print command will be used. If there is no match, XESS will select the first choice in the list which should be your default print command.
XESS offers considerable flexibility in defining how graphs and charts look. For instance, you can define how each axis should be scaled, labeled, and tick-marked. You can define whether or not legends, titles, and labels are printed, and, if so, in what font and color. You can choose your own line and marker styles, even shading variants for surface charts.
XESS stores the current graph definition with the workbook so you can change the data and redraw the graph, or change the graph definition to view different sets of data.
You can view graphs on screen while you continue to work on the workbook or save graphs as PostScript files to be printed later on a PostScript printer or included in other documents.
This section describes the graph types. Because of the large number of options that effect how a graph looks, it is impossible to list all the combinations and variations (e.g. a combination graph containing a bar graph of one data set and a super-imposed line for a second set of data). See the example spreadsheets on the distribution.
On a color display, each line typically appears in a different color. You can also specify what type line connects the points (e.g. dotted, dashed, etc.). The New Graph Options... dialog on the Options menu of the main sheet controls how colors, line styles, and markers are initially defined for a new graph.
The data points to be graphed do not need to be spaced evenly on the X-axis. In fact, for scatter plots they do not even need to be in order. Line and spline segments will connect adjacent points in the value lists. You can also use the Skew Data button in the Graph Options dialog box to offset the data sets from each other. This helps in discriminating the data points of one data set from another.
A break in a line or spline segment is indicated by leaving an X-Y coordinate cell blank. This is usually done by inserting a blank line or column at the appropriate location.
The data for an X-axis or Y-axis can be either text or numeric. If the data are text, the text values become the labels for successive locations on the axis. A typical use is to show monthly values of some type in a trend.
If the cells in a range are formatted as dates or times, then the corresponding axis will be adjusted and displayed in appropriate units for the times and dates specified.
As is the case with all graphs, line plots can be printed as Encapsulated PostScript files. These files will print properly on either black and white or color systems.
The skewing option is used to differentiate between Bar graphs and Stacked Bar graphs. For Bar graphs it is always enforced and thus the Skew Data button in the Graph Options menu should always be set on. If the Skew Data button is off for Bar graphs, an error message dialog pops up when the graph is drawn. To eliminate the message, simply click the Skew Data button on.
The skewing option is used to differentiate between Bar graphs and Stacked Bar graphs. For Stacked Bar graphs it is always ignored and thus the Skew Data button in the Graph Options menu should always be set off. If the Skew Data button is on for Stacked Bar graphs, an error message dialog pops up when the graph is drawn. To eliminate the message, simply click the Skew Data button off.
Slices are removed (exploded) from the pie by placing a pair of blank cells before and after the affected cells. Multiple data sets produce multiple pies in the same graph.
Surface graphs can be rotated using the Rotate... option of the Edit menu.
Just as you set the number of histogram bins, you can set the number of contour levels. This is done with the Z-Axis Options dialog box. Disable Auto Ticks and place the desired number of contour levels in the Major entry box.
You can also select the range over which the contours extend by first disabling Auto Scale and placing the desired range in the Min and Max entry box. You can also have logarithmically spaced contours by enabling Log Scale for the Z axis. Outward Ticks, Exploded Axis and Grid Lines options have no effect on a contour graph.
You can manipulate polar graphs just as you would line graphs, except you cannot display a label on the Y axis. If you annotate a polar graph, you must specify the annotation text in (X, Y) and not in (angle, radius) notation which is used for the data.
Just as with line and bar charts, high-low graphs can show multiple sets of data. You can use the Data Set Options dialog box to change the horizontal tick marks into boxes, circles, etc. You can also use the Skew Data button in the Graph Options dialog box to offset the data sets from each other. This helps in discriminating the data points from one data set to another.
The vertical lines in each data set can also be connected with line segments or splines. You have the same flexibility in determining the look of the High-Low graph as you do with Line and Scatter graphs.
Variations of the box graph have a variety of names in different disciplines including candlestick graphs and box and whiskers graphs.
You can use the Data Sets dialog box to mark the Y data with a specific marker type such as box or circle. This will cause the median data point to be marked with the same type of marker, but with a solid color.
As with Line and Bar graphs, Box graphs can show multiple set of data. You can use the Skew Data button in the Graph Options dialog box to offset the data sets from each other. This helps in discriminating the data points from one data set to another.
The vertical lines in each data set can also be connected with line segments or splines. You have the same flexibility in determining the look of the Box graph as you do with High-Low graphs. You may combine a Box graph with a High-Low graph by simply providing the High and Low Y-data ranges in the Data Sets dialog box.
You can adjust the appearance of the separate plots in the Control graph exactly as you would with the Line, Bar, Scatter, Histogram, and Box graphs. The major difference is the presence of two different Y axes. The second set of Y values is defined in the "Lo Var" entry box of the Data Set Options dialog. The Aux. Y Axis Options dialog box is used to customize the Y axis for the second set of Y data. The options for this auxiliary Y axis operate the same as those for the X, Y, and Z axes.
To create a quick line or bar chart using the toolbar:
The graph is drawn inside a separate Graph Edit window named Untitled. The appearance of the graph itself is initially determined by the selected options in the New Graph Options dialog box. You can name your graph as described below.
The various menus in the Graph Edit window allow you to tailor the graph in many ways. These options are described below.
If you attempt to create a graph without selecting a range of data, XESS displays an empty graph window named "untitled". The menus inside the graph window can be used to select data ranges and an appropriate graph type can be generated. This approach may be necessary if you have non-contiguous data ranges.
To set new graph options:
When the range is wider than it is tall, then the X data values are assumed by default to be in the upper-most row and each set of Y data values is assumed to occupy the successively lower rows.
This arrangement is not required. You can explicitly specify the X and Y ranges for each dataset in the graph. Pairs of X and Y ranges need to have the same number of cells. Each dataset can have a different number of data points.
You can explicitly enter the X, Y, and Z data ranges in the Data Set Options dialog.
Each menu selection and associated dialog boxes are explained below.
To save a new graph:
Once a desired number of graphs are created and saved, any one of them can be re-displayed by selecting the appropriate graph name from the options of the Graph menu of the main XESS window.
The Data Set Options dialog box allows you to specify what ranges contain the data used in the graph and how you wish that data to be displayed. The Data Set Options dialog box includes the following sections:
- Data Set Selection
- Data Ranges
- Segment Type
- Line Type
- Marker types
- Fill Definition
- Shading
- Histogram
- Legends
To modify the Data Set Options for a graph:
For line or bar graphs, the number of Y data elements must match the number specified for the X Range.
(4,66,0.5,1.0)peak support timeXESS displays the text "peak support time" at position X=4 and Y=66 of the graph. This text is horizontally centered (0.5) and vertically above (1.0) position 4,66. Alignment of text in relation to the X,Y coordinate is specified in the following manner:
Horizontal Alignment 0 - default position Positive values - left aligned Negative values - right aligned 0.5 - centered Vertical Alignment 0 - default position Positive values - below point Negative values - above point
The easiest way to enter annotations is with the @ANNOTATE function.
The Line Width option determines the thickness of the line used for this set of data. The Line Color option lets you select the color to be used when drawing the line and markers for this data.
To Rotate the Graph:
- Theta
- The angle at which the surface rotates around the Z-Axis. Ranges from 0 to 89.
- Phi
- The angle at which you look down upon the surface. Ranges from 0 to -89.
- General...
- X Axis...
- Y Axis...
- Aux. Y Axis...
- Z Axis...
The Graph Options dialog box is used for changing the overall appearance and operation of the graph. The Graph Options dialog allows you to set:
- the graph type
- whether the graph redraws after recalculation
- whether to display legends
- whether to skew data series
- default font and colors for graph
- graph title text
- title display attributes
To set the Graph Options:
Certain graph types can be combined by setting the graph type in the individual Data Set dialogs. For example, this allows you to mix scatter, line, and bar charts all on the same graph. Setting the type from the Graph Options dialog forces the type on all the contained data sets.
In addition, the skewing option is also used to distinguish between Bar graphs and Stacked Bar graphs. For Stacked Bar graphs, skewing is ignored; for Bar graphs, skewing is always enforced. For both of these graphs, if the button setting is in conflict, an error dialog box pops up when the graph is drawn. To eliminate the error message popup, ensure that the Skew Data button is off for Stacked Bar graphs and on for Bar graphs.
- ^
- Starting a line with the caret character will center the line with respect to the previous line. Otherwise normal left alignment is used.
- {
- The left brace character begins a block of text.
- }
- The right brace character ends a block of text. Text blocks may contain other text blocks. Text blocks are typically used when multiple characters must be superscripted or subscripted.
- _
- The underscore causes the next character or text block to be subscripted with respect to the preceding character.
- ^
- Inside a line, the caret causes the next character or text block to be superscripted with respect to the preceding character.
- \
- The backslash turns off the special properties of the following character so it can be printed out. The string \\ prints a single backslash.
You may customize the following options:
To change Axis characteristics:
- ^
- Starting a line with a caret character will center the line with respect to the previous line. Otherwise normal left alignment is used.
- {
- The left brace character begins a block of text. The right brace character ends a block of text. Text blocks may contain other text blocks. Text blocks are typically used when multiple characters must be superscripted or subscripted.
- _
- The underscore causes the next character or text block to be subscripted with respect to the preceding character.
- ^
- Inside a line, a caret character causes the next character or text block to be superscripted with respect to the preceding character.
- \
- The backslash turns off the special properties of the following character so it can be printed out. In addition, The string \\ prints a single backslash.
You may change initial default values associated with all of the graph dialog boxes.
If the graph is stored on a sheet, you can double-click the graph to start the Graph Editor.
To view an existing graph:
To insert a graph into the sheet:
It is likely that the graph is not the correct size to be displayed in the sheet. To adjust this size, edit the desired graph in a Graph Edit window. Resize the Graph Edit window as desired and then save the graph again. The graph in the sheet will adjust to the new size. Repeat this action until the desired size is obtained.
Once you insert a graph in the sheet, any subsequent edit/save activity which results in changing the size of the graph may cause undesired changes to the spreadsheet layout. To ensure that the embedded graph size does not change unintentionally, click the expand button on the window frame to enlarge the graph edit window for editing, then click the shrink button to reinstate the original size. Then save the graph.
These locale settings are used to define applicable cell formats and the character used as decimal point when entering numeric data into a cell or when formatting relevant cell data.
You can use the -nolocale to have XESS ignore locale setting and use the defaults or those defined in the XESS resource file.
The Locale settings serve as the defaults used for Cell Formats and data entry (with respect to the decimal point). You can change the settings in the Locale dialog, but they will not be saved. If you wish to permanently change the Locale defaults, you must change them in the Xess5 resource file or your workstation's locale.
The characters used to identify column labels are adjusted to reflect the character set. Cell references can use the alternate column definitions (e.g. cell "γ1" in Greek would correspond to "C1").
- 1 - ISO 8859-1, ISO Latin-1
- The default value supported by previous versions of Xess and supporting most Western European languages.
- 2 - ISO 8859-2, ISO Latin-2
- Central and Eastern European
- 5 - ISO 8859-5
- Cyrillic.
- 7 - ISO 8859-7
- Greek.
- 9 - ISO 8859-9, ISO Latin-9
- Southern European (Turkish)
- 11 - ISO 8859-11
- Thai
- 15 - ISO Latin-9
- "Revised Latin-1"
*fontList *tabArea.fontListIn addition, the standard Xess system fonts may need to be changed if compatible fonts are not available on the system (see below).
*fontList *tabArea.fontList *defaultFontEncodings *defaultFontNames
The following shows how to replace the system font Times Roman with the Cyrillic font Nimrod:
*timesB.labelString: Nimrod *systemFont2Normal: *-nimrod-medium-r-normal *systemFont2Bold: *-nimrod-bold-r-normal *systemFont2Italic: *-nimrod-medium-i-normal *systemFont2BoldItalic: *nimrod-bold-i-normal *systemFont2Fallback: ROMANThe label string is the name displayed on the menus. The fallback is still given in terms of the standard Xess font name.
*selectB.accelerator *selectB.acceleratorText
XESS resources are separated into two sections: Motif resources and local resources. XESS local resources define aspects and functionality of the spreadsheet, while XESS Motif resources define the actual XESS environment such as the text on menu buttons and in dialog boxes and the general aesthetics of the spreadsheet.
For Linux and UNIX systems, the default appearance of the XESS spreadsheet is defined by the file Xess5. This file is be placed in the directory /usr/lib/X11/app-defaults by the installation script. If this file is not present, default values are derived from the fallbacks internal to program. A supplemental resource file can be placed in a user's home directory.
The resource file can be edited to customize the XESS work environment to suit your applications and preferences. Each resource is entered on a separate line in the resource file. For a more general explanation of X resources, we recommend chapter 2 of the X Window System Administrator's Guide, by Linda Mui and Eric Pearce, published by O'Reilly & Associates, ISBN: 0-937175-83-8, or 1-56592-052-X with a CDROM.