如何将 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)));