두 개의 문자열 결합안녕하세요,
다음 형식의 문자열을 포함하는 2 개의 열이 있습니다.
문자열 1 = 1.11; 0; 3; 0; 5
문자열 2 = 0; 2.2; 0; 4; 0
참고 1 : 두 문자열 모두 동일한 수의 ";"을 포함합니다. (그러나 길이가 반드시 같지는 않습니다).
참고 2 : 두 문자열은 교대로 위치에 0이 있습니다.
0없이 두 열을 병합 한 결과 인 새 열 (string3)을 만들고 싶습니다. 위의 예 : 1.11; 2.2; 3; 4; 5
따라서 string3은 동일한 수의 ";"을 가져야합니다. string1 및 string2로, ";"사이의 모든 용어를 포함해야합니다. 0이없는 순서대로.
수식 만 사용하여 수행 할 수있는 방법이 있습니까 (jsl 스크립팅없이)?
또는 jsl로 수행하는 방법이 있습니까?
첨부 파일을 참조하십시오.
감사,
요탐
데이터 테이블스크립팅Re : 두 개의 문자열 결합다음은 작동 할 공식입니다.새 수식 열이있는 새 데이터 테이블을 첨부했습니다.
w = 1;
newString = "";
While( Word( w, :string1, ";" ) != "",
If( newString != "",
newString = newString || ","
);
If( Word( w, :string1, ";" ) != "0",
newString = newString || Word( w, :string1, ";" ),
newString = newString || Word( w, :string2, ";" )
);
w++;
);
newString;
Re : 두 개의 문자열 결합안녕하세요. -큰 도전이 될 것 같아요.
- 문자열의 오류를 포착하고 처리하는 방법 (숫자가 아님, 일치하지 않는 0, 길이가 같지 않음)
- 1E6 세미콜론을 빠르게 만드는 방법
편집 : JMP 16 사용 각각을 위해 고리:
string1 = "1;0;2;0;0;8;0";
string2 = "0;1;0;3;5;0;13";
result = "";
For Each( {{w1, w2}, idx}, across( Words( string1, ";" ), Words( string2, ";" ) ),
result ||= (If( idx > 1, ",", "" ) || If( w1 == "0", w2, w1 ))
);
result;"1,1,2,3,5,8,13"
Re : 두 개의 문자열 결합환상적입니다.
감사!
Re : 두 개의 문자열 결합감사!
불행히도 현재 JMP16은 아직 없지만이 솔루션은 확실히 매우 우아해 보입니다!
Re : 두 개의 문자열 결합동안 헉헉 과 안녕하세요. 몇 가지 흥미롭고 유용한 옵션을 제공했습니다. 상황을 올바르게 이해했다면 루프없이 공식으로 수행 할 수 있습니다.
다음은 처음에는 그림으로, 그리고 나서 JSL (공식 편집기에 붙여 넣을 수 있음)에서 사용한 공식입니다.

If( !Is Missing( :string1 ) & !Is Missing( :string1 ),
string1list = Words( :string1, ";" );
string2list = Words( :string2, ";" );
Concat Items( string1list[Loc( string1list, "0" )] = string2list[Loc( string1list, "0" )], ";" );
,
""
)
이것은 말() 문자열을 목록으로 변환하는 함수. 그것은 Loc () 함수는 string1에서 0의 위치 행렬을 반환하고이를 string1list (할당의 왼쪽) 및 string2list (해당 할당의 오른쪽)에 대한 인덱스로 사용합니다. 마지막으로 Concat 항목 () 함수는 목록을 다시 세미콜론으로 구분 된 문자열로 변환합니다.
이 중 혼란 스럽거나 이해가되지 않는 경우 알려 주시면 추가로 설명하겠습니다.