El paso la función parece útil 

algunas cosas que noté:
1) No utilice valores de cadena como yi, aunque parece estar "permitido":

2) Descripción - complemento:
Devuelve el argumento yi correspondiente al xi más grande que satisface xi menor o igual que el argumento x
- pero sólo: SI hay otro xi que es mayor que x .
3) Ninguno de los valores yi debe estar vacío.
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "binning1",Character, "Nominal", Formula( Step( :weight, 0, "low", 90, "mid", 140, "high", 1000, "max" ) ));
dt << New Column( "binning2",Numeric,"Nominal", Format( "Best", 9 ),Formula( Step( :weight, 0, 0, 90, 1, 140, 2 ) ));
dt << New Column( "binning3",Numeric, "Nominal", Format( "Best", 9 ),Formula( Step( :weight, 0, 0, 90, 1, 140, 2, 1000, . ) ));
dt << New Column( "binning_final", Numeric, "Nominal", Format( "Best", 9 ), Formula( Step( :weight, 0, 0, 90, 1, 140, 2, 1000, -1 ) ));
Interesante.Step() parece elegir siempre la primera opción de cadena, si se proporciona alguna.
Show( Step( 500, 0, 1, 90, 2, 140, 3, 1000, "max" ) ); //"max"
Show( Step( 500, 0, 1, 90, 2, 140, "high", 1000, "max" ) ); //"high"
Show( Step( 500, 0, 1, 90, "mid", 140, 3, 1000, "max" ) ); //"mid"