Running on a Windows PC, running Windows 10, I went back several versions of JMP and ran your script, and it ran correctly on all versions.
![version.PNG version.PNG](https://community.jmp.com/t5/image/serverpage/image-id/25008iB55EE9D5E316407C/image-size/large?v=v2&px=999)
Your second qualification, that sometimes you have missing values in your data should not be an issue. The Maximum() function handles missing values.
Not knowing more about your script, I will point out a possible issue. If you look at the formula that is created for the column max_col you will see:
![version2.PNG version2.PNG](https://community.jmp.com/t5/image/serverpage/image-id/25009iA79EAE76B668BA19/image-size/large?v=v2&px=999)
The formula relies on the list "use_cols", so every time the formula is run, or rerun, it go to the list and uses the value "at that point in time" of "use_cols" and places it into the formula. If the value of "use_cols" is "{Name( "a@b;2" ), Name( "c@d;3" )}", everything will work fine. If for some reason, the list "use_cols" has changed it's value, the formula may not work and you will get missing values. What you really want is for the formula to be
Maximum( {:Name( "a@b;2" ), :Name( "c@d;3" )} )
The easiest way to do this, in my experience, is to specify the new column and formula as:
Eval(Parse("dt << new column(\!"max_col\!",numeric,formula( Maximum(" || char(use_cols) || ")));"));
It results in the formula being specified as:
![version3.PNG version3.PNG](https://community.jmp.com/t5/image/serverpage/image-id/25021iC22A500EDF249435/image-size/large?v=v2&px=999)
Jim