C'est cool que des fonctions personnalisées puissent être utilisées ainsi qu'une partie des formules personnalisées dans l'éditeur de formule.
Avec la commande TRansform Category, le
New Custom Function( "myNamespace", "Add Ten", Function( {x, y = 10}, x + y ), << Transform Category( "Custom" ));depuis https://www.jmp.com/support/help/en/16.2/#page/jmp/create-custom-functions-transforms-and-formats.shtml
apparaîtra dans le menu du clic droit Nouvelle colonne de formule - et produira une colonne avec la formule

Je viens de commencer avec @txnelson l'approche
https://community.jmp.com/t5/Discussions/Formula-for-Number-of-Unique-Categories-in-Column/mp/55284/highlight/true#M31262
pour générer une colonne pour Compte Unique valeurs - mais au lieu de taper la formule, je voulais utiliser une fonction personnalisée.
La colonne de formule générée manuellement fonctionne, mais la colonne qui utilise la fonction personnalisée compte unique n'a pas.
Il échoue avec le message d'erreur

Il semble que x dans le par() l'expression n'est pas remplacée par le nom de la colonne.
Alors, utilisez Eval(Substitut() pour résoudre le problème ?
... mais comment?
Avec
Eval(Substitute(Expr(Summarize( values = by( _col_ ) )),Expr(_col_),Name Expr(x) ));
Je reçois

- parce que dans une formule de colonne :x est traité comme :x[row()]. Argh...
Dans le même ordre d’idées, je commence à me demander pourquoi cela fonctionne :

[NB : la ligne rouge en zigzag indique simplement à l'utilisateur que imprimer dans une formule de colonne n'est pas une bonne idée]
pourquoi Jmp sait-il qu'il doit envoyer obtenir des valeurs à la COLONNE :sexe et et non à :sexe[ligne()].
Et pourquoi revient-il réellement :sexe[ligne()] dans la deuxième ligne - et non dans la colonne :sexe ?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Add Custom Functions(
New Custom Function(
"custom",
"count unique",
Function( {x},
As Constant( Summarize( values = by( x ) ) );
N Items( values );
),
<<TRANSFORM category=""></TRANSFORM>