Skip to main content

EXAMPLE - LISTIF Functions

This example illustrates you to identify and list all values within a group that meet a specified condition.

Functions:

Item

Description

ANYIF Function

Selects a single non-null value from rows in each group that meet a specific condition.

LISTIF Function

Returns list of all values in a column for rows that match a specified condition.

WEEKDAY Function

Derives the numeric value for the day of the week (1, 2, etc.). Input must be a reference to a column containing Datetime values.

Source:

The following data identifies sales figures by salespeople for a week:

EmployeeId

Date

Sales

S001

1/23/17

25

S002

1/23/17

40

S003

1/23/17

48

S001

1/24/17

81

S002

1/24/17

11

S003

1/24/17

25

S001

1/25/17

9

S002

1/25/17

40

S003

1/25/17

S001

1/26/17

77

S002

1/26/17

83

S003

1/26/17

S001

1/27/17

17

S002

1/27/17

71

S003

1/27/17

29

S001

1/28/17

S002

1/28/17

S003

1/28/17

14

S001

1/29/17

2

S002

1/29/17

7

S003

1/29/17

99

Transformation:

In this example, you are interested in the high performers. A good day in sales is one in which an individual sells more than 80 units. First, you want to identify the day of week:

Transformation Name

New formula

Parameter: Formula type

Single row formula

Parameter: Formula

WEEKDAY(Date)

Parameter: New column name

'DayOfWeek'

Values greater than 5 in DayOfWeek are weekend dates. You can use the following to identify if anyone reached this highwater marker during the workweek (non-weekend):

Transformation Name

Pivot columns

Parameter: Rows labels

EmployeeId,Date

Parameter: Values

ANYIF(Sales, (Sales > 80 && DayOfWeek < 6))

Parameter: Max number of columns to create

1

Before adding the step to the recipe, you take note of the individuals who reached this mark in the anyif_Sales column for special recognition.

Now, you want to find out sales for individuals during the week. You can use the following to filter the data to show only for weekdays:

Transformation Name

Pivot columns

Parameter: Rows labels

EmployeeId,Date

Parameter: Values

LISTIF(Sales, 1000, (DayOfWeek < 6))

Parameter: Max number of columns to create

1

To clean up, you might select and replace the following values in the listif_Sales column with empty strings:

["
"]
[]

Results:

EmployeeId

Date

listif_Sales

S001

1/23/17

25

S002

1/23/17

40

S003

1/23/17

48

S001

1/24/17

81

S002

1/24/17

11

S003

1/24/17

25

S001

1/25/17

40

S002

1/25/17

S003

1/25/17

66

S001

1/26/17

77

S002

1/26/17

83

S003

1/26/17

S001

1/27/17

17

S002

1/27/17

71

S003

1/27/17

29

S001

1/28/17

S002

1/28/17

S003

1/28/17

S001

1/29/17

S002

1/29/17

S003

1/29/17