相当于计数吗?我试图找到一个与 Excel 的 Countif 函数等效的 JMP 公式函数,它指向一列并返回与当前行中的值相同的行数,就像您对该行执行摘要时得到的结果一样。
换句话说,如果我有一个 1000 行的表,并且 27 行中的列颜色设置为“紫色”,我需要一个新行的公式,该公式为这些行返回 27(以及其他行的适用值)
(我确信它就在这里,但是**如果我能找到它的话**)
JMP 17、macOS
大规模定制回复: Countif 等效吗?关闭,我想。 我从来没有使用过 C++ 代码,但我相信在第一次调用(通常是第 1 行)时,它会预处理所有行以缓存所有可能的按值答案。 然后,所有后续行都会从该按值缓存得到应答。 (如果没有缓存,N 行的时间将是 order(N^2),而缓存只是 order(N) - 线性时间。)
回复: Countif 等效吗?这是有道理的,但是 Col Sum() 函数正在迭代某些东西......
我想象它会迭代与 byVar 列中当前值匹配的行,评估每个行的表达式,然后将这些评估的所有结果相加。
我有这个权利吗?如果是这样,那么 Col Sum() 脚本索引文档中的措辞对我非常有帮助。
回复: Countif 等效吗?将第一个参数视为一个表达式。 表达式可以是
- 42
- :高度
- :身高 *2 > :体重
- if ( :身高 *2 > :体重、年龄、99 )
- if (:身高>60 & :体重>100, 1, 0)
所有这些都是在当前行的上下文中进行评估,因此使用当前行的高度、重量和年龄值。 > 运算符返回 1(表示 true)和 0(表示 false),因此也可以求和。 if 对每一行求值为“age”或“99”,然后将其求和。 并且仅使用 :height 也会被评估以返回当前行的值。
我承认我看了@jthi在我明白之前先举个例子。 如果您将其构建到代码中,请为接下来需要维护它的人员添加注释!
回复: Countif 等效吗?@Craige_Hales因此,如果第一个条目是列对象,则 Col Sum() 函数会遍历列中的值(尊重 byVar 设置)对值求和,但如果第一个条目只是一个数字,它只使用该数字?
第一个条目可以是任何返回值的表达式吗?
它也可以返回一个类似于提供列对象的被跳过的列表吗?如果该列表的长度与 byVar 列表的长度不匹配怎么办?
JMP 的这种内部行为很有趣,我很想了解更多信息,但我在文档中找不到任何内容来帮助我建立一个关于它在这种情况下所做的事情的心理模型......
请注意,countif 是一个 Excel 函数,用于对符合某些条件的单元格范围内的所有项目进行计数。我不认为 Col Sum() 完全可以做到这一点,例如,似乎没有办法使用它来计算 col1 > 7 和 col2 == 15 的情况数量。
回复: Countif 等效吗?@奥黛丽_舒尔也许是@jthi可以将示例添加到脚本索引中并附上解释,例如“列公式的第一个参数是为每行计算的表达式。 它通常是一列,对列的值求和,但在本例中它是一个常量 1,对行数求和。 这在本例中很有用,因为第二个参数是按列,这使得每个按值求和。”
添加 countif 关键字可能会帮助别人在将来找到它(我不精通 excel,所以也许先查找 countif...)
回复: Countif 等效吗?它使用 1 作为行的值,而不是从某些列的行中找到的特定值。
编辑:在这种情况下,我认为使用 Col Number(:Column 1, :Column 1) 也应该有效。
回复: Countif 等效吗?@jthi :帮助文本说 Col Sum() 的第一个参数是“xCol”,但其中只有一个“1”。JMP 在这里对 1 号做什么?
(这非常有用,我们今天也有这个问题。)
回复: Countif 等效吗?您指的是哪个帮助文本?它有什么不直观的地方?Col Sum(名称,<按变量,...>)
另外,从脚本索引(可从 JMP 的“帮助”菜单中找到)中,您可以获得可执行的演示脚本,这些脚本有时会很有帮助

回复: Countif 等效吗?正是如此——谢谢!
(而且关于 Col Sum 的 JMP 帮助文本确实不直观......)
回复: Countif 等效吗?像这样的东西吗?

Col Sum(1, :Column 1)
回复:Countif 等价吗?@Audrey_Shull如果您计划在未来版本的脚本索引或在线帮助中添加@jthi的示例,请同时添加一段关于
https://community.jmp.com/t5/Discussions/JMP-equivalent-of-Excel-s-COUNTIF-function/mp/783500/highlight/true#M96784