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

Announcements
Qlik Connect 2026! Turn data into bold moves, April 13 -15: Learn More!
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];