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

Announcements
Join us in Bucharest on Sept 18th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Help with variables and greater than

Hi,

I'm slowly grasping how variables work, but am having a bit of trouble with the syntax.

I'm trying to count a distinct number of [Billing code]'s where the current year is 2013, the status not equal to Admin and there's some cost booked against it ([Hours Worked * Rate).

The year and status work fine, but I'm not able to format the calculation for hours as I'm trying to calculate a range, i.e where the cost is between £1000 and £4999, £5000 - £9999, etc.

Any help would be greatly appreciated.

=Count(DISTINCT {< [Year]={$(vCurrentYear)}, [Project Status]-={'Admin'}, ([Hours Worked] *if(IsNull(Rate), 20, Rate)) <1000 >} [Billing code])

1 Solution

Accepted Solutions
jfkinspari
Partner - Specialist
Partner - Specialist

I suspect this might be related to the granularity of the data used in the variable. Is Hours Worked and Rate on the same level?

Try and make a straight table, where you display the result of the variable. If you can't make it display a number, you might need to add a sum() to variable, but it depends on the datastructure

sum( [Hours Worked] *if(IsNull(Rate), 20, Rate) )

View solution in original post

4 Replies
jfkinspari
Partner - Specialist
Partner - Specialist

I would calculate the cost in the script ( ([Hours Worked] *if(IsNull(Rate), 20, Rate)) ) as TotalCost, so you can refer to this field in the Set Analysis. Alternative calculate it in a variable.

Your new function would then look something like

=Count(DISTINCT {< [Year]={$(vCurrentYear)}, [Project Status]-={'Admin'}, TotalCost={">=1000<=5000"} >} [Billing code])

Not applicable
Author

Thank you. Yep, that makes sense.

I tried adding it as a variable (as that's something I think I can do)

Created a variable called vTotalCost, with the following formula

[Hours Worked] *if(IsNull(Rate), 20, Rate)

Then added the following in to the text object:

=Count(DISTINCT {< [Year]={$(vCurrentYear)}, [Project Status]-={'Admin'}, $(vTotalCost)={">=1000<=5000"} >} [Billing code])

I also tried

=Count(DISTINCT {< [Year]={$(vCurrentYear)}, [Project Status]-={'Admin'}, $(vTotalCost)={'>=1000<=5000'} >} [Billing code])

replacing the "s with 's, but neither worked, I get '-' as a result.

Any ideas what I might be doing wrong?

jfkinspari
Partner - Specialist
Partner - Specialist

I suspect this might be related to the granularity of the data used in the variable. Is Hours Worked and Rate on the same level?

Try and make a straight table, where you display the result of the variable. If you can't make it display a number, you might need to add a sum() to variable, but it depends on the datastructure

sum( [Hours Worked] *if(IsNull(Rate), 20, Rate) )

Not applicable
Author

Yes, looks like it's a problem in the level. The variable returns '-' in the table.

Going to need to work out another way to do it.

Thank you.