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

Announcements
Save $650 on Qlik Connect, Dec 1 - 7, our lowest price of the year. Register with code CYBERWEEK: Register
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Is Null in a set analysis dimension

Hi everyone,

I am struggling to find a way to show where a record is null in set analysis, I have lokoed around the site and not had much muck with getting something to work and was wondering if any one might have any suggestions?

I have a table with Incidentnumber and %KEY_CARS, where the key cars is a string derived from the incident number into a date and number.

Another table is for paperwork and also has the %KEY_CARS id and an additional field %KEY_PRFUID which can only be populated if there is a form.

there will always be a %key_cars value for every incident but not always a %key_prfuid value for each key cars.

this is what I have so far:

=count({<%KEY_PRFUID= -{},OTBOnlyFlag= -{1},time_first_clinical_unit_on_scene= -{}, ActualIncidents= {1}>}distinct IncidentNumber)

Should I be doing something else to the %KEY_PRFUID= -{} part?

Thanks for any guidance.

9 Replies
jvitantonio
Specialist III
Specialist III

Add ' ' if the field is null blank

=count({<%KEY_PRFUID= -{''},OTBOnlyFlag= -{1},time_first_clinical_unit_on_scene= -{''}, ActualIncidents= {1}>}distinct IncidentNumber)

Not applicable
Author

Hi, thanks for the reply.

I treid this and it returns all fields where there is something in the PRFUID field. I tested this by changing

KEY_PRFUID= -{''},

to

KEY_PRFUID= {'*'},

and I get the same result. Any other ideas, could I do something to see if the field is not a NUM perhaps?

CELAMBARASAN
Partner - Champion
Partner - Champion

Hi,

     Check by using this

    

KEY_PRFUID-={'*'}

=count({<%KEY_PRFUID-={'*'},OTBOnlyFlag-={1},time_first_clinical_unit_on_scene-={'*'}, ActualIncidents= {1}>}distinct IncidentNumber)

Celambarasan

Not applicable
Author

Hi Celambarasan, I have tried your suggestion and it returns zero. I'll try and post up an example.

Not applicable
Author

Hi,

I put an If statement on the dimesion, its not fast but it does do the job.

=

=IF(ISNULL(%KEY_PRFUID), IncidentNumber,NULL())

and then suppress if null. There must be a faster way to do this but for now I am happy (ish!). 

Thanks for taking the time to give it a go. 

Not applicable
Author

Another way to do it would be to try the following set expression..

=count({<%KEY_PRFUID= {"Len(%KEY_PRFUID)>0"},OTBOnlyFlag= -{1},time_first_clinical_unit_on_scene= {"Len(time_first_clinical_unit_on_Scene)>0"}, ActualIncidents= {1}>}distinct IncidentNumber)

as it is a set it may work faster but without knowing anything about your data I can no say..

it may help in the future though

Not applicable
Author

hi again, I have uploaded a file that might help find an answer.

Not applicable
Author

Dear Phil_King,

try to use this expression: =if(isnull(%KEY_PRFUID),count(distinct IncidentNumber)).

Regards

David

Not applicable
Author

Hi Phil,

I was having a similar problem, but I was trying to INCLUDE records with nulls in a related value. You have to think of Set Analysis in
terms of making selections, because that’s basically what it is. You’re telling
qlikview “give me <some value> as though the following selections were
made”. In Qlikview, we know that we cannot select a null dimension, or field
value. Consequently, telling it to select something that is null via set
analysis is a contradiction. That said, there is a method that we can use to do
this. In the same way that you might select the null segment by selecting all
possible values, right clicking in a table object and selecting excluded
records, we need to do the same thing in the set to accomplish this.

The syntax is… fun. Here’s my set:

(sum({<[Referral Action
Counter]
= {1}>

*<
[Referees.Member ID] = E({<[Referees.First
Purchase ID]
={">0"}>} [Referees.Member ID])>

* <
[Referees.Registration Date] = {">=$(vDashboardStart)"}>

* <
[Referees.Registration Date] =  {"<=$(vDashboardEnd)"}>

}
[Referees.Member Counter]))

The part we’re interested in is this bit:

<[Referees.Member ID]
=
E({<[Referees.First
Purchase ID]
={">0"}>}[Referees.Member
ID]
)>

Roughly translated, it says give me all of the
records (I’ve used the ID field to identify a record) that are EXCLUDED (that’s
the E) by the set defined as all referees.First Purchase IDs have a value (ie:
a value greater than 0)

Of course, I’m still in the process of QAing this,
but it SEEMS to be working… I need to throw a few more cases at it to be sure.

I’m not exactly sure what you’re trying to accomplish, but
this might set you on the right track.