26 April 2022

Splitting strings with the Qlik SubField() function

Share this message
Use the Qlik SubField() function to split a string based on a common delimiter.

Every Friday at Bitmetric we’re posting a new Qlik certification practice question to our LinkedIn company page. Last Friday we asked the following Qlik Data Architect certification practice question about the Qlik SubField() function used to split strings based on a common delimiter:

Please refer to the figure below. A Data Architect needs to transform the values of 'vSheet' to show only the years. Which of the following functions should the Data Architect use?

The correct answer is C: SubField()

Without going in too to much depth of whether #HoursWorked is a measure we should be scared of or not, we guess this question hasn’t taken too much of your time this week, seeing how unanimously this has been answered.

A transformation which is pretty commonly encountered is separating values from a single field. Whether it is a comma separated value, a composed field or retrieving information from a file location, it is often necessary to extract only part of a field value.

For this question SubField() would be the syntax of choice.

The power of SubField() lays in the fact that we separate the values based on a given delimiter, rather then a length. While in this case we could have simply said Right(‘$(vField’), 4) to retrieve the right four characters, this wasn’t part of the options, nor is it the most elegant. In many cases this won’t suffice, because the field we are trying to separate has a variable length or the whole string consists of more than two words.

Qlik SubField() syntax

The SubField() function has the following syntax:

SubField(text, delimiter[, field_no ])

Reviewing the answer; our text is the variable vField which is split by a single space as the delimiter and we would like to return the second field number to retrieve only the year number from the string.

Another thing to know about SubField() is that the field number we would like to return can be either a positive or a negative number. If we use a positive number, the return value would be the first field before the set delimiter and work its way subsequently backwards. If we use a negative number, the field value after the last delimiter would be returned and works its way subsequently forwards. To visualize:

SubField(‘This is a test’, ‘ ‘, 3) returns ‘a’

Qlik SubField() function syntax

SubField(‘This is a test’, ‘ ‘,-1) returns ‘test’

Qlik SubField() function with a negative index.

That’s it for this week. See you next Friday?

Take your Qlik skills to the next level!

Since 2013, the Masters Summit for Qlik is the premier advanced training for Qlik. Join us in Vienna and take your Qlik skills to the next level.

Join the Bitmetric team!

Join the team!

Enjoying these challenges? We have many more, and we’ll even pay you to solve them 😉 Check out our job opening.

Friday Qlik Test Prep Functions Qlik Solution

How can we help?

Barry has over 20 years experience as a Data & Analytics architect, developer, trainer and author. He will gladly help you with any questions you may have.