ValueMean ( ValueList )
Gives the mean / average of a value List of numbers
Average rating: 4.7 (15 votes) Log in to vote
Bill Thurmes - Show more from this author
MDCA http://www.miyotadca.com |
Example: ValueMean ( "5¶a¶24¶3¶6" )
Example: ValueMean ( "5¶-8¶24¶3¶6¶" )
7.6 ('a' resolves as 0)
6 (ValueCount ignores the final ¶, and the +0 makes the Evaluate work with the trailing ¶)
Function definition: (Copy & paste into FileMaker's Edit Custom Function window)
The native Average function in FileMaker only works on fields, but it is often more efficient to work with value lists and do all calculations in memory. This is particularly true when you use ESQL, where the answer is returned as a value list. The ValueMean function gives the mean or average of a set of numerical values in a ¶-delimited value list. the result of using the function on an empty list is "". Caveats: if a non-numerical value is used, it is evaluated as 0; also, while an attempt is made to remove empty values, more than 24 consecutive empty values may result in some empty values being interpreted as 0, thus changing the mean.
Comments
Ron Greene, Phoenix, AZ Mar 7, 2016 |
||
Why not: Evaluate ( Substitute ( ValueList ; "¶" ; "+" ) ) / ValueCount ( ValueList ) |
||
Bill Thurmes, MDCA Mar 8, 2016 |
||
Good suggestion, and better than using a recursive custom function. However, you have to ensure that all members of the value list are numbers; the second example (with an "a") gives "?" as an answer using your suggestion. Evaluate ( Substitute ( Filter ( ValueList ; "0123456789-.¶" ) ; "¶" ; "+" ) ) / ValueCount ( ValueList ) should solve that. Thanks for your suggestion! |
||
Chuck Palmer, Boulder, CO Mar 23, 2016 |
||
I ran into the problem of the trailing "¶" being converted to a "+" and the Evaluate failed. I must be doing something different than you. So either shorten the string by one character or add a "0" to the end so the Evaluate works. | ||
Bill Thurmes, MDCA Mar 23, 2016 |
||
Hey, Boulder, just down the road from me! Ah, the joys of error-trapping. Here's the fix: Changing the '+' to '+0' seems to do the trick, even with negative numbers (so the ¶-8 sequence ends up being +0-8; the leading 0 doesn't alter the value of any other number). This will work for any number of leading or trailing ¶s, but of course each additional ¶, except for the initial trailing one, means an additional value that you divide by to get the mean. Note that ValueMean ( "" ) results in ?, because it's a divide-by-zero situation. |
||
Chuck Palmer, Boulder, CO Mar 27, 2016 |
||
I found out that RightValues and LeftValues leave a trailing ¶ to the resulting list. That is why I had a trailing ¶. This has cause me problems in other calculations. So now I am aware of this. | ||
Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.