Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

How to find the position of first numerical value?

Hi All,

I have a below requirement to be accomplished,

In a string I need to find the position of first numerical value from left.

Examples:

'asdf1234',

'asdf 1234',

'computer 23technology'

From the above strings I need to get the output of 5,6,10 respectively, which are positions for the first numeric from left.

The above are the example strings and it could vary in any manner.

Could anyone please help me out on this?

Thanks & Regards,

Karthikeyan A R.

1 Solution

Accepted Solutions
maxgro
MVP
MVP

1.jpg

Data:

Load *, FindOneOf(Example, '1234567890')  as Number

inline [

Example

asdf1234

asdf 1234

computer 23technology

];

View solution in original post

7 Replies
flipside
Partner - Specialist II
Partner - Specialist II

Try this

Data:
Load *, index(Example,left(keepchar(Example,0123456789),1)) as tmp1 inline [
Example
asdf1234
asdf 1234
computer 23technology
]
;

flipside

prma7799
Master III
Master III

Try this.

=Index('computer 23technology',2)

=
Index('asdf 1234',1)

=
Index('asdf1234',1)

datanibbler
Champion
Champion

Hi,

from the internal help I gather that you can pass several characters to look for to the INDEX() function? Then you could write like

>>> INDEX([field], '0123456789')  <<<

and that should return the position of the first occurence of any of these, no?

Give it a try.

HTH

Best regards,

DataNibbler

Not applicable
Author

Thank you for your reply.

But the strings with numeric will be dynamic. We cannot exactly say whether the number is 1 or 2 or 3.

So first we need to find the first number in string from left and then its position.

maxgro
MVP
MVP

1.jpg

Data:

Load *, FindOneOf(Example, '1234567890')  as Number

inline [

Example

asdf1234

asdf 1234

computer 23technology

];

Not applicable
Author

Hi,

I have tried the above but it is not working as I expected.

The below function works,

Index('text01234567890','0123456789')

But not with this:  Index('text0123','0123456789')

Thanks

Not applicable
Author

Perfect!!!

It works

Thanks much.