當另一列包含特定值時用值更新列你好,
我有兩個名為“郵寄國家”和“郵寄州”的列。 郵寄國家/地區(特別是美國)下的某些行不包含任何值。當郵寄州包含與美國各個州代碼相對應的值時,我想用值“美國”更新郵寄國家/地區列。 我有接近 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" );
);
在任何一種情況下,您都必須在使用之前擴展列表以包含每個州的兩個字母的代碼。