查找列中第一个符合条件的元素您好,我有一个包含 2 列的数据:组和分数,我想计算名为第一个的第三列,它返回“按组划分的第一个分数不是 10000000000。所以在此示例数据中,组 a = 0,组b = 53. 由于组 c 仅包含 10000000000,因此没有显示任何内容。
有人可以帮助我使用该列的 jmp 公式,但不能帮助我使用 jsl 吗? 太感谢了!
| 团体 | 分数 | 第一的 |
| A | 10000000000 | 0 |
| A | 0 | 0 |
| A | 100 | 0 |
| A | 10000000000 | 0 |
| A | 8 | 0 |
| A | 10000000000 | 0 |
| A | 10000000000 | 0 |
| A | 10000000000 | 0 |
| 乙 | 53 | 53 |
| 乙 | 10000000000 | 53 |
| 乙 | 1 | 53 |
| C | 10000000000 | 。 |
| C | 10000000000 | 。 |
| C | 10000000000 | 。 |
质量和工艺工程回复:在列中查找第一个符合条件的元素这是解决问题的不同方法。这种方法是一个脚本。它应该比以前的单一公式列方法更有效。它首先找到第一个值,将它们提取到新表中,然后使用更新平台将这些值合并回原始数据表中。
names default to here(1);
dt=current data table();
// Create a column that finds the first values
dt<<NEW column=""></NEW>
回复:在列中查找第一个符合条件的元素这是很多行。 该公式可能需要较少的内存。 它假设第一个值 ≠ 10000000000 始终小于 10000000000。
If(Col Min(:score, :group) == 10000000000,
.,
Col Min(
:score[Col Min(Row(), :group, :score == 10000000000)],
:group
)
)
回复:在列中查找第一个符合条件的元素谢谢吉姆! 我将你的公式直接粘贴到我的数据中并再次检查 - 它适用于前 7000 行,但从那以后全部都是“.”,不显示第一个不是 10000000 的数字。 当我输入公式时,它确实运行了很长时间,因此我不得不按 esc 来解冻 jmp。这是导致这种情况发生的原因吗? 我总共有大约 7000k 行。回复:在列中查找第一个符合条件的元素公式的屏幕转储不允许我查看您是否正确引用了列。也就是说,您是否在列名称前面放置“:”,而不是在 curgroup 和 value 前面?
您收到什么错误消息?
当您说它无法正常工作时,这是什么意思?没有得到正确的值,或者没有给你任何结果?
我已将您的示例数据表附加到名为“吉姆公式”的列,该列已将我的公式应用于数据表。这样您就可以获得公式的工作版本,以便与您尝试创建的内容进行比较。
回复:在列中查找第一个符合条件的元素嗨吉姆,谢谢你的回答。 我将其粘贴到公式中并替换了列名称,但它没有产生正确的答案。 你能帮我看看下面的截图吗? 谢谢。

回复:在列中查找第一个符合条件的元素这是编写公式的一种方法
curgroup = :group;
value = :score[Min(
Current Data Table() << get rows where(
:group == curgroup & :score != 10000000000
)
)];