þÿ_fnln_chars Let( [ wbl = 4; // word bit length il = 3; // initials length w1 = Left(FilterC(Lower(FirstName); "az");wbl); w2 = Left(FilterC(Lower(LastName); "az");wbl); w1l = Length(w1); // word 1 length w2l = Length(w2); w1c = Left(w1; 1); // word 1 character w2c = Left(w2; 1); w1b = Left(w1; il-1); // word 1 bit w2b = Left(w2; il-1); result= Case(w1l=1; "_" & az(w1c; w2b) & "¶"; // initial only [exception] not w1l; "__" & Left(w2; 2) & "¶"; w1 & "¶") // [exception - no first name] & If(not w2l; "__" & Left(w1; 2) & "¶"; w2 & "¶") // [exception - no last name] & If(w1l and w2l; az(w2c; w1b) & "¶" & az(w1c; w2b) & If(w1l"e2 and w2l"e2; "¶" & az(Left(w1;2); Left(w2;2)) ) )]; // initials if both If(Right(result;1)="¶"; Left(result; Length(result)-1); result) ) // e PERSON let _fnln Let([ text = FilterC(Lower(FirstName & " " & LastName); "az "); wc = WordCount(text); _fn = LeftWords(text; 1); _ln = MiddleWords(text; 2; 1) ]; If(wc=1; _fn & _ln; // only one will have value thanks to middlewords Left(_fn; 1) & "_" & _ln & "¶" & Left(_ln; 1) & "_" & _fn & "¶" & _ln & "¶" & _fn ) ) ===UTILITY TABLE FIELDS=== _kfz_both_chars Let( ([ (wbl = 4; //SYNC with data keys or it will die (only applies if u are thinking of changing these for performance related issues) (il = 3; //SYNC (text = FilterC(Lower(LF); "az "); (wc = WordCount(text); (w1 = LeftWords(text; 1); (w2 = RightWords(text; 1); (w1c = Left(w1; 1); (w2c = Left(w2; 1); (w1b = Left(w1; il-1); (w2b = Left(w2; il-1); (w1l = Length(w1); (w2l = Length(w2); (//initial or name keys (initials = If(wc=2 and w1l>=2 and w2l>=2; az( Left(w1;2);Left(w2;2) ) & "¶"; az(w1c; w2b) & "¶" & If(w1l>1; az(w2c; w1b) )); (names = Left(w1; wbl) & "¶" & Left(w2; wbl) (]; ( (Case( ( (wc=1; Left(w1; wbl); // just put the word in there... (wc=2; ( ("_" & az(w1c; w2b) & If(w1l>1; "¶_" & az(w2c; w1b)) // initial only [exception] ( (& "¶__" & Left(w2; 2) & "¶__" & Left(w1; 2) // [no first name exception] ( (& "¶" & If(wc=2; initials; names) // initials if possible or names ( () // end of case ( () _kfz_W1 Let ( [ max_lnb=4; min_lnb=3; text=FilterC(Lower(LF); "az "); wc=WordCount(text); w1=LeftWords(text; 1); w2=RightWords(text;1); w1c = Left(w1;1); w2c = Left(w2;1); w1l = Length(w1); key1 = w1c & "_" & w2; stk= w1 & "¶" & w1 & "zzz" //std key ]; Case(wc = 1 and w1l<max_lnb; w1; wc = 1; stk; wc=2; key1 & "¶" & key1 & "zzz"; wc = 3; "Remove whitespace¶in two word names.") //this shows error text for names like 'Leonardo Da Vinci', which should be written, Leonardo DaVinci, or 'Jean Paul' => 'Jeanpaul' ) _kfz_W2 Let ( [ text=FilterC(Lower(LF); "az "); wc=WordCount(text); w1=LeftWords(text; 1); w2=RightWords(text;1); w1c = Left(w1;1); w2c = Left(w2;1); key1 = w1c & "_" & w2; key2 = w2c & "_" & w1 ]; Case(wc = 1; _kfz_W1; wc=2; key2 & "¶" & key2 & "zzz") )