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

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
samuel_brierley
Creator
Creator

Average in script

Hi all first of all thanks for any help,

I basically have 4 speed measurements that i would like to average in the script however if no speed is measured it is recorded as an X.

how therefore do i only average those that are numbers?

I have tried below but this doesnt like the X's i presume,

[Speed(Lane 1)]+[Speed(Lane 2)]+[Speed(Lane 3)]+[Speed(Lane 4)])/4) as [Average Speed]

1 Solution

Accepted Solutions
Not applicable

RangeAvg( if(isnum([Speed(Lane 1)]),[Speed(Lane 1)]),

                         if(isnum([Speed(Lane 2)]),[Speed(Lane 2)]),

                              if(isnum([Speed(Lane 3)]),[Speed(Lane 3)]),

                                   if(isnum([Speed(Lane 4)]),[Speed(Lane 4)])) as [Average Speed]

View solution in original post

9 Replies
MK_QSL
MVP
MVP

Provide data and your required output... please..

jonathandienst
Partner - Champion III
Partner - Champion III

Hi

=RangeAvg([Speed(Lane 1)], [Speed(Lane 2)], [Speed(Lane 3)], [Speed(Lane 4)]) as [Average Speed]

HTH

Jonathan

Logic will get you from a to b. Imagination will take you everywhere. - A Einstein
samuel_brierley
Creator
Creator
Author

HI thanks for the input however I cant treat them as zeros because that will lower my average.

simenkg
Specialist
Specialist

     rangesum([Speed(Lane 1)]+[Speed(Lane 2)]+[Speed(Lane 3)]+[Speed(Lane 4)])/

    (4 - (if([Speed(Lane 1)]='X',1,0) + if([Speed(Lane 2)]='X',1,0) + if([Speed(Lane 3)]='X',1,0) + if([Speed(Lane 4)]='X',1,0))) as [Average Speed]

samuel_brierley
Creator
Creator
Author

thats the logic thanks SImen

jonathandienst
Partner - Champion III
Partner - Champion III

=RangeSum([Speed(Lane 1)], [Speed(Lane 2)], [Speed(Lane 3)], [Speed(Lane 4)]) /

RangeCount([Speed(Lane 1)], [Speed(Lane 2)], [Speed(Lane 3)], [Speed(Lane 4)]) as [Average Speed]

Logic will get you from a to b. Imagination will take you everywhere. - A Einstein
simenkg
Specialist
Specialist

I actually think this one is better:


rangesum([Speed(Lane 1)]+[Speed(Lane 2)]+[Speed(Lane 3)]+[Speed(Lane 4)]/

rangenumericcount([Speed(Lane 1)],[Speed(Lane 2)],[Speed(Lane 3)],[Speed(Lane 4)])

as [Average Speed]

Not applicable

RangeAvg( if(isnum([Speed(Lane 1)]),[Speed(Lane 1)]),

                         if(isnum([Speed(Lane 2)]),[Speed(Lane 2)]),

                              if(isnum([Speed(Lane 3)]),[Speed(Lane 3)]),

                                   if(isnum([Speed(Lane 4)]),[Speed(Lane 4)])) as [Average Speed]

simenkg
Specialist
Specialist

Be sure to mark the correct answer as such so that others don't have to read through the whole post to get the right answer.