根据公式给单元格着色
我有一个宽格式的数据表。它有规格限制。通过执行质量和流程 -> 管理限制 -> 颜色超出规格值,它可以正常工作。使用此方法,失败值是颜色。我想以高格式查看它。请参阅下面的转置表。
数据表被转置然后用限制更新(列名带有LSL和USL)。标签是参数,1到20代表不同的部分。
如果部分的读数为 < LSL 或读数 > USL,我想要为单元格或值着色。我可以使用 cols -> 公式来做到这一点吗?还是需要 JSL?
这是 JMP 17。

内容组织数据探索与可视化回复:通过公式给单元格着色由于您在行级别执行检查,并且颜色通常设置在列级别,我认为您需要使用 JSL。JSL 并不太难,如果您可以提供示例数据,JMP 社区很可能可以帮助您构建它。
构建脚本的一种方法是:
- 将测量列放入列表/关联数组(标签/LSL 之间的连续列或名称中只有数字的列)
- 使用 For Each Row 循环遍历表格
- 将行上的值与限制进行比较,同时使用应为每列着色的行更新在第一步中创建的对象
- 完成行循环后,循环遍历步骤 1 中创建的对象并使用 << 颜色单元格
回复:通过公式给单元格着色这是示例数据。
“标签”列是参数。每个标签都有唯一的 LSL 和 USL。
列标题中的 1 到 20 是不同的部分。每个部分的每个参数都有一个唯一的值。
例如,如果第 3 行第 1 列的读数为“0.37209999561”,超出了 (0.070000000298, 1) 的 LSL 和 USL,则“0.37209999561”字体颜色将更改为红色。
回复:通过公式给单元格着色这不是最简单的方法,但可能对你有用。请注意,如果你有单侧规格限制,则可能需要添加额外的检查
Names Default To Here(1);
dt = Open("$DOWNLOADS/Transpose of u4_trimmed.jmp");
cols = dt << Get Column Names("String");
labelidx = Contains(cols, "Label");
partcols = Remove From(cols, labelidx + 1, Contains(cols, "LSL") - labelidx - 1);
m = J(N Rows(dt), N Items(partcols), 0);
For Each Row(dt,
m[Row(), 0] = dt[Row(), partcols] < :LSL | dt[Row(), partcols] > :USL
);
For Each({partcol, idx}, partcols,
color_rows = Loc(m[0, idx]);
If(N Items(color_rows) > 0,
Column(dt, partcol) << Color Cells("Red", color_rows);
);
);回复:通过公式给单元格着色它起作用了。抱歉回复迟了。我正在尝试弄清楚脚本,但这似乎需要更多时间。
回复:通过公式给单元格着色非常感谢您提供解决方案。