Shopping Cart

Search:

Free Newsletter
Signup

Contact

FileMaker is a registered trademark of FileMaker, Inc. in the U.S. and other countries.

# FileMaker Pro Custom Functions

ValueMean ( ValueList )

Rate this function:

Average rating: 4.5  (15 votes)
Discuss this Custom Function

Bill Thurmes, Miyota Development Center of America
https://www.miyotadca.com/

Gives the mean / average of a value List of numbers

Sample Input:
 Example: ValueMean ( "5¶8¶24¶3¶6" ) Example: ValueMean ( "5¶a¶24¶3¶6" ) Example: ValueMean ( "5¶-8¶24¶3¶6¶" )
Sample Output:
 9.2 7.6 ('a' resolves as 0) 6 (ValueCount ignores the final ¶, and the +0 makes the Evaluate work with the trailing ¶)

Then copy & paste into FileMaker Advanced's Edit Custom Function window.

## Description:

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. One caveat: if a non-numerical value is used, it is evaluated as 0.

Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.

This is my Custom Function and I want to edit it

## Discuss:

Why not:

Evaluate ( Substitute ( ValueList ; "¶" ; "+" ) ) / ValueCount ( ValueList )

Ron Greene, Phoenix, AZ
March 07, 2016 11:03am

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!

Bill Thurmes, Longmont, CO
March 08, 2016 9:36am

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.

Chuck Palmer, Boulder, CO
March 23, 2016 7:43am

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.

Bill Thurmes, Longmont, CO
March 23, 2016 10:31am

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.

Chuck Palmer, Boulder, CO
March 27, 2016 8:59am

Make a comment about this Custom Function (please try to keep it brief & to the point). Anyone can post:

 Your Name: City/Location: Comment: characters left. If you paste in more than 1500 characters, it will be truncated. Discuss the function - advertisements and other useless posts will be deleted. Answer 8 + 2 =
 Search for Custom Functions:

 Download the Custom Function Dashboard Widget for OS X Keep all the latest Custom Functions right at your fingertips!

Newest Custom Functions:

 1. PreviousMonthEndDate ( myDate ) (Wed, Mar 07, 3:35am) 2. PreviousMonthName (myDate) (Wed, Mar 07, 3:33am) 3. FmTableFields ( tableName ; fieldsInclude ; fieldsExclude ; classExclude ; typeExclude ; prefixExclude ) (Fri, Mar 02, 6:32am) 4. sql.getTable ( fullyQualifiedFieldObject ) (Thu, Feb 22, 8:36am) 5. sql.getField ( fullyQualifiedFieldObject ) (Thu, Feb 22, 8:34am) 6. FilterOut ( ListA ; ListB ) (Wed, Feb 21, 6:11pm) 7. Char0 ( ) (Sun, Feb 18, 2:35am) 8. CreateVCardFile ( FirstName ; LastName ; CompanyName ; Phone ; Email ; WEB ; hAddress1 ; hAddress2 ; hZip ; hCity ; hCountry ; wAddress1 ; wAddress2 ; wZip ; wCity%2 (Sun, Feb 18, 1:50am)