<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: how to calculate yield for many columns with embedded spec limits in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/53312#M30181</link>
    <description>&lt;P&gt;Thanks Jim. It works now.&lt;/P&gt;</description>
    <pubDate>Fri, 16 Mar 2018 21:20:44 GMT</pubDate>
    <dc:creator>AT</dc:creator>
    <dc:date>2018-03-16T21:20:44Z</dc:date>
    <item>
      <title>how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/53247#M30140</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have over 60 columns where individual spec limits are embeded in column properties. I like to calculate the yield for each row as Pass/Fail. I appreciate any script that will do this. I checked the JMP discussion and found one script that does yield but each columns is assumed to be pass or fail (1 or 0). Thanks&lt;/P&gt;</description>
      <pubDate>Thu, 15 Mar 2018 22:06:22 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/53247#M30140</guid>
      <dc:creator>AT</dc:creator>
      <dc:date>2018-03-15T22:06:22Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/53253#M30144</link>
      <description>&lt;P&gt;Here is a script that will create new columns that numerically contain 0/1 and display as Fail/Pass&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Semiconductor Capability.jmp" );

// Get all numeric columns
colList = dt &amp;lt;&amp;lt; get column names( numeric, string );

foundCols = "";

// Loop across the columns and generate the test pass/fails
For( i = 1, i &amp;lt;= N Items( colList ), i++,
	spec = Column( dt, colList[i] ) &amp;lt;&amp;lt; get property( "Spec Limits" );
	dt &amp;lt;&amp;lt; clear select;
	If( Is Empty( spec ) == 0,
		dt &amp;lt;&amp;lt; New Column( (Column( dt, colList[i] ) &amp;lt;&amp;lt; get name) || " Pass/Fail" );
		If( Is Missing( Try( spec["LSL"], . ) ) == 0,
			dt &amp;lt;&amp;lt; select where( As Column( dt, colList[i] ) &amp;lt; spec["LSL"] );
			Try( Column( dt, N Cols( dt ) )[dt &amp;lt;&amp;lt; get selected rows] = 0 );
		);
		If( Is Missing( Try( spec["USL"], . ) ) == 0,
			dt &amp;lt;&amp;lt; select where( As Column( dt, colList[i] ) &amp;gt; spec["USL"], current selection( "extend" ) );
			Try( Column( dt, N Cols( dt ) )[dt &amp;lt;&amp;lt; get selected rows] = 0 );
		);
		dt &amp;lt;&amp;lt; invert row selection;
		Try( Column( dt, N Cols( dt ) )[dt &amp;lt;&amp;lt; get selected rows] = 1 );
		Column( dt, N Cols( dt ) ) &amp;lt;&amp;lt; set property( "Value Labels", {0 = "Fail", 1 = "Pass"} );
		If( foundCols == "",
			foundCols = ":Name(\!"" || (Column( dt, colList[i] ) &amp;lt;&amp;lt; get name) || " Pass/Fail\!")",
			foundCols = foundCols || ", " || ":Name(\!"" || (Column( dt, colList[i] ) &amp;lt;&amp;lt; get name) || " Pass/Fail\!")"
		);
	);
);

// Create the Row Pass/Fail
Eval( Parse( "dt &amp;lt;&amp;lt; New Column( \!"Row Pass/Fail\!", formula( If( Min(" || foundCols || " ) == 1, 1, 0 ) )" ) );

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 16 Mar 2018 02:25:52 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/53253#M30144</guid>
      <dc:creator>txnelson</dc:creator>
      <dc:date>2018-03-16T02:25:52Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/53292#M30172</link>
      <description>&lt;P&gt;Thanks Jim. This is exactly what I wanted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I ran the script and found this error. A column is created with title "Row Pass/Fail" and it is all zero.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;Unexpected end of input. Perhaps there is a missing "," or ")".&lt;/P&gt;&lt;P class="p1"&gt;Trying to parse arguments of function "New Column".&lt;/P&gt;&lt;P class="p1"&gt;Line 1 Column 3272: ...s/Fail") ) == 1, 1, 0 ) )►...&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;Resolution Problem with Formula for Column Wafer ID in lot ID:&lt;/P&gt;&lt;P class="p1"&gt;Column( "Row Pass/Fail" )&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;Thanks for your continuous support.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Mar 2018 16:39:05 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/53292#M30172</guid>
      <dc:creator>AT</dc:creator>
      <dc:date>2018-03-16T16:39:05Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/53296#M30174</link>
      <description>&lt;P&gt;My error, an ")" was left out of the last statement.&amp;nbsp; It should be:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Eval( Parse( "dt &amp;lt;&amp;lt; New Column( \!"Row Pass/Fail\!", formula( If( Min(" || foundCols || " ) == 1, 1, 0 ) ))" ) );&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 16 Mar 2018 17:34:45 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/53296#M30174</guid>
      <dc:creator>txnelson</dc:creator>
      <dc:date>2018-03-16T17:34:45Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/53312#M30181</link>
      <description>&lt;P&gt;Thanks Jim. It works now.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Mar 2018 21:20:44 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/53312#M30181</guid>
      <dc:creator>AT</dc:creator>
      <dc:date>2018-03-16T21:20:44Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/70513#M35229</link>
      <description>&lt;P&gt;Why this functionality isn't built in to JMP I don't understand, but how could this script be changed so the pass/fail columns will be dynamic? I would like to be able to adjust the specs to determine effect on yield. The way it is now I would have to delete the added columns each time I wanted to reevaluate the yield.&lt;/P&gt;</description>
      <pubDate>Wed, 29 Aug 2018 14:31:55 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/70513#M35229</guid>
      <dc:creator>MarkDayton</dc:creator>
      <dc:date>2018-08-29T14:31:55Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/70516#M35232</link>
      <description>&lt;P&gt;The definition of Spec Limits, typically does not contain their dynamic calculation.&amp;nbsp; They are set based on design limits, etc.&amp;nbsp; That aside, regarding your question, do you invision setting the limits dynamically for all columns(parameters) at the same time?&amp;nbsp; That is, will the limits be set the same for each parameter?&amp;nbsp; Or would you set each individually?&amp;nbsp; Using a Data Filter in conjuction with column formulas could handle your request.&lt;/P&gt;</description>
      <pubDate>Wed, 29 Aug 2018 15:06:39 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/70516#M35232</guid>
      <dc:creator>txnelson</dc:creator>
      <dc:date>2018-08-29T15:06:39Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/70805#M35308</link>
      <description>What I would like to be able to do is do what if analysis where I can change a couple specs, re-screen the data, and come out with a yield number.</description>
      <pubDate>Fri, 31 Aug 2018 15:25:38 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/70805#M35308</guid>
      <dc:creator>MarkDayton</dc:creator>
      <dc:date>2018-08-31T15:25:38Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/70806#M35309</link>
      <description>&lt;P&gt;Additional detail, I have 75-150 parameters and very few of them have the same limits. In a recent experience, I have three parameters driving yield, and a limited amount of spec relief that I can expect to receive. I need to know which combination of spec changes will yield the biggest improvement, while minimizing the magnitude of the changes.&lt;/P&gt;</description>
      <pubDate>Fri, 31 Aug 2018 15:29:25 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/70806#M35309</guid>
      <dc:creator>MarkDayton</dc:creator>
      <dc:date>2018-08-31T15:29:25Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/70952#M35330</link>
      <description>&lt;P&gt;Below is a script that is a very basic, but a good starting point for the development of an interactive yield calculator.&amp;nbsp; Your requirement is a very neat idea.&amp;nbsp; Maybe you can develop and add to the File Exchange a new addin, or maybe someone else will do such.&amp;nbsp; But, here is my starting point script:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here( 1 );

// Create a sample data table
dt = New Table( "Yield",
	Add Rows( 40 ),
	New Column( "Parm 1",
		Numeric,
		"Continuous",
		Format( "Fixed Dec", 5, 0 ),
		Set Property( "Spec Limits", {LSL( 57 ), USL( 67 ), Show Limits( 0 )} ),
		Set Values(
			[59, 61, 55, 66, 52, 60, 61, 51, 60, 61, 56, 65, 63, 58, 59, 61, 62, 65, 63, 62, 63, 64, 65, 64, 68, 64, 69, 62, 64, 67, 65, 66,
			62, 66, 65, 60, 68, 62, 68, 70]
		)
	),
	New Column( "Parm 2",
		Numeric,
		"Continuous",
		Format( "Fixed Dec", 5, 0 ),
		Set Property( "Spec Limits", {LSL( 80 ), USL( 140 ), Show Limits( 0 )} ),
		Set Values(
			[95, 123, 74, 145, 64, 84, 128, 79, 112, 107, 67, 98, 105, 95, 79, 81, 91, 142, 84, 85, 93, 99, 119, 92, 112, 99, 113, 92, 112,
			128, 111, 105, 104, 106, 112, 115, 128, 116, 134, 172]
		)
	),
	New Column( "Parm 1 Pass/Fail",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Value Labels( {0 = "Fail", 1 = "Pass"} ),
		Use Value Labels( 1 ),
		Set Values(
			[1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0]
		)
	),
	New Column( "Parm 2 Pass/Fail",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Value Labels( {0 = "Fail", 1 = "Pass"} ),
		Use Value Labels( 1 ),
		Set Values(
			[1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0]
		)
	)
);

// A function to set the Pass/Fail columns based upon the current Spec Limits
setPassFail = Function( {Parm},
	USL = (Column( dt, parm ) &amp;lt;&amp;lt; get property( "Spec Limits" ))["USL"];
	LSL = (Column( dt, parm ) &amp;lt;&amp;lt; get property( "Spec Limits" ))["LSL"];
	Column( dt, parm || " Pass/Fail" )[dt &amp;lt;&amp;lt; get rows where( As Column( dt, parm ) &amp;gt;= LSL &amp;amp; As Column( dt, parm ) &amp;lt;= USL )] = 1;
	Column( dt, parm || " Pass/Fail" )[dt &amp;lt;&amp;lt; get rows where( As Column( dt, parm ) &amp;lt; LSL | As Column( dt, parm ) &amp;gt; USL )] = 0;
);

//Calculate  the yield for all Pass/Fail columns
calculateYield = Function( {},
	overallYield = 0;
	numberOfRowsThatPassed = 0;
	numberOfRowsThatFailed = 0;

	For( i = 1, i &amp;lt;= N Rows( dt ), i++,
		If( Sum( :Name( "Parm 1 Pass/Fail" )[i], :Name( "Parm 2 Pass/Fail" )[i] ) == N Items( colNamesList ),
			numberOfRowsThatPassed++,
			numberOfRowsThatFailed
			++)
	);

	overallYield = numberOfRowsThatPassed / (numberOfRowsThatPassed + numberOfRowsThatFailed);
);

// Display the Yield Changing Window
nw = New Window( "Interactive Yield Calculation",
	Lineup Box( N Col( 2 ),
		V List Box(
			Text Box( "Parm 1" ),
			p1Upper = Col Maximum( :Name( "Parm 1" ) );
			p1Lower = Col Minimum( :Name( "Parm 1" ) );
			p1 = Range Slider Box(
				Col Mean( :Name( "Parm 1" ) ) - 6 * Col Std Dev( :Name( "Parm 1" ) ),
				Col Mean( :Name( "Parm 1" ) ) + 6 * Col Std Dev( :Name( "Parm 1" ) ),
				p1Lower,
				p1Upper,
				Eval(
					Substitute(
							Expr(
								:Name( "Parm 1" ) &amp;lt;&amp;lt; set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ ), Show Limits( 0 )} )
							),
						Expr( _LSL_ ), p1Lower,
						Expr( _USL_ ), p1Upper
					)
				);
				returned = setPassFail( "Parm 1" );
				cYield = calculateYield();
				yieldVal &amp;lt;&amp;lt; set( cYield );
			);,
			Text Box( "Parm 2" ),
			p2Upper = Col Maximum( :Name( "Parm 2" ) );
			p2Lower = Col Minimum( :Name( "Parm 2" ) );
			p2 = Range Slider Box(
				Col Mean( :Name( "Parm 2" ) ) - 6 * Col Std Dev( :Name( "Parm 2" ) ),
				Col Mean( :Name( "Parm 2" ) ) + 6 * Col Std Dev( :Name( "Parm 2" ) ),
				p2Lower,
				p2Upper,
				Eval(
					Substitute(
							Expr(
								:Name( "Parm 2" ) &amp;lt;&amp;lt; set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ ), Show Limits( 0 )} )
							),
						Expr( _LSL_ ), p2Lower,
						Expr( _USL_ ), p2Upper
					)
				);
				returned = setPassFail( "Parm 2" );
				cYield = calculateYield();
				yieldVal &amp;lt;&amp;lt; set( cYield );
			);,

		),
		V List Box( Text Box( "Yield" ), yieldVal = Number Edit Box() )
	),
	cYield = calculateYield();
	yieldVal &amp;lt;&amp;lt; set( cYield );
);&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 02 Sep 2018 15:29:09 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/70952#M35330</guid>
      <dc:creator>txnelson</dc:creator>
      <dc:date>2018-09-02T15:29:09Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/71430#M35410</link>
      <description>&lt;P&gt;Thanks, can't wait to test it out!&lt;/P&gt;</description>
      <pubDate>Wed, 05 Sep 2018 15:54:26 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/71430#M35410</guid>
      <dc:creator>MarkDayton</dc:creator>
      <dc:date>2018-09-05T15:54:26Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/71484#M35419</link>
      <description>&lt;P&gt;Thanks Jim. I ran the script and ColNamesList is not defined and got an error. The yield table is created.&lt;/P&gt;</description>
      <pubDate>Wed, 05 Sep 2018 18:23:24 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/71484#M35419</guid>
      <dc:creator>AT</dc:creator>
      <dc:date>2018-09-05T18:23:24Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/71500#M35427</link>
      <description>&lt;P&gt;My error, add this line&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;colNamesList={"Parm 1","Parm 2"};&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;before the setPassFail Function definition.&lt;/P&gt;</description>
      <pubDate>Wed, 05 Sep 2018 20:53:39 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/71500#M35427</guid>
      <dc:creator>txnelson</dc:creator>
      <dc:date>2018-09-05T20:53:39Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/71508#M35433</link>
      <description>&lt;P&gt;Thanks Jim. It works now. This is a great script. It can be generalized to many columns. I will play with it more. Thanks again.&lt;/P&gt;</description>
      <pubDate>Wed, 05 Sep 2018 21:36:35 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/71508#M35433</guid>
      <dc:creator>AT</dc:creator>
      <dc:date>2018-09-05T21:36:35Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/216204#M43191</link>
      <description>&lt;P&gt;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2687"&gt;@txnelson&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;This script is proving very useful. Thanks. Found one thing that I have not been able to correct myself yet. If there is a missing value the script marks it as a pass when it inverts the selection and assigns a value of 1. I'd prefer it to assign "Missing" but everything I've tried is coming up short.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Jul 2019 01:08:52 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/216204#M43191</guid>
      <dc:creator>EvanJ</dc:creator>
      <dc:date>2019-07-04T01:08:52Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/216205#M43192</link>
      <description>&lt;P&gt;This script will asign "Missing" in the final "Row Pass/Fail" column if 1 or more values are missing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;foundCols = "";

// Loop across the columns and generate the test pass/fails
For( i = 1, i &amp;lt;= N Items( colList ), i++,
	spec = Column( EVALdt, colList[i] ) &amp;lt;&amp;lt; get property( "Spec Limits" );
	EVALdt &amp;lt;&amp;lt; clear select;
	If( Is Empty( spec ) == 0,
	
		EVALdt &amp;lt;&amp;lt; New Column( (Column( EVALdt, colList[i] ) &amp;lt;&amp;lt; get name) || " Pass/Fail" );
		
		If( Is Missing( Try( spec["LSL"], . ) ) == 0,
			EVALdt &amp;lt;&amp;lt; select where( As Column( EVALdt, colList[i] ) &amp;lt; spec["LSL"] );
			Try( Column( EVALdt, N Cols( EVALdt ) )[EVALdt &amp;lt;&amp;lt; get selected rows] = 0 );
		);
		
		If( Is Missing( Try( spec["USL"], . ) ) == 0,
			EVALdt &amp;lt;&amp;lt; select where( As Column( EVALdt, colList[i] ) &amp;gt; spec["USL"], current selection( "extend" ) );
			Try( Column( EVALdt, N Cols( EVALdt ) )[EVALdt &amp;lt;&amp;lt; get selected rows] = 0 );
		);
		
		EVALdt &amp;lt;&amp;lt; select where( IsMissing( As Column( EVALdt, colList[i] ) ), current selection( "extend" ) );
		
		EVALdt &amp;lt;&amp;lt; invert row selection;
		
		Try( Column( EVALdt, N Cols( EVALdt ) )[EVALdt &amp;lt;&amp;lt; get selected rows] = 1 );
		
		Column( EVALdt, N Cols( EVALdt ) ) &amp;lt;&amp;lt; set property( "Value Labels", {0 = "Fail", 1 = "Pass"} );
		If( foundCols == "",
			foundCols = ":Name(\!"" || (Column( EVALdt, colList[i] ) &amp;lt;&amp;lt; get name) || " Pass/Fail\!")",
			foundCols = foundCols || ", " || ":Name(\!"" || (Column( EVALdt, colList[i] ) &amp;lt;&amp;lt; get name) || " Pass/Fail\!")"
		);
	);
);

// Create the Row Missing/Pass/Fail
Eval( Parse( "EVALdt &amp;lt;&amp;lt; New Column( \!"Row Pass/Fail\!", formula( If( N Missing("||foundCols||") &amp;gt; 1, \!"Missing\!", Min(" || foundCols || " ) == 1, \!"Pass\!", \!"Fail\!" ) ))" ) );&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 04 Jul 2019 03:20:19 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/216205#M43192</guid>
      <dc:creator>EvanJ</dc:creator>
      <dc:date>2019-07-04T03:20:19Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/652232#M84222</link>
      <description>&lt;P&gt;Jim,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This script has been in the forum for quite a while. I like it, and for 50 or 60 columns it works well. I recently attempted to yield a set of PCM test structures where I have well over 1000 columns. I found the MIN() formula seems to be breaking. Do you have any idea on column limits or other variable limits that may be limiting how many arguments i can use in the formula? Your thoughts would be appreciated&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Russ&lt;/P&gt;</description>
      <pubDate>Sat, 24 Jun 2023 00:55:31 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/652232#M84222</guid>
      <dc:creator>deerhntr</dc:creator>
      <dc:date>2023-06-24T00:55:31Z</dc:date>
    </item>
    <item>
      <title>Re: how to calculate yield for many columns with embedded spec limits</title>
      <link>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/717334#M89905</link>
      <description>&lt;P&gt;Great script, very helpful.&amp;nbsp; Wondering if this could be adapted to add a 3rd category where the data is missing?&lt;/P&gt;</description>
      <pubDate>Tue, 16 Jan 2024 15:37:09 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/how-to-calculate-yield-for-many-columns-with-embedded-spec/m-p/717334#M89905</guid>
      <dc:creator>SpannerHead</dc:creator>
      <dc:date>2024-01-16T15:37:09Z</dc:date>
    </item>
  </channel>
</rss>

