jsuls,
Thanks for the question.
Have you considered creating an indicator formula in a separate column that could tell JMP if there is a measure in the data column? Then it would be easy to include a script that only triggers off of the indicator column to ensure that only the control charts for groupings with actual data get generated!
Here is a quick example...see the attached "No Missing Control Chart.jmp" with scripting attached ("My Script"). First we created a simple datatable to control chart with 10 rows of data for machines A, B & C. However machine C did not record any data and per your instruction: 1) we don't want to plot a control chart for C when using Machine as a "By", but 2) we cannot just filter the data column to exclude missing values.
9154_Screen Shot 2015-07-02 at 7.17.09 AM.png
So instead of using a filter on the data column (which you indicated was not an option), we created a simple formula to make an indicator column to let JMP know if there is any data present, using conditional and comparison formula function elements. So here if there is any data in the row it will return a "Plot" label.
9161_Screen Shot 2015-07-02 at 7.23.16 AM.png
Now that we have this indicator "flagged" column, we can then use this as a trigger in our script to only get carts plotted for the A & B machines that have data and not plot the C machine that has no data recorded. So really only had to add a Where statement in my normal control chart script to trigger off of only the rows that had data (as indicated by the "Plot" label in our created flag column. The results gave me only the machine control chart plots that truly had data in it.
9166_Screen Shot 2015-07-02 at 7.39.48 AM.png
9163_Screen Shot 2015-07-02 at 7.18.58 AM.png
While there are probably many ways to go at it with JMP scripting, see if this simple approach might be an easy way to help straighten out your control charting universe.
Scott