別の列に特定の値が含まれている場合は、列を値で更新しますこんにちは、
「郵送先の国」と「郵便先の州」という名前の 2 つの列があります。 特に米国の [郵送先国] の下の一部の行には値が含まれていません。郵便物の州に米国のさまざまな州コードに対応する値が含まれている場合、郵便物の国列を値「USA」で更新したいと考えています。 250,000 行近くあるため、手動で更新することはできません。 私は JMP とスクリプトの初心者なので、この問題を解決する方法がわかりません。
サンプルデータのスクリーンショットを添付しました。 助けていただければ幸いです。 前もって感謝します。

Re: 別の列に特定の値が含まれている場合、列を値で更新しますこのコードは、数式としてではなく、別のスクリプトとして実行する必要があります。Re: 別の列に特定の値が含まれている場合、列を値で更新しますこんにちは、
くだらない質問かもしれませんが、このコードを使う時は列の数式を編集して使いますか? 欠損値に基づいて計算を行っているわけではないので、このような式として計算しました。 列ラベルが「MnDOT Est」と等しくなるように列ベンダーを更新しようとしています。ベンダーは「MnDOT」に相当します。 しかし、不正な参照による列ベンダー式中断エラーが発生します。 これらは MnDOT に変更されますが、他のものはすべて削除されるだけです。 それが理にかなっているといいのですが。
For Each Row(
temp = :Vendor;
:Vendor = If( :Label == "MnDOT Est.", "MnDOT", temp);
);Re: 別の列に特定の値が含まれている場合、列を値で更新します- 日付値を文字に変換しないでください。
- 数値列 (日付列) では、「.」値が欠落していることを示します。
- ある程度の読書をする必要があります。『JMP の使用』と『スクリプト ガイド』という書籍は必読です。これらは [ヘルプ] プルダウン メニューで見つけることができます。
ヘルプ==>書籍==>JMPの使用
ヘルプ==>書籍==>スクリプトガイド
Re: 別の列に特定の値が含まれている場合、列を値で更新しますありがとうテキネルソン。
これに関連して、日付エントリが欠落している場合、列を文字に変換してからスクリプトを実行し、「.」も実行するほうがよいでしょうか。欠落している列に表示されるドットは、Ismissing() で欠落していると解釈されますか、それとも単に空白にする必要がありますか?
Re: 別の列に特定の値が含まれている場合、列を値で更新しますでは、列 A の値が欠落している場合、列 A2 の値を列 A に割り当てますか?他の 5 つの列も同じでしょうか?
それが質問の場合、列 A については次のように行い、残りの 5 つの列についても同じ手順を繰り返します。
For Each Row(
If( IsMissing(:A), :A = :A2);
If( IsMissing(:B), :B = :B2);
);Re: 別の列に特定の値が含まれている場合、列を値で更新します私も同様のケースを持っています。 同一であるはずの ID と日付がありますが、値が欠落しているため別の列にあります。
これを適用して、6 列の欠損値のある行のみを、異なる 6 列セットの値で置き換えるにはどうすればよいですか?
Re: 別の列に特定の値が含まれている場合、列を値で更新します本当に役に立ちます。 私のユースケースでもうまくいきました。 どうもありがとう。!
@txnelson書きました:
これは、Mark のスクリプトを少し自由にした 1 つの解決策です。
For Each Row(
temp=:Mailing Country;
:Mailing Country = If( Is Missing( :Mailing Country ) & Contains( {"AL","AZ"}, :Mailing State ), "USA" ,temp);
);
Re: 別の列に特定の値が含まれている場合、列を値で更新しますありがとうジム。 完璧に機能しました。
マークさん、スクリプトをありがとう。
Re: 別の列に特定の値が含まれている場合、列を値で更新しますこれは、Mark のスクリプトを少し自由にした 1 つの解決策です。
For Each Row(
temp=:Mailing Country;
:Mailing Country = If( Is Missing( :Mailing Country ) & Contains( {"AL","AZ"}, :Mailing State ), "USA" ,temp);
);Re: 別の列に特定の値が含まれている場合、列を値で更新しますハイマーク、
解決策をありがとうございます。
ただし、スクリプトを実行すると、値のない行は「USA」で更新されるのに対し、以前に存在していた値のある行はスクリプトの実行後に消えてしまいます。
スクリプトの実行前と実行後の両方のスクリーンショットを添付しました。 ありがとう。
Before scriptBefore scriptスクリプトの前
After scriptAfter scriptスクリプトの後
Re: 別の列に特定の値が含まれている場合、列を値で更新します次のように新しい列で数式を使用できます。
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" );
);
どちらの場合も、使用する前にリストを拡張して、すべての州の 2 文字のコードを含める必要があります。