Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
gireesh1216
Creator II
Creator II

Need Help

Hello Team,

Need your help on below scenario.

I have two columns like column1 and column2.In column1 we have column2 data as well like (ABC,DEF).

I tried in qlikview  front end its working fine. Used wildmatch function()      ▼

=IF(WildMatch(Column1,'*ABC*')=1,'ABC',IF(WildMatch(Column1,'*def*')=1,'def'))

How to achieve this in backend qlikview script?

Coumn1Column2
Data-data-ABC-store,def-data--store1ABC
Data-ABC-data--storeABC
Data-data-ABC,Data-data-def-store2ABC
def-data--storedef
Data-data-def-storedef
Data-data-def-def,Data-ABC-data--storedef

Results:

Coumn1Column2
Data-data-ABCABC
Data-ABC-data--storeABC
Data-data-ABCABC
def-data--storedef
Data-data-def-storedef
Data-data-def-defdef
def-data--store1def
Data-data-def-store2def

11 Replies
dapostolopoylos
Creator III
Creator III

You can use the exact same function syntax in the backend somehow like that:

LOAD

     Column1,

     Column2,

      IF(WildMatch(Column1,'*ABC*')=1,'ABC',IF(WildMatch(Column1,'*def*')=1,'def')) as NewColum

FROM

     File;

Father/Husband/BI Developer
tresesco
MVP
MVP

It seems that you need to consider that key which come first. If so, try like:

IF(Index('Column1','ABC')< Index('Column1','def'),'ABC','def')  as Column2

gireesh1216
Creator II
Creator II
Author

Thanks. But here(IF(WildMatch(Column1,'*ABC*')=1,'ABC',IF(WildMatch(Column1,'*def*')=1,'def')) as NewColum) we are manually writing 'ABC','def' values in script.I don't want to write manually. If any new data comes in colum2,above formula not useful.

I am looking dynamically.

gireesh1216
Creator II
Creator II
Author

we are manually writing 'ABC','def' values in script.I don't want to write manually. If any new data comes in colum2,above formula not useful.

I am looking dynamically.

tresesco
MVP
MVP

What is the logic of defining 'ABC' or 'def' to be considered in column2? Is it like: anything apart from 'data' and 'store' ?

fabdulazeez
Partner - Creator III
Partner - Creator III

how do you want to order it, Like first ABC than def

gireesh1216
Creator II
Creator II
Author

anything apart from 'data' and 'store' ?---->No..

Column2 data present in column1 data. based on that we have to find out.

Example: Data-data-ABC

Above example ABC is column2 data.

gireesh1216
Creator II
Creator II
Author

Hello Fawaz Abdul Azeez  ,

Any order I am okay.

I am expecting required output.

MindaugasBacius
Partner - Specialist III
Partner - Specialist III

May be this is what you are looking for?

Screenshot_1.jpg

map1:

mapping load * inline [

x, y

data, 

store,

-,  ] ;

tmp:

LOAD *

,PurgeChar(MapSubString('map1', Column1), '0123456789') as Column2

INLINE [

    Column1

    data-ABC-data2-

    store-data-def

    DRT-data3-store2

];