Software Venture Consulting

FileMaker Pro downloads & Resources
FileMaker Custom Functions
FileMaker Web Viewer Examples
FileMaker Pro & Lasso Consulting
FileMaker Books
FileMaker Articles
FileMaker Error Reference

Free Web Tools
Free FileMaker Tools

Personal Pages

Shopping Cart
Shopping Cart


Free Newsletter


Privacy Policy

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


 FileMaker Pro Custom Functions

List  |  Show Random  |  Upload  |  Add This to Your Site

WordPosition ( text ; searchWord ; start ; occurrence )

Rate this function:  

  Average rating: 3.4  (68 votes)
  Discuss this Custom Function

Daniele Raybaudi, ACI

Returns the word number of the searchWord in the text.

Sample Input:
WordPosition ( "this may be or may be not the best way" ; "be" ; 1 ; 2 )
Sample Output:

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


WordPosition custom function

Daniele Raybaudi


WordPosition ( text ; searchWord ; start ; occurrence )

text - any text field, or an expression that returns a reference to a text field.
searchWord - the word to search in the text
start - the word number that you want to start from
occurrence - the occurrence of the word that you want to find

Data type returned

Returns the word number of the searchWord in the text.
In the same way that the Position function provides the number of a character position in a text string, WordPosition calculates the word number of a text string.

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

This is my Custom Function and I want to edit it


The script does not work properly when the third parameter>1. Take the example above:
WordPosition ( "this may be or may be not the best way" ; "be" ; 2;1 )
return 4;
When the third parameter is 3, 4, 5, ... the result is 5, 6, 7,...

It seems to me there are probably two solutions for it (1) write a subCF, which is recursive and takes 5 parameters: the fifth will be constant number equal to the initial third parameter; (2) the easy solution, delete the third parameter and make it default value 1.

Lizhe Xu, East Lyme, CT
August 26, 2009 7:29am

After second thought, the second solution indeed is not so easy, it is still need a subCF, which will accept 4 parameters. I now use your CF in my solution but with the constant value 1 for the third parameter.

Lizhe Xu, East Lyme, CT
August 26, 2009 7:38am

I have fixed the problem Lizhe brought up, and I also added support for a negative value for occurrence.

count = WordCount( text );
direction = Sign( occurrence );
startWord = MiddleWords( text; start; 1 )
start < 1 or start > count;
IsEmpty( text ) or IsEmpty( searchWord ) or IsEmpty( start ) or IsEmpty( occurrence );
startWord ≠ searchWord;
WordPosition( text; searchWord; start + direction; occurrence );
startWord = searchWord and Abs( occurrence ) ≠ 1;
WordPosition( text; searchWord; start + direction; occurrence - direction );

Max Heller, Frederick, MD
April 13, 2010 4:04pm

Thanks you very much for sharing this!, works great!

Claudio Cuevas Merino, Santiago Chile
February 08, 2017 4:28am

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

Your Name:
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 1 + 2 =
Search for Custom Functions:

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

Newest Custom Functions:

1. HexUUIDToNum_cf (_uuid)
  (Sat, Jun 16, 1:55pm)
2. httpResponseCode ( responseHeaders )
  (Tue, Jun 12, 10:40pm)
3. FindDuplicateCharacters ( string )
  (Fri, Jun 08, 5:01pm)
4. FieldRepetitionLast ( field ; maxRepetition )
  (Wed, Jun 06, 6:05pm)
5. CountModifiedRecords ( NameTimestampField ; StartTimestamp ; EndTimestamp )
  (Mon, May 28, 8:23am)
6. JSONArrayLength ( JSONArrayStr )
  (Fri, May 25, 7:46am)
7. interpolation (y1; y2; y3; x1; x2; x3; x1y1; x2y1; x1y2; x2y2; rnd)
  (Sat, May 19, 3:55am)
8. @JSONFormatElements ( json )
  (Tue, May 15, 3:31am)

RSS Feed of Custom Functions