XORvalues ( ListA ; ListB )
Returns all lines that are different in two lists.
Average rating: 4.3 (40 votes) Log in to vote
Function definition: (Copy & paste into FileMaker's Edit Custom Function window)
This function returns a single instance of all lines that are in ListA but not in ListB *and* of all lines that are in ListB but not in ListA. In other words lines that are in either field but *not* in both.
XORvalues has many applications in complex text processing, including but not limited to comparison of value lists (and lists of field values) in the synchronization of databases.
Note that a useful spin-off is that if one of the supplied parameters is null (""), the function will operate to return UNIQUE values from the other list - Ie it will eliminate duplicates. A single instance of each value will be returned, in the order of their first occurrence in the list.
The function as set out here is 'tuned' to return a combined list without a trailing carriage return. This behavior can readily be adjusted to line up with FileMaker's other 'values' functions if preferred.
Katy Butterworth, New Zealand
Oct 1, 2009
|Is it possible to use this funtion and just have the items that are different in List B to List A returned? At the moment it returns differences between the two which I am using to see what has changed. I am trying to report changes but only want what it has changed "to", as it currently stands I am getting "changed to and changed from" which is useful in other reports but in this instance I only want to see what is different in list B when compared to List A. Any help appreciated.|
Jun 17, 2010
If A = (1,2,3) and B = (2,3,4);
XOR( List( A; B); A)
Daniel A. Shockley, New York, NY
Nov 16, 2010
|Note: This function will wipe out any of the "·" characters (ASCII 225) you might have in your value list. Unlikely, but important to note side effects like this.|
Alistair Hay, UK
Jan 26, 2018
Exactly what I needed.
Thank you very much.
Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.