Skip to main content
Announcements
Introducing a new Enhanced File Management feature in Qlik Cloud! GET THE DETAILS!
cancel
Showing results for 
Search instead for 
Did you mean: 
nisha_rai
Creator II
Creator II

Replace the Combination Logic

Hi,

I am new in qlikview ,please help me to resolve the issue

we have one table in which we have 4 column based on the combination of 4 column we are creating the new coulmn.

I want to replace the combination logic in other one.

for example:

table1 :

   

IdLateErrorTrainingIssueFlag
1No
21Yes
3YYes
4YYes
51Yes
61YYes
71YYes
811Yes
9YYYes
101YY1Yes

want to replace the below formula if(Flag='Yes' , if (Late>=1,1,0) & if (Error='Y',2,0)& if(Training='Y',3,0)& if(Issue>=1,4,0)) as Issue_Type

now we have only 4 column then it's easy to use permutation and combination logiv but in future if the column will increase from 4 to 8 then we have to create  so many combination name manulaay is difficult.

Thanks in advance

Regards,

Nisha

20 Replies
Gysbert_Wassenaar

It looks like you're trying to create some 'binary' like field where each 'bit' indicates an issue. Why? Such a field is extremely hard for a human to parse and understand. It's useless in charts and tables on dashboards.


talk is cheap, supply exceeds demand
nisha_rai
Creator II
Creator II
Author

Thanks  for your response,                       

Yes, I am agree with you , but after that we are using inline lable which is giving you the idea about what exactly the values say. For example:

0000- other

1000-Late

0200-Error

0030- Training

0004- Issue

1200-Late

1200-Error and so on

for 4 columns it's fine to create inline table but if tcolumn number increase from 4 to 8 then it's hard to create inline or excel table, that's why i want to replace that logic.

pathiqvd
Creator III
Creator III

Hi,

       Try like this,

A:

lOAD*,

IF(flag2=0004,'isuue',IF(flag2=0030,'Training',if(flag2=0200,'Error',if(flag2=1000,'Late','Other')))) as flag3;

LOAD *,

if(FLAG='Yes' , if (LATE>=1,1,0) & if (ERROR='Y',2,0)& if(TRAINING='Y',3,0)& if(ISSUE>=1,4,0)) as flag2

INLINE [

    ID, LATE, ERROR, TRAINING, ISSUE, FLAG

    1, , , , , No

    2, 1, , , , Yes

    3, , Y, , , Yes

    4, , , Y, , Yes

    5, , , , 1, Yes

    6, 1, Y, , , Yes

    7, 1, , Y, , Yes

    8, 1, , , 1, Yes

    9, , Y, Y, , Yes

    10, 1, Y, Y, 1, Yes

];

Gysbert_Wassenaar

Why do you need the inline table at all? You already have that information about which issues an ID has in the other table.


talk is cheap, supply exceeds demand
nisha_rai
Creator II
Creator II
Author

Hi,

Suppose the value is 1200  then it's come under Late and Error both Type not in Other.

nisha_rai
Creator II
Creator II
Author

We have one table only and in which is giving you the information about the id and those 4 fields.for showing the issue type we are creating the above logic and based on that bit number we are creating a inline table which is giving you the issue type name.

Gysbert_Wassenaar

Yes, so? All the user sees is a number like 12045078. And from that the users supposed to see Oh, that's Late and it's an Error and it's an Issue and some other things too? Why? Just look at the first table and you can see in a glance which issues an ID has.


talk is cheap, supply exceeds demand
nisha_rai
Creator II
Creator II
Author

Hi,

we are showing issue type name field.

Example:

Issue_Type Name

Error

Issue

Training

Late

id- 6 comes under Late and Error.

User want the count of id in corresponding issue type name.

Means : How many id comes under late,Error and so on

Gysbert_Wassenaar

You can do that with the original table. Simply select the value 1 in a listbox with Late as field and you'll get the id's that are late. Or use an expression like count({<Late={1}>}ID).


talk is cheap, supply exceeds demand