Expression slots

Any slot in a PipeDream document can be designated as an expression slot, in which case the expression you type into it will be evaluated, and the result will be displayed in the corresponding position in the document.

An expression is entered by giving the Edit Expression command on the EDIT menu, or by typing X. The cursor will then move to the editing line, at the top of the screen, until the expression is entered by typing .

Alternatively, if the Options Page Text/Numbers option is set to N, all entries are taken as expressions.

Expressions 

Expressions can consist of numbers, functions performing operations on other expressions, references to other slots, or a combination of these combined by mathematical operators. Expressions can give a numerical result, a date, or a string of text. Illegal expressions will give an error as their result.

Numbers 

Numbers can be expressed in normal notation, or scientific notation. For example,

1, -1.7632, 1.4e27, 0.001

All calculations are performed to an accuracy of nine decimal places and numbers may lie between 1e38 and 1e-38.

Strings 

Strings are entered between double quotes, and may contain spaces. A slot reference to a text slot returns a string.

Slot references

The form of a slot reference is

column-label row-number

separated by optional spaces, where

column-label designates one of the 64 columns, A to Z, followed by AA to BN, and

row-number is from 1 to 32768.

Slot references are normally 'relative'; the reference will be updated if the position of the slot containing the reference changes relative to other slots.

Each half of the slot reference may be 'fixed' by preceding the column letter or the row number by a dollar sign. The possibilities are:

A1 normal reference 
$A1 fixed column reference
A$1 fixed row reference 
$A$1 fixed column, fixed row

The fixed part of a reference is not altered when copied with the Replicate or Copy commands on the BLOCKS menu, or when placed in a selection expression for the Save and Print commands on the FILES and PRINT menus respectively.

When a slot to which a slot reference refers is deleted, the slot reference is marked with a '%' sign to indicate that the reference is no longer valid. The expression containing the slot reference will display the Badslot error message.

Specifying a block of slots - Ranges

You can perform some functions on a block of slots, specified by the top left-hand corner of the block followed by the bottom right-hand corner of the block.

For example

A2 D8 

specifies all the slots in the block between columns A and D, and rows 2 and 8 inclusive.

In some cases the function only makes sense if the range is restricted to a single row (a 'row range') as in A1 D1, or a single column (a 'column range'), as in B8 B20.

Specifying several slots - Lists 

Functions are available to count, choose from, or find the maximum or minimum of a list of elements. The elements in a list are separated by commas and can be simple slot references, or ranges. Each slot in a range is considered as a separate list element. For example,

13, B1 B5, C7,

is a list containing the 7 elements 13, B1, B2, B3, B4, B5, and C7.

Dates 

Dates are entered in the format

DD.MM.YYYY or MM.DD.YYYY

depending on whether the Panel date-format setting is European or American.

Dates can be sorted into chronological order, and the functions DAY, MONTH, and YEAR can be used to extract the values of the date's day, month, and year respectively.

Operators 

The following operators can be used within expressions

Arithmetic 

The arithmetic operators take two numbers as operands.

+add-subtract
*multiply/divide
raise to the power  

Also, '+' and '-' may be used on date values. For example

12.10.1987 + 127

will return the date 127 days after 12 October 87, or 16.2.88, assuming that European date format has been selected.

Relational

The relational operators can compare dates, strings, and numbers. Both operands must be of the same type, and the result is a logical value of FALSE=0 and TRUE=1.

<less than=equal to
<=less than or equal to>greater than
<>not equal to>=greater than or equal to

When strings are being compared, the following wildcards (as in the Replace command) can be included in the second string:

^?matches any single character
^#matches any number of characters
^^represents ^

Logical 

The logical operators operate on numeric or logical values. Boolean FALSE is taken as zero, TRUE as non-zero.

&AND¦OR
!unary NOT  

Functions 

ABS

Absolute value 

 

ABS(number)

Returns the absolute positive value of the argument.

ACS

Arc cosine 

 

ACS(number)

Returns the arc cosine of the argument, in radians.

ASN

Arc sine

 

ASN(number)

Returns the arc sine of the argument, in radians.

ATN

Arc tangent

 

ATN(number)

Returns the arc tangent of the argument, in radians.

CHOOSE

Choose element from list 

 

CHOOSE(list)

Returns an element from the list, using the value of the first element as an index into the remaining elements. For example, if B4 contains 17.2.1987

CHOOSE (MONTH(B4),"jan","feb","mar","apr")

gives the result feb.

COL

Column

 

COL

The value of the column in which it is evaluated. Column A is 1, column B is 2, etc.

COS

Cosine

 

COS(radians)

Returns the cosine of the argument.

COUNT

Count the number of elements

 

COUNT(list)

Returns the number of non-blank slots in the list.

DAY

Day of date

 

DAY(date)

Returns the day number of a date argument.

For example, if slot A1 contains 17.3.1961, then DAY (A1) returns 17

DEG

Degrees from radians

 

DEG(radians)

Converts the argument, taken in radians, into degrees.

EXP

Exponent

 

EXP(number)

Returns the constant e (2.71828184..) raised to the specified power.

IF

Conditional expression

 

IF(boolean,then,else)

If the value of the first argument is TRUE, ie non-zero, the function returns then; otherwise the function returns else.

For example, if slot A1 contains -23,

IF(A1 <0,"Debit","Credit")

would return Debit.

INDEX

Index slot

 

INDEX(column,row)

Returns the evaluated expression or string found at coordinates column, row.

For example, if A2 contained IF(100,"Debit","Credit")

INDEX(1,2)

would return Credit.

INT

Integer part

 

INT(number)

Returns the integer part of the argument.

LN

Logarithm to base e 

 

LN(number)

Returns the natural logarithm, loge of the argument.

LOG

Logarithm to base 10

 

LOG(number)

Returns the logarithm to base 10 of the argument.

LOOKUP

Look up value in a table

 

LOOKUP(key,range1,range2)

Returns the value in range2 corresponding to the position that key occurs in range1.

key must be a cell reference. For example, the following sheet would result if LOOKUP(A3,A1 F1,A2 F2) were placed at B4:

If an exact match is found in range1, the function returns the value of the slot the same number of slots from the beginning of the second range.

If key is not found in range1, the function returns the error

Lookup

Wildcards '^?' and '^#' may be included in key.

MAX

Maximum value in list

 

MAX(list)

Returns the maximum value from the slots in the list.

MIN

Minimum value in list

 

MIN(list)

Returns the minimum value from the slots in the list.

MONTH

Month of date

 

MONTH(date)

Returns the month number of its date argument.

For example, if A1 contains 12.6.1987 then MONTH(A1) returns 6.

PI

π

 

PI

Returns the value 3.141592653.

RAD

Radians from degrees

 

RAD(degrees)

Returns the argument, taken as degrees, converted into radians.

ROW

Row

 

ROW

The value of the row in which it is evaluated.

SGN

Sign

 

SGN(number)

Returns -1, 0, or 1 depending on whether the argument is negative, zero, or positive respectively.

SIN

Sine

 

SIN(radians)

Returns the sine of the argument, in radians.

SQR

Square root

 

SQR(number)

Returns the positive square-root of its argument.

SUM

Sum

 

SUM(list)

Returns the sum of the slots in the list.

TAN

Tangent

 

TAN(radians)

Returns the tangent of the argument, in radians.

YEAR

Year of date

 

Returns the year number of its date argument.

For example, if A1 contains 12.6.1987 then YEAR(A1) returns 87.

@ Fields

You can include the page number, the date, the file title from the Options Page, or the value of any expression slot within text in your document using the special PipeDream @-fields.

The following @ fields are available:

IdentifierEffect
@P@current page number
@D@date
@T@title defined in options page
@ref@value of slot ref
@@@

One or more '@' characters should be given after the identifier to determine the size of the @ field for formatting. For example,

@P@@@@ 

creates a field of four characters. Provided the value to be displayed is less than the size of the @-field, the line will be justified correctly.

The field:

@ref@@@@@ 

will reserve five characters for the value of the slot indicated by the reference.

If it is an expression slot, the value will be displayed in the same format as in the slot itself, with alignment ignored.

When the cursor is not on a text slot with an @ field in it, the slot shows the value of the @ field. When the cursor is moved onto the slot, the actual @ identifier is shown, for editing.

 

web analytics