1037 lines
38 KiB
Plaintext
1037 lines
38 KiB
Plaintext
|
|
|||
|
How to Use Oleo
|
|||
|
|
|||
|
This is a brief description of Oleo. It is not a good introduction to
|
|||
|
spreadsheets in general. We hope to provide more complete
|
|||
|
documentation in the future.
|
|||
|
|
|||
|
|
|||
|
Cell references:
|
|||
|
|
|||
|
The case of cell and range letters is ignored. Lowercase letters in
|
|||
|
cell and range letters are silently turned into their uppercase
|
|||
|
equivelents.
|
|||
|
|
|||
|
Absolute vs Relative references:
|
|||
|
|
|||
|
A reference to a cell may be either absolute or relative. The only
|
|||
|
difference between them (besides how they are printed) is how they are
|
|||
|
adjusted when a cell is moved or copied.
|
|||
|
|
|||
|
When an expression containing an absolute reference is moved or copied, the
|
|||
|
reference will still point to the same cell.
|
|||
|
|
|||
|
When an expression containing a relative reference is moved or copied, the
|
|||
|
reference is changed to point to the cell at the same offset from the
|
|||
|
reference's new position.
|
|||
|
|
|||
|
So if the expression 'R[+1]C[+1]' is in cell R8C9 it refers to cell R9C10.
|
|||
|
If the same expression is copied into cell R1C1 it will refer to R2C2.
|
|||
|
|
|||
|
|
|||
|
Address Syntax:
|
|||
|
|
|||
|
Oleo supports two syntaxes for cell address, called `a0' and `noa0'.
|
|||
|
To switch between these syntaxes, use the set-option command.
|
|||
|
|
|||
|
M-x set-option a0
|
|||
|
M-x set-option no a0
|
|||
|
|
|||
|
|
|||
|
In 'noa0' mode: (the default)
|
|||
|
|
|||
|
Absolute cell references have the form R{row_num}C{col_num}, as in R1C1 (the
|
|||
|
topleft cell in the sheet).
|
|||
|
|
|||
|
Relative ones have the form R[{offset}]C[{offset}], as in R[-1]C[+1] (The
|
|||
|
cell above and to the right of the current cell). An offset of zero, can be
|
|||
|
deleted, along with its square-brackets, as in RC[+1] (the cell to the right
|
|||
|
of the current cell.)
|
|||
|
|
|||
|
Mixed-mode references also work about the same as you'd
|
|||
|
expect, as in R4C[-1] (the cell in row four that's one left
|
|||
|
of the current cell.)
|
|||
|
|
|||
|
Ranges are of the form R{row1}:{row2}C{col1}:{col2}, where the row and
|
|||
|
column references may be either absolute or relative. If
|
|||
|
{row2}=={row1} or {col2}=={col1}, the colon and the redundant number
|
|||
|
may be omitted, as in R1:10c2 (Rows one through ten in column two).
|
|||
|
|
|||
|
Mixed-mode rangers work, and have the syntax you'd expect, as in R2:[-1]c3.
|
|||
|
|
|||
|
|
|||
|
In 'a0' mode:
|
|||
|
|
|||
|
Relative cell reference have the form {col_let}{row_num}, as in A1 (the
|
|||
|
topleft cell in the sheet).
|
|||
|
|
|||
|
Absolute ones have the form ${col_let}${row_num}, as in $A$1 (The topleft
|
|||
|
cell in the sheet).
|
|||
|
|
|||
|
Mixed-mode ones work about the way you'd expect, with $A1 having an absolute
|
|||
|
column, but a relative row. . .
|
|||
|
|
|||
|
Ranges are either {cell_ref}:{cell_ref} or {cell_ref}.{cell_ref}, where the
|
|||
|
cell_refs describe opposite corners of the range. So A1:B2 is the topmost,
|
|||
|
leftmost four cells in the spreadsheet.
|
|||
|
|
|||
|
Mixed mode rangers work, and have the syntax you'd expect, as in '$A3.$F9.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Keymaps:
|
|||
|
|
|||
|
Keymaps may have a 'default map'. If a key is pressed which does not have an
|
|||
|
assigned meaning in that map, the map's default map is checked, and that
|
|||
|
map's default map, until a command is found or there are no more default maps
|
|||
|
to scan.
|
|||
|
|
|||
|
Here is a list of keymaps, and the keymaps to which they default:
|
|||
|
Oleo normally has five keymaps. They are:
|
|||
|
|
|||
|
KEYMAP (DEFAULT) USE
|
|||
|
universal The root of all keymaps.
|
|||
|
help (universal) Help commands.
|
|||
|
mouse (universal) Bindings for mouse buttons.
|
|||
|
navigate (universal) Commands that move the cursor.
|
|||
|
trolx-navigate (universal) Navigate commands prefixed by ^X.
|
|||
|
meta-navigate (universal) Navigate commands prefixed by ESC.
|
|||
|
main (navigate) The default keymap.
|
|||
|
trolx (trolx-navigate) Default ^X commands.
|
|||
|
meta (meta-navigate) Default ESC commands.
|
|||
|
digit (main) The numeric prefix keymap.
|
|||
|
edit (universal) The keymap for edditting in the input area.
|
|||
|
meta-edit (universal) Edit commands prefixed by ESC.
|
|||
|
trolx-edit (universal) Edit commands prefixed by ^X.
|
|||
|
ansi (universal) A keymap for ANSI arrows keys.
|
|||
|
|
|||
|
|
|||
|
The command write-keys can be used to produce a listing of
|
|||
|
keybindings. Also, the source file init.c lists the default bindings.
|
|||
|
|
|||
|
|
|||
|
Input Editing:
|
|||
|
|
|||
|
When the spreadsheet is reading text input, you can use a few
|
|||
|
text-editing commands. Note that there in no history mechanism and no
|
|||
|
yank command. If you accidentally ^U your text, it is *gone*.
|
|||
|
This will be improved in the future.
|
|||
|
|
|||
|
While the input area is active, the commands that move the cell cursor
|
|||
|
are disabled. If you want to move the cell cursor, use the
|
|||
|
other-window command (^X-o) to leave and later reenter the input area.
|
|||
|
|
|||
|
The following editing commands are defined:
|
|||
|
|
|||
|
Name: Key: What it does:
|
|||
|
|
|||
|
M-A insert-abs-ref Insert/over-write an absolute reference to the
|
|||
|
current cell/region.
|
|||
|
M-R insert-rel-ref Insert/over-write a relative reference to the
|
|||
|
current cell/region.
|
|||
|
M-E insert-cell-expression Insert/over-write the expression in the
|
|||
|
current cell.
|
|||
|
M-V insert-cell-value Insert/over-write the value of the current
|
|||
|
cell.
|
|||
|
^A cursor-begin-line Move the cursor to the beginning of the text.
|
|||
|
^B cursor-back-char Move the cursor back a character.
|
|||
|
M-B cursor-back-word Move back a word.
|
|||
|
^D delete-next-char Delete the character under the cursor.
|
|||
|
M-D delete-next-word Delete from the cursor to the end of
|
|||
|
the current word.
|
|||
|
^E cursor-end-line Move to the end of the text.
|
|||
|
^F cursor-fwd-charF Move forward a character.
|
|||
|
M-F cursor-fwd-word Move forward a word.
|
|||
|
^H ^? delete-prev-char Delete the character to the left of the cursor.
|
|||
|
^J ^M finish-line Finish editing the text, and execute the
|
|||
|
command you've been typing the text in for.
|
|||
|
^K delete-to-end Delete from the cursor to the end of the text.
|
|||
|
M-O toggle-over-write Toggle between overwrite and insert mode.
|
|||
|
^U ^X delete-to-start (BEWARE!) Deletes from the cursor to the
|
|||
|
beginning of the line.
|
|||
|
^W delete-prev-word Delete the word to the left of the cursor.
|
|||
|
' ' to ~ self-insert These characters are either inserted or
|
|||
|
over-written into the text.
|
|||
|
^X-O other-window Move the cursor into the cell area.
|
|||
|
|
|||
|
Input Defaults:
|
|||
|
|
|||
|
Almost all editing commands remember what you typed the last time you used
|
|||
|
that command, and start you up editing a copy of that text. If you want to
|
|||
|
type in something completely new, just type ^X (or ^U) and type in your new
|
|||
|
text.
|
|||
|
|
|||
|
|
|||
|
Error Messages:
|
|||
|
|
|||
|
Error messages are displayed on the input line. If oleo needs to display
|
|||
|
more than one error message at a time, it will display [MORE] at the end of
|
|||
|
the first msg, and will wait for you to type a key before displaying the next
|
|||
|
one. Oleo will also display the [MORE] message if you are entering text in
|
|||
|
the input line, so that you will be able to see the error message.
|
|||
|
|
|||
|
Info Messages:
|
|||
|
|
|||
|
Some commands (like format-cell) occasionally display non-error information.
|
|||
|
If the status line is enabled, the message is displayed there, and subsequent
|
|||
|
non-error messages will over-write them without [MORE] prompting. This in
|
|||
|
quite useful if the msg in question concerns how far oleo has gotten through
|
|||
|
some task (like reading a file). If the status line is disabled, the
|
|||
|
messages are displayed in the input line.
|
|||
|
|
|||
|
The Main Commands:
|
|||
|
|
|||
|
Key Command Name What it does
|
|||
|
h ^B go-left These commands move the cell-cursor one cell
|
|||
|
j ^N go-down in the appropriate direction.
|
|||
|
k ^P go-up
|
|||
|
l ^F go-right
|
|||
|
y go-upleft
|
|||
|
u go-upright
|
|||
|
b go-downleft
|
|||
|
n go-downright
|
|||
|
|
|||
|
H ^X-< scroll-left These scroll the current window one screenful
|
|||
|
J M-v scroll-down in the appropriate direction. They try to
|
|||
|
K ^V scroll-up leave the cell cursor in (roughly the same
|
|||
|
L ^X-> scroll-right place in the window, so that an L followed by
|
|||
|
Y scroll-upleft an H will leave the cell cursor back in the
|
|||
|
U scroll-upright original cell, however, since the number of
|
|||
|
B scroll-downleft rows and columns in each screenful varies,
|
|||
|
N scroll-downright this will not always work.
|
|||
|
|
|||
|
M-H M-b scan-left These commands move to the first/last nonempty cell in
|
|||
|
M-J M-n scan-down the current row/column. If given a repeat count, they
|
|||
|
M-K M-p scan-up go to the N-th most nonempty cell. If there are no
|
|||
|
M-L M-f scan-right cells, the cursor is moved to the leftmost/top cell.
|
|||
|
|
|||
|
^G break This will abort a partially completed command. If you are
|
|||
|
typing text on the top line, the text you typed will be saved
|
|||
|
and presented as the default the next time you start that
|
|||
|
command.
|
|||
|
|
|||
|
^L recenter-window This redraws the screen. If the page option
|
|||
|
is not set in this window, it will try to move the current
|
|||
|
cell to the center of the window. If the page option is set,
|
|||
|
this will just redraw the screen.
|
|||
|
|
|||
|
o set-option This asks for an option to set or reset, and tries to
|
|||
|
do so.
|
|||
|
|
|||
|
|
|||
|
d set-defaults This command will change the default alignment, format,
|
|||
|
protection, or width. If the status-line is enabled,
|
|||
|
this will display the current settings there.
|
|||
|
|
|||
|
Q quit This command exits the spreadsheet and returns you to the
|
|||
|
shell. This may ask for confirmation if oleo thinks you have
|
|||
|
unsaved changes. If you do not save your changes before
|
|||
|
quitting, they will be lost forever.
|
|||
|
|
|||
|
^R M-^l redraw-screen This redraws the screen. It is most useful if
|
|||
|
line-noise or another program has scribbled on your display.
|
|||
|
|
|||
|
|
|||
|
M-U set-user-format Set a user-defined format.
|
|||
|
|
|||
|
v set-variable This prompts you for a name followed by a cell or
|
|||
|
range that you want to refer to by that name. To
|
|||
|
'undefine' a variable, use set-variable with just its
|
|||
|
name.
|
|||
|
|
|||
|
V show-variable
|
|||
|
|
|||
|
^V show-all-variables This shows the values of all currently defined
|
|||
|
variables.
|
|||
|
|
|||
|
! recalculate Recalculate the spreadsheet until all the cells whose
|
|||
|
values may have changed have been evaluated. If there are
|
|||
|
circular cell references, the cells in the loop will be
|
|||
|
evaluated at most 40 times (this number subject to change!)
|
|||
|
|
|||
|
: bind-key This asks for the name of a keymap followed by a
|
|||
|
command name and a key to bind it to. If the 'command' you
|
|||
|
give is a cell or region in the spreadsheet, it is taken as a
|
|||
|
macro, and bound to the key you specify.
|
|||
|
|
|||
|
; describe-key Have the user press a key, and then describe
|
|||
|
what function that key is bound to.
|
|||
|
|
|||
|
M-< read-commands This command opens the file you specify reads in each
|
|||
|
line, and executes them as if you'd typed them in to
|
|||
|
execute-command. If any command needs more arguments than are
|
|||
|
included on the line, it will prompt you (interactively) for
|
|||
|
the missing information.
|
|||
|
|
|||
|
M-> write-keys Write a list of commands to the file that, when
|
|||
|
executed with read-commands, will return the keymaps to their
|
|||
|
current state.
|
|||
|
|
|||
|
w ^x^s Save the spreadsheet to a file, using the current
|
|||
|
file-format.
|
|||
|
|
|||
|
r ^x^v visit-spreadsheet Read in a file in the current
|
|||
|
file-format. This erases the current contents of the
|
|||
|
spreadsheet first. This may ask for confirmation.
|
|||
|
|
|||
|
R ^x^i merge-spreadsheet
|
|||
|
Read in a file and merge its contents into the
|
|||
|
current spreadsheet. Note that some file-formats, (like
|
|||
|
panic-save) won't work with this command.
|
|||
|
|
|||
|
^X-DEL clear-spreadsheet
|
|||
|
Delete the entire spreadsheet. This may ask
|
|||
|
for confirmation if oleo thinks you may be about to lose
|
|||
|
un-saved work.
|
|||
|
|
|||
|
c copy-region Copy a region. Takes two ranges, copies the source
|
|||
|
range into the dest range. If the dest range size is a
|
|||
|
multiple of the source range size, the source range is copied
|
|||
|
multiple times. If the dest range is given as a cell, the
|
|||
|
cell is the location of the top-left corner of the dest range.
|
|||
|
|
|||
|
C copy-values-in-region Copy just the values of one region to another.
|
|||
|
|
|||
|
F format-region Change the format, alignment, protection,
|
|||
|
or width of a region. If the status line is active, oleo
|
|||
|
will display the current alignment, format, width and
|
|||
|
protection of the top-left cell in the region.
|
|||
|
|
|||
|
m move-region This is similar to copy-region, except that the two
|
|||
|
ranges must be the same size, and that cells that reference
|
|||
|
the source region may be modified to reference the dest
|
|||
|
region instead. (absolute references are modified, relative
|
|||
|
ones aren't.) Variables whose ranges are inside the source
|
|||
|
region are also adjusted.
|
|||
|
|
|||
|
p print-region Print a region to a file. Asks for a region
|
|||
|
(to print) and a filename to to write to.
|
|||
|
|
|||
|
s sort-region Sort a region. This takes the region to sort, a
|
|||
|
region that is the first element of the region, and a list of
|
|||
|
cells that are to be used as the sorting-keys. Here's an
|
|||
|
example. sort-region r1:100c1:10 r1:2c1:10 +r1c2 -r1c3 This
|
|||
|
means: Sort the region R1:100C1:10 in two-row, ten-column
|
|||
|
chunks, sorting on the cell that's in the top-row
|
|||
|
one-column-in. If they are similar, use the cell in the
|
|||
|
top-row two-columns-in, with high values ending up before low
|
|||
|
ones.
|
|||
|
|
|||
|
^x-w write-region-to-file Write a region of the spreadsheet to a file.
|
|||
|
This command is not allowed with some
|
|||
|
file-formats (like panic-save).
|
|||
|
|
|||
|
X delete-region Delete {value, formula, format, etc} of a
|
|||
|
region. This DOES NOT ask for confirmation.
|
|||
|
|
|||
|
M-( start-entering-macro Start storing a keyboard macro. Keyboard
|
|||
|
macros are strings that contain the characters you typed.
|
|||
|
|
|||
|
M-) stop-entering-macro Finish a keyboard macro, and store it in a
|
|||
|
cell that you specify.
|
|||
|
|
|||
|
M-X execute-command This will allow you to execute either a
|
|||
|
builtin command, or a macro. For a builtin command, simply
|
|||
|
enter the command's name (and, optionally, any arguments the
|
|||
|
command will want). For a macro, enter its name, or
|
|||
|
the region in the spreadsheet that contains it.
|
|||
|
|
|||
|
You can create macros with text strings. Command names may
|
|||
|
be enclosed in {CMD}, as in {go-left}. Some commands may
|
|||
|
take arguments, as in {go-up 12} or {goto-cell r1c3}. To
|
|||
|
execute multiple commands, concatenate them. Other
|
|||
|
characters are taken as keystrokes, and act exactly as if you
|
|||
|
had typed them.
|
|||
|
|
|||
|
When the spreadsheet is executing a macro, it stops when
|
|||
|
1) It encounters an empty cell, or one which is not a string,
|
|||
|
or which is the empty string "".
|
|||
|
2) an error occurs while trying to parse a command name, or a
|
|||
|
command's arguments.
|
|||
|
3) All the cells in the region have been executed.
|
|||
|
|
|||
|
The top-left cell in a region is executed first, then the one
|
|||
|
below it, down to the bottom cell in the macro, then the one
|
|||
|
to the right of the top-left cell, down to the bottom cell in
|
|||
|
that column, etc. . .
|
|||
|
|
|||
|
Macros may execute other macros.
|
|||
|
|
|||
|
g ^xg goto-cell Asks for a cell to go to, and moves the cell cursor
|
|||
|
there. The cell can be either a cell name as in 'R32C96',
|
|||
|
or a variable. This command starts with a default of
|
|||
|
wherever the cursor was the last time this command was used.
|
|||
|
If you type a range, the cursor is placed in the top-left
|
|||
|
corner of the range, and the cell-mark is placed at the
|
|||
|
opposite corner of the region.
|
|||
|
|
|||
|
^@ mark-cell Mark one corner of a rectangular region to use for
|
|||
|
the next command. (The cell cursor marks the other corner.)
|
|||
|
You can use this while a command is prompting you for a
|
|||
|
region by moving to one corner, typing ^@, moving to the
|
|||
|
other corner, and hitting <RETURN>.
|
|||
|
|
|||
|
e edit-cell Edit the formula of the current cell.
|
|||
|
|
|||
|
E edit-value-cell Edit the value of the current cell. Using
|
|||
|
this command will replace the current cell's formula with a
|
|||
|
constant expression.
|
|||
|
|
|||
|
|
|||
|
f format-cell Change the format, alignment, or protection of the
|
|||
|
current cell, or the width of the current column. If the
|
|||
|
status line is enabled, the current alignment, format,
|
|||
|
protection, and width will be displayed there.
|
|||
|
|
|||
|
x delete-cell This deletes the (value, formula, format, etc) of the
|
|||
|
current cell. To delete just the value and formula, use
|
|||
|
<space><return>.
|
|||
|
|
|||
|
= edit-cell-with-default Enter a formula for the current cell with the
|
|||
|
default text of the last formula you typed.
|
|||
|
|
|||
|
M-0 digit-0 Repeat the next command [digits] times.
|
|||
|
M-1 digit-1 You can type multiple digits, as in
|
|||
|
M-2 digit-2 M-1 0 0 j
|
|||
|
M-3 digit-3 which will go down 100 cells. This command uses the
|
|||
|
M-4 digit-4 digit-map so that you the second and subsequent digits
|
|||
|
M-5 digit-5 do not need to be meta-ized.
|
|||
|
M-6 digit-6
|
|||
|
M-7 digit-7
|
|||
|
M-8 digit-8
|
|||
|
M-9 digit-9
|
|||
|
|
|||
|
0-9 enter-text-in-cell Enter a new formula that begins with the
|
|||
|
character typed. Note that this blows away whatever was
|
|||
|
saved as a default from the last time you entered a formula.
|
|||
|
|
|||
|
O show-options This shows the current state of all the spreadsheet
|
|||
|
options, and also shows the current definitions for all the
|
|||
|
user-defined variables.
|
|||
|
|
|||
|
^X-2 split-window-vertically
|
|||
|
^X-5 split-window-horizontally
|
|||
|
These commands divide the current window in half.
|
|||
|
^X-0 delete-window
|
|||
|
Delete the current window.
|
|||
|
^X-1 delete-other-windows
|
|||
|
Delete all but the current window.
|
|||
|
^X-o other-window
|
|||
|
Move to the next window. Repeated, this will visit
|
|||
|
all the windows.
|
|||
|
|
|||
|
M-W open-window This command takes a line beginning with the letter
|
|||
|
'h' (for horizontal), or 'v' (for vertical), followed by the
|
|||
|
number of lines/columns to leave in the current window.
|
|||
|
The cell cursor is placed in the new window.
|
|||
|
|
|||
|
M-C close-window This takes the number of a window to close, and makes
|
|||
|
it go away. The surrounding window(s) expand to fill the
|
|||
|
space the window occupied.
|
|||
|
|
|||
|
M-G goto-window This takes the number of a window to go to, and
|
|||
|
places the cell-cursor in that window.
|
|||
|
|
|||
|
Oleo uses the character ^\ to prefix mouse commands. The default
|
|||
|
bindings in the mouse map are:
|
|||
|
|
|||
|
0 mouse-goto
|
|||
|
Move to the pointed to cell.
|
|||
|
1 mouse-mark
|
|||
|
Mark the pointed to cell without moving.
|
|||
|
2 mouse-mark-and-goto
|
|||
|
Mark the current cell, and move to the pointed to cell.
|
|||
|
|
|||
|
The numbers correspond to X button numbers (usually 0 is the leftmost
|
|||
|
button on the mouse).
|
|||
|
|
|||
|
Displaying Cell Contents:
|
|||
|
|
|||
|
If a cell contains a number or string that takes more characters than the
|
|||
|
width of the cell to display, the display may slop over into the cell(s) to the
|
|||
|
right. This does not affect the slopped over cells in any way. Only cells
|
|||
|
that are empty, or have their format set to hidden, will be slopped over.
|
|||
|
|
|||
|
If there isn't room to display a number, a series of '#', will appear in the
|
|||
|
cell.
|
|||
|
|
|||
|
If there isn't room to display any other value, only the characters that fit
|
|||
|
(less one, so there'll be a space separating cells) will be displayed.
|
|||
|
|
|||
|
Numeric formats:
|
|||
|
|
|||
|
Oleo can display numbers in a variety of formats. In addition to the sixteen
|
|||
|
user-defined formats, you can use:
|
|||
|
|
|||
|
integer The number is rounded to an integer before being displayed.
|
|||
|
|
|||
|
float The number is displayed in normal, everyday notation, using
|
|||
|
whatever precision is needed (or fits).
|
|||
|
|
|||
|
hidden The number is not displayed. It is recalculated, etc as
|
|||
|
normal, but the cell is displayed as if it were empty.
|
|||
|
|
|||
|
graph The number is displayed as a small graph. If the number is
|
|||
|
close to zero, it will be displayed as '0', If it is positive,
|
|||
|
a row of '+'-es is displayed. If it is negative, a row of
|
|||
|
'-'-es is displayed.
|
|||
|
|
|||
|
user-1 through These are the sixteen user-defined formats, as described
|
|||
|
user-16 below.
|
|||
|
|
|||
|
The following formats require a precision. The precision may be a number
|
|||
|
from zero to 14, in which case that number of digits will always be displayed
|
|||
|
after the decimal point (zero-padding or rounding the number as needed), or
|
|||
|
the precision may be 'float', in which case oleo will use as many digits as
|
|||
|
necessary. As examples:
|
|||
|
|
|||
|
dollar.2 display like ``$1,769.00''
|
|||
|
general.float " " ``1769.00032''
|
|||
|
|
|||
|
|
|||
|
|
|||
|
general This uses either normal or scientific notation, depending on
|
|||
|
the magnitude of the number and the width of the column.
|
|||
|
|
|||
|
dollar Positive values are preceeded by '$', (so 3 is displayed as
|
|||
|
'$3'). Negative values are parenthasized (so -3 is displayed
|
|||
|
as '($3)'), and all large values have a ',' every three
|
|||
|
digits (so 1000 is displayed as '$1,000'.
|
|||
|
|
|||
|
comma Positive numbers are not preceede by '$', but this is
|
|||
|
otherwise identical to 'dollar'.
|
|||
|
|
|||
|
percent The value is multiplied by 100, and is displayed with a
|
|||
|
trailing '%'. Thus .01 displays as '1%', while 1 displays as
|
|||
|
'100%'.
|
|||
|
|
|||
|
fixed The number is displayed in normal, everyday notation, using
|
|||
|
the precision specified. 'fixed.float' is the same as
|
|||
|
'float'. 'fixed.0' is the same as 'integer'.
|
|||
|
|
|||
|
exponent The number is displayed in scientific notation.
|
|||
|
|
|||
|
|
|||
|
User-defined numeric formats:
|
|||
|
|
|||
|
You can set up to sixteen user-defined numeric formats:
|
|||
|
|
|||
|
The current parts of a format are:
|
|||
|
(Using the 'dollar' format for an example.)
|
|||
|
|
|||
|
Example: What it is:
|
|||
|
$ What to print before postive numbers.
|
|||
|
( What to print before negative numbers.
|
|||
|
What to print after positive numbers.
|
|||
|
) What to print after negative numbers.
|
|||
|
$0 What to print if the number is zero.
|
|||
|
, What to print between the thousands and the
|
|||
|
hundreds, etc.
|
|||
|
. What to print for a decimal point.
|
|||
|
|
|||
|
0-14 or float The number of digits to print after the decimal point.
|
|||
|
'float' means use however many digits are needed, or
|
|||
|
however many will fit, whichever is less. . .
|
|||
|
|
|||
|
any-number What to multiply the value by before printing.
|
|||
|
Most often this will be one, but it might be 100 if
|
|||
|
you're printing percentages, or .000001 if you're
|
|||
|
printing in megabucks. (Beware of overflow!)
|
|||
|
|
|||
|
Do not use digits for the headers, trailers, the comma, or the decimal point
|
|||
|
symbol. Using digits will confuse the internal routines and produce
|
|||
|
incomprehensible results. . . (Should the set-user-format command check its
|
|||
|
input for validity?)
|
|||
|
|
|||
|
Other Cell Formatting Options:
|
|||
|
|
|||
|
Values in a cell may be displayed aligned flush with either the left or right
|
|||
|
edges of the cell, or centered in the cell. The default is left-aligned.
|
|||
|
|
|||
|
The width of a column of cells may be set to any non-negative value. A value
|
|||
|
of zero means that cells in that column won't be displayed, and the normal
|
|||
|
cursor-motion commands will skip over those cells. However, you can position
|
|||
|
the cursor on a non-displayed cell by using the goto-cell command.
|
|||
|
|
|||
|
If the width of a column is wider than the display, it is displayed as if it
|
|||
|
were the width of the display.
|
|||
|
|
|||
|
|
|||
|
Currently Supported Options:
|
|||
|
|
|||
|
(no)a0 In a0 mode, Oleo uses {letters}{digits} style cell-references,
|
|||
|
like some popular spreadsheets.
|
|||
|
In noa0 mode, Oleo uses R{digits}C{digits} style references,
|
|||
|
like some other popular spreadsheets.
|
|||
|
|
|||
|
(no)auto In auto mode, cells whose values may have chaged are
|
|||
|
automatically recalculated. In noauto mode, cells are only
|
|||
|
recalculated when the recalculate command is used.
|
|||
|
|
|||
|
(no)background In background mode, automatic recalculation is done while
|
|||
|
(no)bkgrnd the spreadsheet waits for you to type a key (and stops while
|
|||
|
the key is being handled). In nobackground mode, oleo
|
|||
|
performs all its recalculation before listening for
|
|||
|
keystrokes. . .
|
|||
|
|
|||
|
(no)backup In backup mode, whenever the spreadsheet writes out a file,
|
|||
|
if the file already exists, a backup copy is made (like
|
|||
|
emacs).
|
|||
|
|
|||
|
(no)bkup_copy In nobackup mode bkup_copy is ignored. In bkup_copy mode,
|
|||
|
backup files are made by copying the original file, instead of
|
|||
|
renaming it.
|
|||
|
|
|||
|
ticks (number) This value controls how often should rnd(), cell(), my(),
|
|||
|
curcell(), etc cells get updated. This value is in seconds
|
|||
|
(???). The initial value is 10 seconds.
|
|||
|
|
|||
|
print (number) This is the width of the page for the print command. The
|
|||
|
initial value is the width of the screen.
|
|||
|
|
|||
|
file (format-name) If -DUSE_DLD was defined, format-name may be any .o file
|
|||
|
that contains definitions for the appropriate functions, or
|
|||
|
'panic', which is the only file format that oleo will have
|
|||
|
compiled into it. If -DUSE_DLD was not defined, format-name
|
|||
|
must be one of sylk, sc, panic, or list, and oleo will have
|
|||
|
to be re-compiled before any other formats may be used.
|
|||
|
|
|||
|
load (file-name) This option is only avaliable if oleo was compiled with
|
|||
|
-DUSE_DLD. This option loads in a .o file of spreadsheet
|
|||
|
functions, keyboard commands, and/or keymaps. Spreadsheet
|
|||
|
functions and keyboard commands must be loaded in before they
|
|||
|
can be used in expressiond or bound to keys.
|
|||
|
|
|||
|
status (number) This option controls which line on the screen is used for
|
|||
|
displaying the status of the current cell. The number may be
|
|||
|
positive, (counting down from the top), negative (counting up
|
|||
|
from the bottom, or zero (disabling the status line).
|
|||
|
|
|||
|
input (number) This option controls which line on the screen is used for
|
|||
|
reading lines of text. The number may be positive (counting
|
|||
|
down from the top), or negative (counting up from the
|
|||
|
bottom), but not zero.
|
|||
|
|
|||
|
The following options affect the currently active window:
|
|||
|
|
|||
|
(no)page Basically, in page mode, whenever a paticular cell is
|
|||
|
displayed in the window, it will always be in the same
|
|||
|
location on the screen. In page mode, the recenter command
|
|||
|
acts just like the redraw-screen command.
|
|||
|
|
|||
|
(no)pageh These options turns on or off page mode only in
|
|||
|
(no)pagev the horizontal or vertical axis.
|
|||
|
|
|||
|
link (wnum) This option 'links' the current window with the one
|
|||
|
specified. A window may only be linked to one other window
|
|||
|
at a time. When a window is linked to another one, whenever
|
|||
|
the cell cursor in the first window is moved, the cursor in
|
|||
|
the other window moves as well. (unless the cursor in other
|
|||
|
window is locked from moving in that diretion.)
|
|||
|
|
|||
|
(Should linking to a window force that window to link
|
|||
|
back? That might make life easier for naive users.)
|
|||
|
|
|||
|
nolink This removes the link (if any) on the current window.
|
|||
|
unlink
|
|||
|
|
|||
|
(no)lockh These options prevent the cell cursor in the current window
|
|||
|
(no)lockv from moving in the horizontal or vertical direction, but only
|
|||
|
when the cell cursor is moved in a window that this one is
|
|||
|
linked.
|
|||
|
|
|||
|
|
|||
|
(no)edges In edges mode oleo displays Row and Column numbers at the top
|
|||
|
and left edges of the window. Perhaps edges should be split
|
|||
|
into edgeh and edgev?
|
|||
|
|
|||
|
(no)standout In standout mode, the edges (see (no)edges) are drawn in
|
|||
|
standout mode (reverse video, usually).
|
|||
|
|
|||
|
|
|||
|
Options supported by the list file format:
|
|||
|
|
|||
|
list ch Use the character CH to separate the cell values.
|
|||
|
|
|||
|
|
|||
|
File names:
|
|||
|
|
|||
|
If a file name begins with a '|', the rest of the name is taken as a command,
|
|||
|
which oleo opens a pipe to. So you can use the name '|zcat file.Z' to read
|
|||
|
a compressed spreadsheed, or '|compress > file.Z' to write one.
|
|||
|
|
|||
|
|
|||
|
Using Oleo with X11
|
|||
|
|
|||
|
If your system has libX11, Oleo will be built with X support. If you run
|
|||
|
Oleo with the DISPLAY environment variable set, Oleo will open an X window
|
|||
|
instead of using curses.
|
|||
|
|
|||
|
Under X, cells are normally displayed in the default font. You can
|
|||
|
change that font using the set-default-font command. The value you
|
|||
|
specify may include wild cards, especially for the point size of the
|
|||
|
font. You can change the font used for specific areas of a
|
|||
|
spreadsheet using the commands `set-cell-font' and `set-region-font'.
|
|||
|
|
|||
|
Font Specifications
|
|||
|
|
|||
|
The easiest way to specify a font is to use one of the built in
|
|||
|
short-hand names. These names are `fixed', `times', and `courier'.
|
|||
|
Optionally, these names can be followed by a scale. The scale is the
|
|||
|
ratio of the default point size to the desired point size. For
|
|||
|
example, if the default font is a 10 point font, then `times 1.2'
|
|||
|
refers to a 12 point Times-Roman type font.
|
|||
|
|
|||
|
Every font has a long name that can also be used in specifications.
|
|||
|
The long name has three parts: an X name, a PostScript(*) name, and a
|
|||
|
scale. The X name and PostScript may be omitted. The shorthand name
|
|||
|
`times 1.2' is the same as the long name:
|
|||
|
|
|||
|
*times-medium-r-*, Times-Roman, 1.2
|
|||
|
|
|||
|
Notice that the size is left wildcarded in the X name. This is not
|
|||
|
absolutely necessary, but if it is done Oleo can resize the font
|
|||
|
should the size of the default font change (the command
|
|||
|
set-default-point-size does this).
|
|||
|
|
|||
|
New short hand names can be defined using the `define-font-name'
|
|||
|
command. Later, if a user uses a shorthand name in a font
|
|||
|
specification, the name is replace by the text of the definition. For
|
|||
|
example, here is a standard definition from init.c:
|
|||
|
|
|||
|
define-font-name time *times-medium-r-*, Times-Roman
|
|||
|
|
|||
|
Notice that the scale has been omitted. That is so that
|
|||
|
specifications like `times 1.2' will be properly expanded.
|
|||
|
|
|||
|
X resources and command line options.
|
|||
|
|
|||
|
Oleo doesn't yet recognize and .Xdefault resources or X specific
|
|||
|
command line options. It will in a future release.
|
|||
|
|
|||
|
|
|||
|
(*) PostScript is a trademark of Adobe Systems Incorporated.
|
|||
|
|
|||
|
|
|||
|
PostScript Printing
|
|||
|
|
|||
|
|
|||
|
Oleo can generate an embedded postScript redition of any part of a
|
|||
|
spreadsheet. Using the commands outlined in `Using Oleo with X11',
|
|||
|
you can control the fonts used in the printed output.
|
|||
|
|
|||
|
The command `psprint-region' takes a range and file name as arguments.
|
|||
|
It writes embedded postScript to the file.
|
|||
|
|
|||
|
Oleo will make the output as large as possible to fit the page. You
|
|||
|
can change the page size using the command `set-page-size'. For
|
|||
|
example, the default setting is `set-page-size 8.5 x 11'. To specify
|
|||
|
a page size in centimeters, use: `set-page-size 20 x 30 c'.
|
|||
|
|
|||
|
The command `set-default-ps-font' controls the default font for cells.
|
|||
|
For example, the initial value is `set-default-ps-font Times-Roman'.
|
|||
|
|
|||
|
|
|||
|
Formulae:
|
|||
|
|
|||
|
Numbers must be entered in 'general' format:
|
|||
|
[-]digits[.digits][e[-]digits]
|
|||
|
|
|||
|
Strings are entered surrounded by double-quotes. To include unusual
|
|||
|
characters, you can either use \char (works well for ") or use
|
|||
|
\nnn where nnn is the octal code for the character you want to include.
|
|||
|
|
|||
|
Magic constants:
|
|||
|
|
|||
|
Note that oleo automatically converts the names of constants to upper case,
|
|||
|
but they can be entered in any case.
|
|||
|
|
|||
|
#TRUE The logical TRUE value
|
|||
|
#FALSE The logical FALSE value
|
|||
|
|
|||
|
#ERROR Various error types.
|
|||
|
#BAD_INPUT
|
|||
|
#NON_NUMBER
|
|||
|
#NON_STRING
|
|||
|
#NON_BOOL
|
|||
|
#NON_RANGE
|
|||
|
#OUT_OF_RANGE
|
|||
|
#NO_VALUES
|
|||
|
#DIV_BY_ZERO
|
|||
|
#BAD_NAME
|
|||
|
#NOT_AVAIL
|
|||
|
#PARSE_ERROR
|
|||
|
#NEED_OPEN
|
|||
|
#NEED_CLOSE
|
|||
|
#NEED_QUOTE
|
|||
|
#UNK_CHAR
|
|||
|
#UNK_FUNC
|
|||
|
|
|||
|
#INF Various trancendental values. On some machines,
|
|||
|
#INFINITY (like the vax), these may all be the same value.
|
|||
|
#NAN
|
|||
|
#NOT_A_NUMBER
|
|||
|
#NINF
|
|||
|
#MINUS_INFINITY
|
|||
|
|
|||
|
|
|||
|
Infix functions:
|
|||
|
|
|||
|
- num 0-num
|
|||
|
! bool #TRUE if bool is #FALSE
|
|||
|
#FALSE if bool is #TRUE, error otherwise.
|
|||
|
|
|||
|
num1 ^ num2 Exponentiation This is *right* associative!
|
|||
|
num1 * num2 Multiplication Note that these functions are not as
|
|||
|
num1 / num2 Division good as they should be at detecting
|
|||
|
int1 % int2 Modulus overflow. There *is* code that should
|
|||
|
|
|||
|
num1 + num2 Addition force integer expressions to become
|
|||
|
num1 - num2 subtraction floating-point if the result wouldn't
|
|||
|
fit in an integer.
|
|||
|
num1 >= num2 Arithmatic greater-or-equal
|
|||
|
num1 > num2 greater-than
|
|||
|
num1 < num2 less-than
|
|||
|
num1 <= num2 less-than-or-equal
|
|||
|
|
|||
|
val1 = val2 #TRUE if val1 and val2 can be considered equal.
|
|||
|
#FALSE otherwise
|
|||
|
val1 != val2 Equivelent to !(val1=val2)
|
|||
|
|
|||
|
str1 & str2 Text concatination.
|
|||
|
|
|||
|
bool ? val1 : val2 if(bool==#TRUE)
|
|||
|
evaluate val1
|
|||
|
else if(bool!=#FALSE)
|
|||
|
error...
|
|||
|
else
|
|||
|
evaluate val2.
|
|||
|
|
|||
|
( val ) (To override default precedence) Note that since oleo
|
|||
|
stores expressions in a byte-compiled form, excess
|
|||
|
parens will mysteriously vanish.
|
|||
|
|
|||
|
|
|||
|
Prefix functions:
|
|||
|
|
|||
|
In 'a0' mode, all prefix functions have '@' prepended to their names.
|
|||
|
|
|||
|
if(bool,val1,val2) if(test==#TRUE)
|
|||
|
evaluate val1
|
|||
|
else if(test!=#FALSE)
|
|||
|
error...
|
|||
|
else
|
|||
|
evaluate val2.
|
|||
|
and(bool1,bool2) if(val1==#FALSE)
|
|||
|
#FALSE
|
|||
|
else if(val1!=#TRUE)
|
|||
|
error...
|
|||
|
else val2;
|
|||
|
or(bool1,bool2) if(val1==#TRUE)
|
|||
|
#TRUE
|
|||
|
else if(val1!=#FALSE)
|
|||
|
error...
|
|||
|
else val2;
|
|||
|
pi() 3.14159265358979326848
|
|||
|
row() The row number of the cell the expression is in.
|
|||
|
col() The column number of the cell the expression is in.
|
|||
|
now() The current time in seconds since Jan 1 1970 (?)
|
|||
|
abs(num) The absolute value of num.
|
|||
|
acos(num) The arc-cosine of num (num in radians)
|
|||
|
asin(num) The arc-sine of num (num in radians)
|
|||
|
atan(num) The arc-tangent of num (in radians)
|
|||
|
int(num) Convert to integer (toward zero)
|
|||
|
ceil(num) Convert to integer (round up)
|
|||
|
floor(num) Convert to integer (round down)
|
|||
|
cos(num) The cosine of num (in radians)
|
|||
|
dtr(num) num degrees in radians
|
|||
|
exp(num) The exponential function of num
|
|||
|
log(num) The natural log of num
|
|||
|
log10(num) The log of num to base 10
|
|||
|
rtd(num) num radians in degrees
|
|||
|
sin(num) The sine (in radians) of num
|
|||
|
sqrt(num) The square-root of num
|
|||
|
tan(num) The tangent (in radians) of num
|
|||
|
rnd(num) A random number from 0 to num-1
|
|||
|
negate(num) 0-num
|
|||
|
not(bool) #TRUE if bool is #FALSE
|
|||
|
#FALSE if bool is #TRUE, error otherwise.
|
|||
|
iserr(val) #TRUE if the expression is an error
|
|||
|
else #FALSE
|
|||
|
isnum(val) #TRUE if the expression is a number, or can be
|
|||
|
automatically converted into a number, thus
|
|||
|
isnum("12") is #TRUE, while isnum("12 ") is
|
|||
|
#FALSE. (This might be worth fixing.)
|
|||
|
rows(rng) number of rows in rng.
|
|||
|
cols(rng) number of columns in rng.
|
|||
|
ctime(num) Convert num into a readable date/time string.
|
|||
|
atan2(num1,num2) Two number arctangent
|
|||
|
hypot(num1,num2) use man 2 hypot
|
|||
|
fixed(num1,num2) num1 rounded to num2 decimal places
|
|||
|
|
|||
|
index(rng,int) the contents of the int-th cell in rng.
|
|||
|
index(rng,num1,num2) The contents of the int1-th down and int2-th
|
|||
|
over cell in rng
|
|||
|
oneof(int,val1,val2,val3...) switch(int) {
|
|||
|
case 1: val1;
|
|||
|
case 2: val2;
|
|||
|
...
|
|||
|
default: error;
|
|||
|
}
|
|||
|
|
|||
|
For the following functions, arguments that are ranges are scanned
|
|||
|
for numeric values only. Strings, error values, empty cells, etc, are ignored.
|
|||
|
All these functions except cnt() will give a #NO_VALUES error if it does not
|
|||
|
find any numbers. You can give most of the functions an explicit value if
|
|||
|
you don't want to get a #NO_VALUES error. For example, if you want to add
|
|||
|
up the range r1:20c5, and return 0 if there are no numbers there,
|
|||
|
'sum(0,r1:20c5)' will work.
|
|||
|
|
|||
|
Strings, etc, that are explicitly given to the functions are subjected to the
|
|||
|
usual conversion.
|
|||
|
|
|||
|
sum(vr1...) ...
|
|||
|
prod(vr1...) ...
|
|||
|
avg(vr1...) ...
|
|||
|
std(vr1...) The SAMPLE standard deviation. To get the population
|
|||
|
standard deviation, use sqrt(var(...))
|
|||
|
max(vr1...) ...
|
|||
|
min(vr1...) ...
|
|||
|
cnt(vr1...) The number of numeric values found.
|
|||
|
var(vr1...) The POPULATION variance. To get the sample variance,
|
|||
|
use std(...)^2
|
|||
|
|
|||
|
These functions are in the 'string' package. If oleo is compiled with
|
|||
|
-DUSE_DLD, the string package must be loaded before these functions can be
|
|||
|
used. If a spreadsheet that uses these functions is loaded before the
|
|||
|
string package is loaded, things will fail (silently!) (This is probably a
|
|||
|
bug.
|
|||
|
|
|||
|
len(str) length of string in characters.
|
|||
|
strupr(str) string converted to upper case
|
|||
|
strlwr(str) string converted to lower case
|
|||
|
strcap(str) string with each word capitalized.
|
|||
|
trim(str) string with extra spaces and non-ascii chars
|
|||
|
removed.
|
|||
|
find(str1,str2,int) return the location where str2 appears in
|
|||
|
str1, start looking at character #int
|
|||
|
substr(int1,int2,str) The characters in string from position int1
|
|||
|
to position int2. Positions can be either
|
|||
|
positive (First character is #1, last char is
|
|||
|
#(length of string)) or negative(last
|
|||
|
character is #-1, first character is #-(length
|
|||
|
of string)).
|
|||
|
mid(str,int1,int2) The characters in string from int1 (counting
|
|||
|
from the beginning) continuing for int2 chars.
|
|||
|
edit(str,int1,int2,...) Remove the text from int1 to int2 in string
|
|||
|
and replace it with ... (zero or more strings)
|
|||
|
int1 and int2 are like for substr() above.
|
|||
|
repeat(int,str) str repeated int times, thus repeat(2,"foo")
|
|||
|
returns "foofoo"
|
|||
|
concat(vr1,...) Concatinate strings, ranges, etc.
|
|||
|
|
|||
|
|
|||
|
These functions are in the 'cells' package. If oleo is compiled with
|
|||
|
-DUSE_DLD, the cells package must be loaded before these functions can be
|
|||
|
used.
|
|||
|
my(str) String: Returns:
|
|||
|
row row()
|
|||
|
column col()
|
|||
|
width The width of the column containing
|
|||
|
this cell.
|
|||
|
lock "locked" or "unlocked"
|
|||
|
protection ditto
|
|||
|
justify "left" "right" "center" or "default"
|
|||
|
alignment ditto
|
|||
|
format "default" "user-1" etc.
|
|||
|
fmt ditto.
|
|||
|
type "error", "boolean", "float",
|
|||
|
"integer", "null", "Unknown",
|
|||
|
etc.
|
|||
|
formula A string of the cell's current
|
|||
|
formula.
|
|||
|
value The cells current value.
|
|||
|
anything-else error--> #BAD_INPUT
|
|||
|
|
|||
|
curcell(str) Like my(), but for the cell under the
|
|||
|
cell-cursor in the current window.
|
|||
|
|
|||
|
cell(int1,int2,str) Like my(), but for the cell at Rint1Cint2.
|
|||
|
|
|||
|
member(rng,val) The number of the first cell in RNG that contains
|
|||
|
VAL, or zero if no cells contain it.
|
|||
|
|
|||
|
|
|||
|
These next four functions could probably be replaced by a pair of smart
|
|||
|
regex routines. . .
|
|||
|
|
|||
|
smember(rng,str) The number of the first cell in RNG that contains a
|
|||
|
substring of STR, or zero if no cell contains one.
|
|||
|
|
|||
|
members(rng,str) The number of the first cell in RNG whose value is
|
|||
|
a substring of STR.
|
|||
|
|
|||
|
pmember(rng,str) The number of the first cell in RNG whose value
|
|||
|
equals the first few characters of STR.
|
|||
|
|
|||
|
memberp(rng,str) The number of the first cell in RNG whose value
|
|||
|
starts with STR.
|
|||
|
|
|||
|
hlookup(rng,num,int) Scan through the top row of RANGE looking for a
|
|||
|
number which is greater than NUM. Then return the
|
|||
|
value in the cell that is INT rows down from the top
|
|||
|
of the range.
|
|||
|
|
|||
|
vlookup(rng,num,int) Like hlookup, but scans the left column
|
|||
|
and returns the value in the cell that is INT
|
|||
|
columns over from the left edge of the range.
|
|||
|
|
|||
|
vlookup_str(rng,num,str)Like vlookup, but scans the left column
|
|||
|
for a string. The column need not be sorted.
|
|||
|
|
|||
|
These functions are in the 'busi' package. If oleo is compiled with
|
|||
|
-DUSE_DLD, the busi package must be loaded before these functions can be
|
|||
|
used.
|
|||
|
|
|||
|
pmt(p,r,t) Payment per period for a loan of $P at rate R for T
|
|||
|
payments.
|
|||
|
|
|||
|
pv(pmt,int,term) Present value of an investment that pays $PMT at the
|
|||
|
end of each of TERM periods with a discount rate (interest) of INT.
|
|||
|
|
|||
|
npv(rng,rate) Net Present Value of an investment which will pay
|
|||
|
uneaven payments. The term is calculated from the number of cells in
|
|||
|
RNG. .
|
|||
|
|
|||
|
irr(rng,guess) Internal Rate of Return. This function is paticularly
|
|||
|
untested, and should not be trusted.
|
|||
|
|
|||
|
fv(pmt,int,term) Future Value of an annuity.
|
|||
|
|
|||
|
rate(fut,pres,term) Interest rate required to turn $PRES into $FUT in
|
|||
|
TERM periods.
|
|||
|
|
|||
|
term(pmt,int,fut) Number of periods required to collect $FUT in
|
|||
|
payments of $PMT, where depositd payments earn at a rate of INT.
|
|||
|
|
|||
|
cterm(int,fut,pres) Number of periods required to collect $FUT from a
|
|||
|
single initial deposit of $PRES, at an interest rate of INT.
|
|||
|
|
|||
|
sln(cost,scrap,life) Straight line depreciation of an asset that cost
|
|||
|
$COST when new, can be sold for $SCRAP, and will last for LIFE
|
|||
|
periods.
|
|||
|
|
|||
|
syd(cost,scrap,life,per) Sum-of-the-digits depreciation of an asset
|
|||
|
that cost $COST, can be sold for $SCRAP and lasts LIFE, in period PER.
|
|||
|
|
|||
|
ddb(cost,scrap,life,per) Double-declining-balance deprecion, otherwise
|
|||
|
similar to syd().
|
|||
|
|
|||
|
anrate(pmt,pres,term)
|
|||
|
anterm(pmt,prin,rate)
|
|||
|
balance(prin,rate,term,period)
|
|||
|
paidint(prin,rate,term,period)
|
|||
|
kint(prin,rate,term,period)
|
|||
|
kprin(prin,rate,term,period)
|
|||
|
compbal(print,rate,term)
|