segp()

Read(1973) Label: sequence, interval number,

Description:

Return the member in a sequence corresponding to a certain interval number.

Syntax:

A.segp(x,y)

Note:

The expression finds the interval number where expression y falls in ordered sequence A and returns the member matching the interval number. By default the intervals between members of the sequence are left-closed and right-open. Expression parameter x is calculated over each member of sequence A.

 

If parameter y isn’t a member of sequence A, return null if members of the sequence are ordered ascendingly and if y is less than the smallest member, or if members of the sequence are ordered descendingly and if y is greater than the largest member. The function will return the largest member value if members of the sequence are ordered ascendingly and if parameter y is greater than and equal to the largest member value; or return the smallest member value if members of the sequence are ordered descendingly and if parameter y is less than and equal to the smallest member value.

Parameter:

A

A sequence

x

A field expression or a legal expression made up of field names, in which “~” can be used to reference the current record and which can be absent

y

An expression

Option:

@r

Use left-open and right-closed intervals

Return value:

A member of the specified sequence

Example:

 

A

 

1

[2,22,122,222,2222]

 

2

=A1.segp(1)

Return null as A1’s sequence is in ascending order and parameter y is less than the smallest member’s value in the sequence.

3

=A1.segp(100)

22; the intervals between members of the sequence are [2,22), [22,122),

[122,222), [222,2222) and [2222,∞); 100 falls in interval [22,122), the second interval, so the function returns the second member.

4

=A1.segp(3000)

2222; return the largest member in A1’s sequence since parameter y is greater than this largest member’s value.

5

=A1.segp(~+~,200)

22

6

=A1.segp(~+~,244)

122

7

=A1.segp@r(~+~,244)

22; left-open and right-closed intervals with @r option.