如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中我在為兩個函數(參見屏幕截圖)編寫 JSL 代碼腳本時遇到問題,我目前在 Excel 中擁有這些函數,但想轉移到 JMP 中。 數據在附件中找到JMP_Test_Average2.xlsx我希望轉移到 JMP 的功能如下:
- 專欄VS有一個COUNTIF功能; =COUNTIF(C3:N3,"-1")
- 我想知道每行中出現 -1 的實例數(例如,在第 3 行中,-1 的實例數為 2)。 列 m(AB)在函數中被忽略,但它很重要,因為它是數據序列的一部分。
- 列PD有一個匹配功能; =(匹配("-1",C3:N3,0))+1
- 我想知道 -1 的第一個實例出現在每行中的位置(例如,在第 3 行中,第一個 -1 出現在立柱 m(LM)或第 12 列時考慮列 m(AB)到米(錳) ). 列 m(AB)在函數中被忽略,但它很重要,因為它是數據序列的一部分。
我想知道如何在 JSL 中編寫這些函數的腳本這樣我就可以更新我的 JMP 表,而不必在 Excel 中完成計算,然後將結果導入我的 JMP 表中。
任何幫助將非常感激。
謝謝。
麥克風
Data as found in file JMP_Test_Average2.xlsxData as found in file JMP_Test_Average2.xlsx在文件 JMP_Test_Average2.xlsx 中找到的數據
回复:如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中dt <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> new Column</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token string">"VS"</SPAN><SPAN class="token punctuation">,</SPAN> formula<SPAN class="token punctuation">(</SPAN>nrows<SPAN class="token punctuation">(</SPAN><SPAN class="token function">Loc</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token function">Evallist</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token punctuation">{</SPAN><SPAN class="token punctuation">:</SPAN>AB<SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>BC<SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>CD<SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>DE<SPAN class="token punctuation">,</SPAN> <SPAN class="token punctuation">:</SPAN>EF<SPAN class="token punctuation">}</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token operator">-</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
這段代碼需要怎麼修改才能算出該行的-1和上面的2行(共3行)?
謝謝!
回复:如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中代碼中每一列的列名表{:AB, :BC, :CD, :DE, :EF}如何由代碼自動生成?
{:AB, :BC, :CD, :DE, :EF}
謝謝!
我已經試過下面的代碼有同樣的效果,但它仍然沒有自動生成。
Evallist({As Column(1),As Column(2),As Column(3),As Column(4),As Column(5)})
回复:如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中//this gives you a vector of items that are -1
vector_of_neg1 = loc(Aslist(:AB[row()-3::row()]`), -1);
//then you just have to select the last one
n = nitems(vector_of_neg1);
if(n,
vector_of_neg1[n]
, //else 0
0
);
或者您可以使用 start 參數從後面看。
Contains( :AB[Index( Row() - 3, Row() )] , -1, -1 )
回复:如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中謝謝吉姆!
x=5-包含(評估列表(:ab[索引(行(),行()-3)]),-1);
如果(x==5,0,x);回复:如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中這可能是您正在尋找的公式
x = 5 - Contains( Eval List( :ab[Index( Row(), Row() - 3 )] ), -1 );
If( x == 5, x = 0 );
回复:如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中我試著寫這樣的代碼,但沒有成功。

回复:如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中你好 ! 我很想知道:
如果“AB”列有多個“-1”,如何計算該範圍內最後一個“-1”範圍內的行數?
謝謝!

回复:如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中在這裡我找到了答案並解決了我自己的問題。謝謝!
包含(評估列表(:BC[Index(Row()-3,Row())]),-1)回复:如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中也感謝您的幫助 Jim,您和 Vince 解決了我的問題。
回复:如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中感謝您的幫助,非常感謝。
回复:如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中這是我想出的 2 個公式來複製您的電子表格
對於 YS
Sum(
:Name( "m(AB)" ) == -1,
:Name( "m(BC)" ) == -1,
:Name( "m(CD)" ) == -1,
:Name( "m(EF)" ) == -1,
:Name( "m(FG)" ) == -1,
:Name( "m(GH)" ) == -1,
:Name( "m(HI)" ) == -1,
:Name( "m(IJ)" ) == -1,
:Name( "m(JK)" ) == -1,
:Name( "m(KL)" ) == -1,
:Name( "m(LM)" ) == -1,
:Name( "m(MN)" ) == -1
)
對於PD
Contains(
Char( :Name( "m(AB)" ) ) || Char( :Name( "m(BC)" ) ) ||
Char( :Name( "m(CD)" ) ) || Char( :Name( "m(EF)" ) ) ||
Char( :Name( "m(FG)" ) ) || Char( :Name( "m(GH)" ) ) ||
Char( :Name( "m(HI)" ) ) || Char( :Name( "m(IJ)" ) ) ||
Char( :Name( "m(JK)" ) ) || Char( :Name( "m(KL)" ) ) ||
Char( :Name( "m(LM)" ) ) || Char( :Name( "m(MN)" ) ),
"-1"
)
回复:如何將 Excel COUNTIF 和 MATCH 函數傳輸到 JMP 中這應該給你一個基本的想法。
Names Default to here(1);
dt = new table("Test", add rows(10),
New Column("AB", formula(if(random uniform()<=.8, 1, -1))),
New Column("BC", formula(if(random uniform()<=.8, 1, -1))),
New Column("CD", formula(if(random uniform()<=.8, 1, -1))),
New Column("DE", formula(if(random uniform()<=.8, 1, -1))),
New Column("EF", formula(if(random uniform()<=.8, 1, -1))),
);
cols = dt << Get Column Reference(dt << Get Column Names);
dt << new Column("VS", formula(nrows(Loc(Evallist({:AB, :BC, :CD, :DE, :EF}), -1))));
dt << New Column("PD", formula(Contains(Evallist({:AB, :BC, :CD, :DE, :EF}), -1)));