Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
realpixel
Creator
Creator

Find and Replace function

Hello,

I want to use a replace function to find and replace a value by another.

For example

[CUSTOMER]         

customer1

customer2

customer3

customer4

customer5

customer6

customer7

customer8

customer9

customer10

customer11

customer12

.

.

.

customer1,2 and 3 must be replaced by customer1

customer 4,5,6 must replaced by customer4

and

customer 7,8,9 must replaced by customer7

24 Replies
realpixel
Creator
Creator
Author

I need TRANS for the condition but if there is an another solution, I'm interested.

Sorry I'm little lost, where I must to put

Applymap('TransMap', TRANS, TRANS) AS [TOTCON]?

I have now this script.

a:

LOAD * INLINE [

    'LIEU POS','TRANS'

    'TOT CON','SV-CON'

    'TOT ET P','SV-CON'

    'TOT ET P CON','SV-CON'];

TransMap:

Mapping Load

     TRANS,

     [LIEU POS]

Resident a;

TableName:

LOAD [LIEU POS],

     TRANS,

Applymap('TransMap', TRANS,TRANS) AS [TOT CON]

Resident a order by [LIEU POS]; 

I have always the same problem when coondition is true 'TOT CON' appears in column [TO CON] but if the condition is false no result in the column [TOT CON].

CELAMBARASAN
Partner - Champion
Partner - Champion

a:

LOAD * INLINE [

    'LIEU POS','TRANS'

    'TOT CON','SV-CON'

    'TOT ET P','SV-CON'

    'TOT ET P CON','SV-CON'

    'TOT ESD', 'GAME'];

TransMap:

Mapping LOAD TRANS,[LIEU POS] INLINE [

LIEU POS,TRANS

TOT CON,SV-CON

TOT ET P,SV-CON

TOT ET P CON,SV-CON];

TableName:

LOAD [LIEU POS] AS [LIEU POS1],

     TRANS AS TRANS1,

Applymap('TransMap', TRANS,TRANS) AS [TOT CON]

Resident a order by [LIEU POS];

Is this your need?

realpixel
Creator
Creator
Author

Hi,

Is no exactly that I want. See under the result

Why 'TOT ESD' appears in column [LIEU POS]? And why 'GAME' appears in column [LIEU POS]?

It seem that [TOT CON] can have only two value 'GAME' or [TOT CON]

[LIEU POS][TRANS][DATE MOV][DATE ENTREE][TOT CON]
TLC HANDL22/02/201315/01/2013GAME
TLCHANDL22/02/201315/01/2013TOT CON
TMCTRANS MARI20/02/201313/01/2013GAME
TMCTRANS MARI20/02/201313/01/2013TOT CON
TO MAIN TRANS03/01/201307/12/2012GAME
TO MAIN TRANS03/01/201307/12/2012TOT CON
TOP INTER TRANS18/02/201323/01/2013GAME
TOP INTER TRANS18/02/201323/01/2013TOT CON
TOT ESDGAME GAME
TOT ESDGAME TOT CON
TOTHANDL19/01/201320/12/2012GAME
TOTHANDL19/01/201320/12/2012TOT CON
TOTGET05/01/201330/10/2012GAME
TOTGET05/01/201330/10/2012TOT CON
TOTJ-B-Z16/01/201319/12/2012GAME
TOTJ-B-Z16/01/201319/12/2012TOT CON
TOTPANA12/01/201330/11/2012GAME
TOTPANA12/01/201330/11/2012TOT CON
TOTSV-CON02/01/201322/11/2012GAME
TOTSV-CON02/01/201322/11/2012TOT CON
TOT CONDLH28/02/201319/02/2013GAME
TOT CONDLH28/02/201319/02/2013TOT CON
TOT CONGET08/01/201310/12/2012GAME
TOT CONGET08/01/201310/12/2012TOT CON
TOT CONSV-CON02/01/201328/11/2012GAME
TOT CONSV-CON02/01/201328/11/2012TOT CON
TOT ET PDLH28/02/201319/02/2013GAME
TOT ET PDLH28/02/201319/02/2013TOT CON
TOT ET PGET05/03/201328/11/2012GAME
TOT ET PGET05/03/201328/11/2012TOT CON
TOT ET PGET07/03/201328/11/2012GAME
TOT ET PGET07/03/201328/11/2012TOT CON
TOT ET PSV-CON07/01/201315/12/2012GAME
TOT ET PSV-CON07/01/201315/12/2012TOT CON
TOT ET P CONSV-CON05/01/201310/12/2012GAME
TOT ET P CONSV-CON05/01/201310/12/2012TOT CON

I need to do this.

If [LIEU POS] = 'TOT ET P CON' or 'TOT ET P' and [TRANS]='SV-CON', the value in column [TOT CON] must be [TOT CON]

Now if [TRANS] is not egal at 'SV-CON' no modification, column [LIEU POS] = columne [TOT CON]

See under the final result

[LIEU POS][TRANS][DATE MOV][DATE ENTREE][TOT CON]
TLC HANDL22/02/201315/01/2013TLC
TLCHANDL22/02/201315/01/2013TLC
TMCTRANS MARI20/02/201313/01/2013TMC
TMCTRANS MARI20/02/201313/01/2013TMC
TO MAIN TRANS03/01/201307/12/2012TO
TO MAIN TRANS03/01/201307/12/2012TO
TOP INTER TRANS18/02/201323/01/2013TOP
TOP INTER TRANS18/02/201323/01/2013TOP
TOT ESDGAME GAMEMust be erased
TOT ESDGAME TOT CONMust be erased
TOTHANDL19/01/201320/12/2012TOT
TOTHANDL19/01/201320/12/2012TOT
TOTGET05/01/201330/10/2012TOT
TOTGET05/01/201330/10/2012TOT
TOTJ-B-Z16/01/201319/12/2012TOT
TOTJ-B-Z16/01/201319/12/2012TOT
TOTPANA12/01/201330/11/2012TOT
TOTPANA12/01/201330/11/2012TOT
TOTSV-CON02/01/201322/11/2012TOT
TOTSV-CON02/01/201322/11/2012TOT
TOT CONDLH28/02/201319/02/2013TOT CON
TOT CONDLH28/02/201319/02/2013TOT CON
TOT CONGET08/01/201310/12/2012TOT CON
TOT CONGET08/01/201310/12/2012TOT CON
TOT CONSV-CON02/01/201328/11/2012TOT CON
TOT CONSV-CON02/01/201328/11/2012TOT CON
TOT ET PDLH28/02/201319/02/2013TOT ET P
TOT ET PDLH28/02/201319/02/2013TOT ET P
TOT ET PGET05/03/201328/11/2012TOT ET P
TOT ET PGET05/03/201328/11/2012TOT ET P
TOT ET PGET07/03/201328/11/2012TOT ET P
TOT ET PGET07/03/201328/11/2012TOT ET P
TOT ET PSV-CON07/01/201315/12/2012TOT CON
TOT ET PSV-CON07/01/201315/12/2012TOT CON
TOT ET P CONSV-CON05/01/201310/12/2012TOT CON
TOT ET P CONSV-CON05/01/201310/12/2012TOT CON
realpixel
Creator
Creator
Author

Hello,

Someone have an idea how to solve this problem.

I try this scritp

a:

LOAD * INLINE [

    'LIEU POS','TRANS'

    'TOT CON','SV-CONGO'

    'TOT','SV-CONGO'

    'TOT ET P','SV-CONGO'

    'TOT ET P CON','SV-CONGO'];

LOAD [LIEU POS],

if([TRANS]='SV-CON' and [LIEU POS]='TOT ET P','TOT ',[LIEU POS]) as [NEW],

TRANS

Resident a order by [LIEU POS];         

The result is something like that

LIEU POSTRANSDATE MOVDATE ENTREE NEW
A N CDISTRIBUTION10/01/201315/12/2012
A N CINTER TRANS SER07/01/201307/12/2012
TOTLINKS HANDL19/01/201320/12/2012
TOTGET05/01/201330/10/2012
TOTJ-B-Z16/01/201319/12/2012
TOTPANAL12/01/201330/11/2012
TOTSV-CON02/01/201322/11/2012 TOT
TOTSV-CON02/01/201328/11/2012TOT
TOT CONDLH28/02/201319/02/2013
TOT CONGET08/01/201310/12/2012
TOT CONSV-CON04/02/201311/01/2013TOT
TOT ET PDLH28/02/201319/02/2013TOT
TOT ET PDLH01/03/201319/02/2013
TOT ET PDLH04/03/201319/02/2013
TOT ET PDLH05/03/201319/02/2013
TOT ET PGET05/03/201328/11/2012
TOT ET PGET07/03/201328/11/2012
TOT ET PSV-CON08/01/201315/12/2012TOT
TOT ET P CONSV-CON02/01/201310/12/2012TOT
TPISV-CON03/01/201303/12/2012
TPITRANS INTER16/03/201310/03/2013

But when when confition is not equal to 'SV-CON' column new is empty

I when to arrive at this result

LIEU POSTRANSDATE MOVDATE ENTREE NEW
A N CDISTRIBUTION10/01/201315/12/2012A N C
A N CINTER TRANS SER07/01/201307/12/2012A N C
TOTLINKS HANDL19/01/201320/12/2012TOT
TOTGET05/01/201330/10/2012TOT
TOTJ-B-Z16/01/201319/12/2012TOT
TOTPANAL12/01/201330/11/2012TOT
TOTSV-CON02/01/201328/11/2012TOT
TOT CONDLH28/02/201319/02/2013TOT CON
TOT CONGET08/01/201310/12/2012TOT CON
TOT CONSV-CON04/02/201311/01/2013TOT
TOT ET PDLH28/02/201319/02/2013TOT
TOT ET PDLH01/03/201319/02/2013TOT ET P
TOT ET PDLH04/03/201319/02/2013TOT ET P
TOT ET PDLH05/03/201319/02/2013TOT ET P
TOT ET PGET05/03/201328/11/2012TOT ET P
TOT ET PGET07/03/201328/11/2012TOT ET P
TOT ET PSV-CON08/01/201315/12/2012TOT ET P
TOT ET P CONSV-CON02/01/201310/12/2012TOT
TPISV-CON03/01/201303/12/2012TPI
TPITRANS INTER16/03/201310/03/2013TPI
realpixel
Creator
Creator
Author

Hello,

I try this script, it seems to work but only for the value contain in code 'LOAD * INLINE', I don't know if I use the correct command.

How to declare all value contain in column [LIEU POS] and [TRANS] in command 'LOAD * INLINE' without to fill manualy all value?

a:

LOAD * INLINE [

    'LIEU POS','TRANS'

    'TOT CON','SV-CONGO'

    'TOT','SV-CONGO'

    'TOT ET P','SV-CONGO'

    'TOT ET P CON','SV-CONGO'];

LOAD [LIEU POS],

if([TRANS]='SV-CON' and [LIEU POS]='TOT ET P','TOT ',[LIEU POS]) as [NEW],

TRANS

Resident a order by [LIEU POS];