当另一列包含特定值时用值更新列你好,
我有两个名为“邮寄国家”和“邮寄州”的列。 邮寄国家/地区(特别是美国)下的某些行不包含任何值。当邮寄州包含与美国各个州代码相对应的值时,我想用值“美国”更新邮寄国家/地区列。 我有接近 250,000 行,因此无法手动更新。 我是 JMP 和脚本编写的新手,我无法找到解决此问题的方法。
我附上了示例数据的屏幕截图。 任何帮助,将不胜感激。 提前致谢。

回复:当另一列包含特定值时用值更新列此代码需要作为单独的脚本运行,而不是作为公式运行。回复:当另一列包含特定值时用值更新列你好,
这可能是一个愚蠢的问题,但是在使用此代码时,您是否通过编辑列的公式来使用它? 我是按照这样的公式来做的,因为我不是根据缺失值来做的。 我正在尝试更新我的供应商列,以便当列标签等于“MnDOT Est”时。供应商等于“MnDOT”。 但它给了我一个列供应商公式中断错误和非法引用。 它将这些更改为 MnDOT,但只是删除所有其他内容。 我希望这是有道理的。
For Each Row(
temp = :Vendor;
:Vendor = If( :Label == "MnDOT Est.", "MnDOT", temp);
);回复:当另一列包含特定值时用值更新列- 不要将日期值转换为字符。
- 在数字列(日期列)中,“.”表示该值缺失。
- 你需要做一些阅读。《使用 JMP》和《脚本指南》这两本书是必读的。您可以在“帮助”下拉菜单下找到它们
帮助==>书籍==>使用JMP
帮助==>书籍==>脚本指南
回复:当另一列包含特定值时用值更新列谢谢特克斯尼尔森。
在相关说明中,如果缺少日期条目,我最好将列转换为字符,然后运行脚本,并且执行“.”。出现在缺失列中的点被解释为 Ismissing() 中缺失,还是应该只是空白?
回复:当另一列包含特定值时用值更新列那么,如果 A 列中的值缺失,您希望将 A2 列中的值分配给 A 列吗?其他 5 列也一样吗?
如果这就是您所要求的,那么您将按照以下方式对 A 列执行此操作,然后对其他 5 列重复此操作
For Each Row(
If( IsMissing(:A), :A = :A2);
If( IsMissing(:B), :B = :B2);
);回复:当另一列包含特定值时用值更新列我有一个类似的问题。 我的 ID 和日期应该是相同的,但由于缺少值而位于不同的列中。
我如何应用此方法仅将 6 列中缺少值的行替换为来自不同 6 列集合的值?
回复:当另一列包含特定值时用值更新列真的很有帮助。! 它也适用于我的用例。! 多谢。!
@tx尼尔森写道:
这是一个对马克的脚本稍加改动的解决方案
For Each Row(
temp=:Mailing Country;
:Mailing Country = If( Is Missing( :Mailing Country ) & Contains( {"AL","AZ"}, :Mailing State ), "USA" ,temp);
);
回复:当另一列包含特定值时用值更新列谢谢吉姆。 它工作得很好。
感谢马克的脚本。
回复:当另一列包含特定值时用值更新列这是一个对马克的脚本稍加改动的解决方案
For Each Row(
temp=:Mailing Country;
:Mailing Country = If( Is Missing( :Mailing Country ) & Contains( {"AL","AZ"}, :Mailing State ), "USA" ,temp);
);回复:当另一列包含特定值时用值更新列嗨马克,
感谢您的解决方案。
但是,我注意到,当我运行脚本时,没有值的行会更新为“USA”,而之前存在值的行在运行脚本后会消失。
我附上了运行脚本之前和之后的屏幕截图。 谢谢。
Before scriptBefore script脚本之前
After scriptAfter script脚本之后
回复:当另一列包含特定值时用值更新列您可以在新列中使用公式,如下所示:
If( Is Missing( :Mailing Country ) & Contains( {"AL","AZ"}, :Mailing State ), "USA" )
如果您不需要新列,则可以运行此脚本来替换现有列中的缺失值:
For Each Row(
:Mailing Country = If( Is Missing( :Mailing Country ) & Contains( {"AL","AZ"}, :Mailing State ), "USA" );
);
在任何一种情况下,您都必须在使用之前扩展列表以包含每个州的两个字母的代码。