Skip to main content

EXAMPLE - ARRAYLEN and ARRAYELEMENTAT Functions

This example covers the following functions:

Source:

Here are some student test scores. Individual scores are stored in the Scores column. You want to:

  1. Flag the students who have not taken four tests.

  2. Compute the range in scores for each student.

LastName

FirstName

Scores

Allen

Amanda

[79, 83,87,81]

Bell

Bobby

[85, 92, 94, 98]

Charles

Cameron

[88,81,85]

Dudley

Danny

[82,88,81,77]

Ellis

Evan

[91,93,87,93]

Transformation:

First, you want to flag the students who did not take all four tests:

Transformation Name

New formula

Parameter: Formula type

Single row formula

Parameter: Formula

IF(ARRAYLEN(Scores) < 4,"incomplete","")

Parameter: New column name

'Error'

This test flags Cameron Charles only.

The following transform sorts the array values in highest to lowest score:

Transformation Name

Edit column with formula

Parameter: Columns

Scores

Parameter: Formula

ARRAYSORT(Scores, 'descending')

The following transforms extracts the first (highest) and last (lowest) value in each student's test scores, provided that they took four tests:

Transformation Name

New formula

Parameter: Formula type

Single row formula

Parameter: Formula

ARRAYELEMENTAT(Scores,0)

Parameter: New column name

'highestScore'

Transformation Name

New formula

Parameter: Formula type

Single row formula

Parameter: Formula

ARRAYELEMENTAT(Scores,3)

Parameter: New column name

'lowestScore'

Tip

You could also generate the Error column when the Scores4 column contains a null value. If no value exists in the array for the ARRAYELEMENTAT function, a null value is returned, which would indicate in this case an insufficient number of elements (test scores).

You can now track change in test scores:

Transformation Name

New formula

Parameter: Formula type

Single row formula

Parameter: Formula

SUBTRACT(highestScore,lowestScore)

Parameter: New column name

'Score_range'

Results:

LastName

FirstName

Scores

Error

lowestScore

highestScore

Score_range

Allen

Amanda

[87,83,81,79]

79

87

8

Bell

Bobby

[98,94,92,85]

85

98

13

Charles

Cameron

[88,85,81]

incomplete

88

Dudley

Danny

[88,82,81,77]

77

88

11

Ellis

Evan

[93,93,91,87]

87

93

6