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?

Meet Bitmetric at QlikWorld 2023 in Las Vegas

See you at QlikWorld 2023 in Vegas?

Come see us at QlikWorld 2023 for a chance to win a free, lifetime SenseTheme subscription and get some cool swag.

Want more Friday Qlik Test Prep?

Check out the Friday Qlik Test Prep archive for more Qlik questions and answers.

Friday Qlik Test Prep Functions Qlik Solution

How can we help?

Feel free to contact us if you have any comments or questions.