# New to Qlik Sense

If you’re new to Qlik Sense, start with this Discussion Board and get up-to-speed quickly.

Announcements
QlikWorld 2023, a live, in-person thrill ride. Save \$400 before Dec 31st: REGISTER NOW!
cancel
Showing results for
Did you mean:
Creator II

Hi,

Temp:

temp

a

b

ccc

];

I want output:

temp

a

b

c

c

c

This should happen for every next value added in inline.

Can anyone suggest a solution for this. I tried using left() and keepchar() but my logic is not working out.

1 Solution

Accepted Solutions
Contributor III

Hi,

Try this it is working fine.

new:

Load * ,len(temp) as length Inline [

temp

a

b

cc

xy

def

ghi

];

new1:

Resident new

where length >1;

//let vRowCount= peek('RowCount',-1,'new1') ;

//trace \$(vRowCount)

//for i=0 to \$(vRowCount)

let vlength= peek('length1',-1,'new1');

do while vlength>0

P:

Resident new1;

let vlength=vlength-1;

TRACE \$(vlength);

loop

TTTT:

Resident

new where length=1;

Resident P

where len(nee)=1

Order by nee ;

Drop Tables new,new1,P;

12 Replies
Champion

Did you try with mid() function?

Creator II
Author

yes, i tried that. but the main problem is that the rest of the value is not coming in next line.

Partner - Specialist III

This works perfectly:

Temp:

temp

a

b

ccc

];

NoConcatenate

tmp:

,Len(temp) as Lenght

,RowNo() as Row

Resident Temp;

DROP Table Temp;

LET TotalRow = Peek('Row', -1, 'tmp');

FOR i = 1 to \$(TotalRow)

NoConcatenate

tmp2:

Resident tmp

Where Row = \$(i)

;

vLenght = Peek('Lenght');

vTemp = Peek('temp');

Data:

LOAD Mid('\$(vTemp)', '\$(vLenght)', 1) as NewTemp

,'\$(vTemp)' as Temp

,'\$(vLenght)' as Lenght

AutoGenerate \$(vLenght);

DROP Table tmp2;

NEXT i

DROP Table tmp;

exit script;

Partner - Specialist III

Hi Ankusha,

Is there any seprater in actual value then you can use subfield or else

left and right function.

Thanks,

Arvind Patil

Creator II
Author

no there is no separator in the values so can't use subfield.

Using left and right just gives me single value, i want the rest of the string evaluated as per the logic in next line.

Creator II
Author

this is not actually working out . if i add new value as 'def' in Temp column . you can see the below output:

Contributor III

Hi,

Try this code

new:

Load * ,len(temp) as length Inline [

temp

a

b

def

ghi

];

new1:

Resident new

where length >1;

//let vRowCount= peek('RowCount',-1,'new1') ;

//trace \$(vRowCount)

//for i=0 to \$(vRowCount)

let vlength= peek('length1',-1,'new1');

do while vlength>0

P:

Resident new1;

let vlength=vlength-1;

TRACE \$(vlength);

loop

TTTT:

Resident

new where length=1;

Resident P

Order by nee;

Drop Tables new,new1,P;

Partner - Specialist III

But in some filed have 2 characters then its not work..

Thanks,

Arvind Patil

Contributor III

Hi,

Try this it is working fine.

new:

Load * ,len(temp) as length Inline [

temp

a

b

cc

xy

def

ghi

];

new1:

Resident new

where length >1;

//let vRowCount= peek('RowCount',-1,'new1') ;

//trace \$(vRowCount)

//for i=0 to \$(vRowCount)

let vlength= peek('length1',-1,'new1');

do while vlength>0

P:

Resident new1;

let vlength=vlength-1;

TRACE \$(vlength);

loop

TTTT:

Resident

new where length=1;