다른 열에 특정 값이 포함된 경우 열을 값으로 업데이트안녕,
'우편 국가'와 '우편 주'라는 두 개의 열이 있습니다. 메일링 국가(특히 미국) 아래의 일부 행에는 값이 포함되어 있지 않습니다.우편물 주에 미국의 다양한 주 코드에 해당하는 값이 포함된 경우 우편물 국가 열을 'USA' 값으로 업데이트하고 싶습니다. 행이 250,000개에 가까워서 수동으로 업데이트할 수 없습니다. 저는 JMP와 스크립팅을 처음 사용하는데 이 문제를 해결할 방법을 찾을 수 없습니다.
샘플 데이터의 스크린샷을 첨부했습니다. 어떤 도움이라도 주시면 감사하겠습니다. 미리 감사드립니다.

Re: 다른 열에 특정 값이 포함되어 있으면 열을 값으로 업데이트하세요.이 코드는 수식이 아닌 별도의 스크립트로 실행해야 합니다.Re: 다른 열에 특정 값이 포함되어 있으면 열을 값으로 업데이트하세요.안녕하세요,
어리석은 질문일 수도 있지만 이 코드를 사용할 때 열의 수식을 편집하여 사용합니까? 누락된 값을 기반으로 하는 것이 아니기 때문에 이와 같은 공식으로 수행했습니다. 열 레이블이 "MnDOT Est"와 같을 때 Vendor 열을 업데이트하려고 합니다. 공급업체는 "MnDOT"입니다. 하지만 Illegal Reference 항목으로 인해 Column Vendor Formula Interrupted 오류가 발생합니다. 항목을 MnDOT로 변경하지만 다른 항목은 모두 삭제합니다. 그게 말이 되기를 바랍니다.
For Each Row(
temp = :Vendor;
:Vendor = If( :Label == "MnDOT Est.", "MnDOT", temp);
);Re: 다른 열에 특정 값이 포함되어 있으면 열을 값으로 업데이트하세요.- 날짜 값을 문자로 변환하지 마세요.
- 숫자 열(날짜 열)에서는 "." 값이 누락되었음을 나타냅니다.
- 독서를 좀 해야 합니다."JMP 사용" 및 "스크립팅 가이드" 책은 반드시 읽어야 합니다.도움말 풀다운 메뉴에서 찾을 수 있습니다.
도움말==>도서==>JMP 사용
도움말==>도서==>스크립팅 가이드
Re: 다른 열에 특정 값이 포함되어 있으면 열을 값으로 업데이트하세요.고마워요 txnelson.
관련 메모에서 누락된 날짜 항목인 경우 열을 문자로 변환한 다음 스크립트를 실행하고 "."도 수행하는 것이 더 좋습니다. Ismissing()에서 누락된 것으로 해석되는 누락된 열에 나타나는 점, 아니면 그냥 공백이어야 합니까?
Re: 다른 열에 특정 값이 포함되어 있으면 열을 값으로 업데이트하세요.따라서 A열의 값이 누락된 경우 A2열의 값을 A열에 할당하시겠습니까?다른 5개 열도 마찬가지인가요?
그것이 당신이 요구하는 것이라면, A 열에 대해 이 작업을 수행하는 방법은 다음과 같습니다. 나머지 5개 열에 대해서도 반복합니다.
For Each Row(
If( IsMissing(:A), :A = :A2);
If( IsMissing(:B), :B = :B2);
);Re: 다른 열에 특정 값이 포함되어 있으면 열을 값으로 업데이트하세요.나는 유사한 iussue를 가지고 있습니다. 동일해야 하지만 값이 누락되어 다른 열에 있는 ID와 날짜가 있습니다.
6개 열에 대해 누락된 값이 있는 행만 6개 열의 다른 집합의 값으로 바꾸려면 이를 어떻게 적용할 수 있습니까?
Re: 다른 열에 특정 값이 포함되어 있으면 열을 값으로 업데이트하세요.정말 도움이 되었습니다.! 내 용도에도 효과가 있었습니다.! 정말 감사합니다.!
@txnelson 썼다:
Mark의 스크립트를 사용하여 약간의 자유를 얻는 하나의 솔루션은 다음과 같습니다.
For Each Row(
temp=:Mailing Country;
:Mailing Country = If( Is Missing( :Mailing Country ) & Contains( {"AL","AZ"}, :Mailing State ), "USA" ,temp);
);
Re: 다른 열에 특정 값이 포함되어 있으면 열을 값으로 업데이트하세요.고마워요 짐. 완벽하게 작동했습니다.
스크립트를 보내주신 Mark에게 감사드립니다.
Re: 다른 열에 특정 값이 포함되어 있으면 열을 값으로 업데이트하세요.Mark의 스크립트를 사용하여 약간의 자유를 얻는 하나의 솔루션은 다음과 같습니다.
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" );
);
두 경우 모두 사용하기 전에 모든 주에 대한 두 글자 코드를 포함하도록 목록을 확장해야 합니다.