<?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 Custom Column formula in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396661#M64736</link>
    <description>&lt;P&gt;I would like to add a new column 'Vth' in my table with the following calculation:-&lt;/P&gt;&lt;P&gt;First I need to find the index i of column 'IDS' where the 'IDS' is nearest to 1e-9 (or Log10[IDS] = -9); and then Vth = VGS(i). It should be grouped by Site, Measurement, SWP, Wafer columns as well. That is, each unique combination of Site, Measurement, SWP, Wafer will have one Vth value.&lt;/P&gt;&lt;P&gt;If the IDS is not exactly 1e-9. Please do interpolate in this fashion. That is; Log10[IDS] vs. VGS.&lt;/P&gt;&lt;P&gt;Exact VTH = Interpolate( Log10( 1e-9 ), [Log10[IDS](i)) Log10[IDS](i-1)] , [VGS (i) VGS (i-1) ] );&lt;/P&gt;&lt;P&gt;Note the SWP column is sweep of VGS in forward (0) and reverse (1) direction; therefore the interpolation direction need to be taken care of in proper manner.&lt;/P&gt;</description>
    <pubDate>Fri, 09 Jun 2023 19:51:08 GMT</pubDate>
    <dc:creator>pankajsync</dc:creator>
    <dc:date>2023-06-09T19:51:08Z</dc:date>
    <item>
      <title>Custom Column formula</title>
      <link>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396661#M64736</link>
      <description>&lt;P&gt;I would like to add a new column 'Vth' in my table with the following calculation:-&lt;/P&gt;&lt;P&gt;First I need to find the index i of column 'IDS' where the 'IDS' is nearest to 1e-9 (or Log10[IDS] = -9); and then Vth = VGS(i). It should be grouped by Site, Measurement, SWP, Wafer columns as well. That is, each unique combination of Site, Measurement, SWP, Wafer will have one Vth value.&lt;/P&gt;&lt;P&gt;If the IDS is not exactly 1e-9. Please do interpolate in this fashion. That is; Log10[IDS] vs. VGS.&lt;/P&gt;&lt;P&gt;Exact VTH = Interpolate( Log10( 1e-9 ), [Log10[IDS](i)) Log10[IDS](i-1)] , [VGS (i) VGS (i-1) ] );&lt;/P&gt;&lt;P&gt;Note the SWP column is sweep of VGS in forward (0) and reverse (1) direction; therefore the interpolation direction need to be taken care of in proper manner.&lt;/P&gt;</description>
      <pubDate>Fri, 09 Jun 2023 19:51:08 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396661#M64736</guid>
      <dc:creator>pankajsync</dc:creator>
      <dc:date>2023-06-09T19:51:08Z</dc:date>
    </item>
    <item>
      <title>Re: Custom Column formula</title>
      <link>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396670#M64737</link>
      <description>&lt;P&gt;please use this JMP file. Ignore the excel above.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Updated description below:-&lt;/P&gt;&lt;P&gt;I would like to add a new column 'Vth' in my table with the following calculation:-&lt;/P&gt;&lt;P&gt;First I need to find the index i of column 'IDS' where the 'IDS' is nearest to 1e-9 (or Log10[IDS] = -9); and then Vth = VGS(i). It should be grouped by Site, Measurement, SWP, Device, Wafer columns as well. That is, each unique combination of Site, Measurement, SWP, Wafer, Device will have one Vth value.&lt;/P&gt;&lt;P&gt;If the IDS is not exactly 1e-9. Please do interpolate in this fashion. That is; Log10[IDS] vs. VGS.&lt;/P&gt;&lt;P&gt;Exact VTH = Interpolate( Log10( 1e-9 ), [Log10[IDS](i)) Log10[IDS](i-1)] , [VGS (i) VGS (i-1) ] );&lt;/P&gt;&lt;P&gt;Note the SWP column is sweep of VGS in forward (0) and reverse (1) direction; therefore the interpolation direction need to be taken care of in proper manner.&lt;/P&gt;</description>
      <pubDate>Tue, 29 Jun 2021 00:26:27 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396670#M64737</guid>
      <dc:creator>pankajsync</dc:creator>
      <dc:date>2021-06-29T00:26:27Z</dc:date>
    </item>
    <item>
      <title>Re: Custom Column formula</title>
      <link>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396948#M64768</link>
      <description>Was anyone able to look at it?</description>
      <pubDate>Tue, 29 Jun 2021 23:21:02 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396948#M64768</guid>
      <dc:creator>pankajsync</dc:creator>
      <dc:date>2021-06-29T23:21:02Z</dc:date>
    </item>
    <item>
      <title>Re: Custom Column formula</title>
      <link>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396965#M64770</link>
      <description>Hi,&lt;BR /&gt;It turns out that it is a bit more challenging than expected to get a column formula to do what you ask.&lt;BR /&gt;I hope others will have more luck than I have had so far.&lt;BR /&gt;Best,&lt;BR /&gt;TS</description>
      <pubDate>Wed, 30 Jun 2021 04:55:23 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396965#M64770</guid>
      <dc:creator>Thierry_S</dc:creator>
      <dc:date>2021-06-30T04:55:23Z</dc:date>
    </item>
    <item>
      <title>Re: Custom Column formula</title>
      <link>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396966#M64771</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Here is how far I have gone: I can find the ID of the IDS closest to 1e-9 by Wafer, Site, Measurement, Device, and Wafer and then return the corresponding VGS otherwise returns 0. However, the interpolation is, as I mentioned earlier, more challenging.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;If(
	Abs( :Name( "Log10[IDS]" ) + 9 ) == Col Minimum(
		Abs( :Name( "Log10[IDS]" ) + 9 ),
		:Site,
		:Measurement,
		:Device,
		:Wafer
	),
	:VGS,
	0
);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Best,&lt;/P&gt;
&lt;P&gt;TS&lt;/P&gt;</description>
      <pubDate>Wed, 30 Jun 2021 05:23:00 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396966#M64771</guid>
      <dc:creator>Thierry_S</dc:creator>
      <dc:date>2021-06-30T05:23:00Z</dc:date>
    </item>
    <item>
      <title>Re: Custom Column formula</title>
      <link>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396967#M64772</link>
      <description>&lt;P&gt;Hi, pankajsync!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes, I was able to look at it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Finding the VGS value relating to the IDS value closest to 1e-9 is pretty trivial.&amp;nbsp; Set up a loss function column that takes the absolute value of log10(IDS)+9, and then identify the Col Minimum of that value by&amp;nbsp;&lt;SPAN&gt;Site, Measurement, SWP, Device, Wafer.&amp;nbsp; The VGS corresponding to those loss value minimums will be your inexact Vth.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;But none of the IDS values are exactly 1e-9, and some of the "closest" IDS values are quite distant from 1e-9, so please explain in more detail what procedure and result you intend to happen when you use the word "interpolate".&amp;nbsp; Do you mean a prediction of Vth if the IDS would be exactly 1e-9?&amp;nbsp; Using a linear model?&amp;nbsp; Does every unique&amp;nbsp;Site, Measurement, SWP, Device, Wafer combination require this procedure irrespective of how far the IDS value is from 1e-9?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Perhaps, in addition to answering these questions, you could share what approaches you have unsuccessfully tried already?&amp;nbsp; Personally, I would consider writing a JSL script to do this because it seems like your application may benefit from some error checking and verifying initial data boundary conditions, but some of the denizens of this Discussion site are Formula Jedi that seriously impress me with their skills, and they might have a solution if you must have a formula.&amp;nbsp; If I anticipate your answers correctly, I don't think I will however.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Kevin&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 30 Jun 2021 05:34:28 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/396967#M64772</guid>
      <dc:creator>Kevin_Anderson</dc:creator>
      <dc:date>2021-06-30T05:34:28Z</dc:date>
    </item>
    <item>
      <title>Re: Custom Column formula</title>
      <link>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/397028#M64777</link>
      <description>&lt;P&gt;If it's possible to have it as a column formula it would be quite difficult.&amp;nbsp; Probably the best choice for you would be a table script or just a regular script.&amp;nbsp; The following seems to work well.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;dt = Current Data Table();
summarized table = dt &amp;lt;&amp;lt; Summary( Group( :Site, :Measurement, :SWP, :Device, :Wafer ) );
lookup = [=&amp;gt; ];
For Each Row(
	summarized table,
	If( !(lookup &amp;lt;&amp;lt; Contains( :Site, Empty() )),
		lookup[:Site] = [=&amp;gt; ]
	);
	If( !(lookup[:Site] &amp;lt;&amp;lt; Contains( :Measurement, Empty() )),
		lookup[:Site][:Measurement] = [=&amp;gt; ]
	);
	If( !(lookup[:Site][:Measurement] &amp;lt;&amp;lt; Contains( :SWP, Empty() )),
		lookup[:Site][:Measurement][:SWP] = [=&amp;gt; ]
	);
	If( !(lookup[:Site][:Measurement][:SWP] &amp;lt;&amp;lt; Contains( :Device, Empty() )),
		lookup[:Site][:Measurement][:SWP][:Device] = [=&amp;gt; ]
	);
	If( !(lookup[:Site][:Measurement][:SWP][:Device] &amp;lt;&amp;lt; Contains( :Wafer, Empty() )),
		lookup[:Site][:Measurement][:SWP][:Device][:Wafer] = [=&amp;gt; ]
	);
	summarized table &amp;lt;&amp;lt; Clear Select;
	summarized table &amp;lt;&amp;lt; Select Rows( Row() );
	rows = dt &amp;lt;&amp;lt; Get Selected Rows;
	vals = Column( dt, "Log10[IDS]" )[rows];
	test = {};
	For( i = 1, i &amp;lt;= N Items( rows ), i++,
		test[i] = Eval List( {Abs( 9 + vals[i] ), rows[i]} )
	);
	Sort List Into( test );
	lookup[:Site][:Measurement][:SWP][:Device][:Wafer] = Column( dt, "VGS" )[test[1][2]];
);
Close( summarized table, No Save );

Eval( Eval Expr(
dt &amp;lt;&amp;lt; New Column( "LOOKUP_RESULT", "Numeric", Formula( lookup = Expr( lookup ); lookup[:site][:measurement][:swp][:device][:wafer] ) )
) )&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 30 Jun 2021 11:07:30 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/397028#M64777</guid>
      <dc:creator>ErraticAttack</dc:creator>
      <dc:date>2021-06-30T11:07:30Z</dc:date>
    </item>
    <item>
      <title>Re: Custom Column formula</title>
      <link>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/397310#M64799</link>
      <description>&lt;P&gt;Hi, Kevin!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was thinking you can take this approach.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Find VGS, logIDS, which is just above -9..-- Call it VGS_u, log(IDS)_u&lt;/P&gt;&lt;P&gt;Find VGS, logIDS, which is slightly below -9..-- Call it VGS_i, log(IDS)_i&lt;/P&gt;&lt;P&gt;calculate slope, m = abs(log(IDS)_u-log(IDS)_i)./abs( log(IDS)_u- log(IDS)_i)&lt;/P&gt;&lt;P&gt;Exact VTH = m*(abs(VGS_u-VGS_i)) + min(abs( log(IDS)_u),&amp;nbsp;abs( log(IDS)_i) )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I really wanted custom formula for it even if it can be done through formulas in multiple columns.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Pankaj&lt;/P&gt;</description>
      <pubDate>Wed, 30 Jun 2021 22:24:59 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/397310#M64799</guid>
      <dc:creator>pankajsync</dc:creator>
      <dc:date>2021-06-30T22:24:59Z</dc:date>
    </item>
    <item>
      <title>Re: Custom Column formula</title>
      <link>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/397584#M64830</link>
      <description>&lt;P&gt;i made some typos in below email. Below should be correct&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Find VGS, logIDS, which is just above -9..-- Call it VGS_u, log(IDS)_u&lt;/P&gt;&lt;P&gt;Find VGS, logIDS, which is just below -9..-- Call it VGS_i, log(IDS)_i&lt;/P&gt;&lt;P&gt;calculate slope, m = abs(log(IDS)_u-log(IDS)_i)./abs( abs(VGS_u-VGS_i))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Exact VTH =&amp;nbsp;VGS_i + 1/m*(9-abs(log(IDS)_i)))&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jul 2021 14:39:00 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Custom-Column-formula/m-p/397584#M64830</guid>
      <dc:creator>pankajsync</dc:creator>
      <dc:date>2021-07-01T14:39:00Z</dc:date>
    </item>
  </channel>
</rss>

