Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello Qlik Community!
I am pretty new to Qlik and I hope that someone can help me with my "challenge":
I have the following table with 3 strings "Test Names", "Target" and "Actual". Strings are divided by ';'.
Is there a possibility to compare the strings/ colums "Target" and "Actual" and then show the difference as text from the column "Test Names" ?
In this case, after the fifth ';' there is an difference between Target and Actual so it should show the text after the fifth ';' from the column "Test Names"
In this case it should show "Kameraprüfung2 Pos2".
Thank you!
Johannes
Hallo Johannes,
maybe you could try splitting your different tests in the script and compare them one by one:
Concat({$<Equal={0}>} TestName,';', TestNo)
table1:
LOAD RecNo() as TestID, *
Inline [
Test Names, Target, Actual
E-Prüfung 1;E-Prüfung 2;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Längenprüfung 2;Kameraprüfung 1;Kameraprüfung 2, 1;1;1;1;1;1;1;1, 1;1;1;1;1;1;1;1
E-Prüfung 1;E-Prüfung 2;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Längenprüfung 2;Kameraprüfung 1;Kameraprüfung 2, 1;1;1;1;1;1;1;1, 1;1;1;0;1;1;1;1
E-Prüfung 1;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Längenprüfung 2;Kameraprüfung 1;Kameraprüfung 2, 1;1;1;1;1;1;1, 1;0;1;1;1;0;1
E-Prüfung 1;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Längenprüfung 2;Kameraprüfung 1;Kameraprüfung 2, 1;1;1;1;1;1;1, 1;1;1;1;1;1;1
E-Prüfung 1;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Längenprüfung 2;Kameraprüfung 1;Kameraprüfung 2, 1;1;0;1;1;0;1, 1;1;1;1;1;1;1
E-Prüfung 1;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Kameraprüfung 1;Kameraprüfung 2, 1;1;1;1;1;1, 1;1;1;1;1;1
E-Prüfung 1;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Kameraprüfung 1;Kameraprüfung 2, 0;0;0;0;0;0, 0;0;0;0;0;0
E-Prüfung 1;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Kameraprüfung 1;Kameraprüfung 2, 0;1;0;0;0;0, 0;0;0;0;1;0
];
table2:
LOAD *,
-(TargetFlag=ActualFlag) as Equal;
LOAD TestID,
IterNo() as TestNo,
SubField([Test Names],';',IterNo()) as TestName,
SubField(Target,';',IterNo()) as TargetFlag,
SubField(Actual,';',IterNo()) as ActualFlag
Resident table1
While IterNo() <= RangeMax(SubStringCount([Test Names],';'),SubStringCount(Target,';'),SubStringCount(Actual,';'))+1;
hope this helps
Gruß
Marco
Hallo Johannes,
maybe you could try splitting your different tests in the script and compare them one by one:
Concat({$<Equal={0}>} TestName,';', TestNo)
table1:
LOAD RecNo() as TestID, *
Inline [
Test Names, Target, Actual
E-Prüfung 1;E-Prüfung 2;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Längenprüfung 2;Kameraprüfung 1;Kameraprüfung 2, 1;1;1;1;1;1;1;1, 1;1;1;1;1;1;1;1
E-Prüfung 1;E-Prüfung 2;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Längenprüfung 2;Kameraprüfung 1;Kameraprüfung 2, 1;1;1;1;1;1;1;1, 1;1;1;0;1;1;1;1
E-Prüfung 1;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Längenprüfung 2;Kameraprüfung 1;Kameraprüfung 2, 1;1;1;1;1;1;1, 1;0;1;1;1;0;1
E-Prüfung 1;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Längenprüfung 2;Kameraprüfung 1;Kameraprüfung 2, 1;1;1;1;1;1;1, 1;1;1;1;1;1;1
E-Prüfung 1;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Längenprüfung 2;Kameraprüfung 1;Kameraprüfung 2, 1;1;0;1;1;0;1, 1;1;1;1;1;1;1
E-Prüfung 1;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Kameraprüfung 1;Kameraprüfung 2, 1;1;1;1;1;1, 1;1;1;1;1;1
E-Prüfung 1;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Kameraprüfung 1;Kameraprüfung 2, 0;0;0;0;0;0, 0;0;0;0;0;0
E-Prüfung 1;Widerstandsprüfung 1;Widerstandsprüfung 2;Längenprüfung 1;Kameraprüfung 1;Kameraprüfung 2, 0;1;0;0;0;0, 0;0;0;0;1;0
];
table2:
LOAD *,
-(TargetFlag=ActualFlag) as Equal;
LOAD TestID,
IterNo() as TestNo,
SubField([Test Names],';',IterNo()) as TestName,
SubField(Target,';',IterNo()) as TargetFlag,
SubField(Actual,';',IterNo()) as ActualFlag
Resident table1
While IterNo() <= RangeMax(SubStringCount([Test Names],';'),SubStringCount(Target,';'),SubStringCount(Actual,';'))+1;
hope this helps
Gruß
Marco
Hello Marco,
perfect, this is working fince - thank you!
Schöne Grüße!