# NumberList ( start ; end ; increment )

Returns a list of numbers from 'start' to 'end', incremented by 'increment'

 Gordon Kilgour n/a n/a

Sample input:
NumberList ( 2 ; 5 ; 0.5 )
Sample output:
2
2.5
3
3.5
4
4.5
5

Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

Returns a carriage-return separated list of the numbers from 'start' to 'end' inclusive, incremented by the 'increment' value. Good for a Pop-up Menu or Drop-down List to limit user entry to specific values.

For example, for all even numbers from 2 to 8,
NumberList ( 2 ; 8 ; 2 ) would return:-
2
4
6
8

For all tens from 50 to 100,
NumberList ( 50 ; 100 ; 10 ) would return:-
50
60
70
80
90
100

 Marc Wood, Minneapolis MNSep 21, 2010 Doesn't work if you want to count backwards (decrement), but if you *only* want to count backwards, you can change "start < end" to "start > end" and "start + increment" to "start - increment" -- then NumberList ( 3 ; -2 ; 1 ) will yield: 3 2 1 0 -1 -2
 Gordon Kilgour, EdinburghSep 22, 2010 It's a useful addition Marc, thanks.
 Marc Wood, Minneapolis MNSep 22, 2010 Thank *you* -- I used it to generate the X-axis in a FileMaker charting script.
 Vaughan, Sydney, AustraliaJul 28, 2011 It hits the 10,000 recursion limit: NumberList( 0 ; 10000 ; 1 ) = ?
 Gordon Kilgour, EdinburghMay 15, 2012 That is true Vaughan but for practical purposes it's irrelevant. It would also be very simple to add a check for this.
 Dan ShockleyAug 26, 2014 Useful! I added some things that let you increment/decrement by picking a positive/negative 'changeBy' parameter. Note that if changeBy is negative, then your rangeStart must be greater than rangeEnd. // ValueNumbersFromRange ( rangeStart; rangeEnd; changeBy ) // version 1.0, Daniel A. Shockley, inspired by Gordon Kilgour's NumberList, http://www.briandunning.com/cf/1172 // Generate a return-delimited list of numbers for the specified range by the specified increment. /* VERSION HISTORY: 1.0 - intitial version. */ Case ( changeBy = 0 /* ERROR */ ; "?" ; changeBy > 0 and rangeStart > rangeEnd /* ERROR */ ; "?" ; changeBy < 0 and rangeStart < rangeEnd /* ERROR */ ; "?" ; rangeStart = rangeEnd ; rangeStart ; List ( rangeStart; ValueNumbersFromRange ( rangeStart + changeBy; rangeEnd; changeBy ) ) )
 Dan ShockleyAug 27, 2014 Actually, don't return "?" if the rangeEnd/rangeStart seem wrong, since you might be going from 2 to 7 incrementing by 2 and don't want to get 2¶4¶6¶? Instead, just return "" when that happens so you would get, in this example, 2¶4¶6 Updated calc: // ValueNumbersFromRange ( rangeStart; rangeEnd; changeBy ) // version 1.0, Daniel A. Shockley, inspired by Gordon Kilgour's NumberList, http://www.briandunning.com/cf/1172 // Generate a return-delimited list of numbers for the specified range by the specified increment. /* VERSION HISTORY: 1.0 - intitial version. */ Case ( changeBy = 0 /* ERROR */ ; "?" ; changeBy > 0 and rangeStart > rangeEnd /* Finished */ ; "" ; changeBy < 0 and rangeStart < rangeEnd /* Finished */ ; "" ; rangeStart = rangeEnd ; rangeStart ; List ( rangeStart; ValueNumbersFromRange ( rangeStart + changeBy; rangeEnd; changeBy ) ) )

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

# Support this website.

This library has been a free commmunity resource for FileMaker users and developers for 16 years. It receives no funding and has no advertisements. If it has helped you out, I'd really appreciate it if you could contribute whatever you think it's worth: