IF로 특정 이름 검색안녕하세요
새 열을 설정했습니다." 핀 이름 "
PIN 번호를 추가하고 싶습니다.
함유하고 있는 경우를 의미합니다. gp_0 "열에 테스트 이름 " 그것은해야한다 GP_0
또는 포함된 경우 gp_1 테스트 이름에는 다음과 같아야 합니다. GP_1 열에서 "핀 이름"
또는 포함된 경우 gp_11 테스트 이름에는 다음과 같아야 합니다. "핀 이름" 열의 GP_11
나는 대본을 썼다.
열(dt,"PIN_NAME") << 수식( If ( 포함( :TEST_NAME, "gp_0" ), "GP_0",
If( 포함( :TEST_NAME, "gp_1" ), "GP_1",
If( 포함( :TEST_NAME, "gp_10" ), "GP_10",
If( 포함( :TEST_NAME, "gp_11" ), "GP_11",
If( 포함( :TEST_NAME, "gp_12" ), "GP_12" ))))));
하지만 테스트 이름에 gp_11이 있어도 수식에 GP_1이 추가되는 것을 볼 수 있습니다.
내 질문은 검색을 위해 정확한 이름을 어떻게 설정할 수 있습니까?

자동화 및 스크립팅윈도우Re: IF로 특정 이름을 검색하세요.JMP는 조건이 충족되자마자 If() 루프를 종료합니다.기술적으로 "gp_11"에는 "gp_1"이 포함되어 있습니다....
다음과 같이 If() 루프를 거꾸로 다시 작성할 수 있습니다.
If(
Contains( :TEST_NAME, "gp_12" ), "GP_12",
Contains( :TEST_NAME, "gp_11" ), "GP_11",
Contains( :TEST_NAME, "gp_10" ), "GP_10",
Contains( :TEST_NAME, "gp_1" ), "GP_1"
);
하지만 확인해야 할 GP가 많으면 시간이 너무 오래 걸리고 번거로워질 것입니다.아마도 이와 같은 것이 당신에게 도움이 될 것입니다.
Uppercase( Regex( :TEST_NAME, "io_(gp_\d+)", "\1", IGNORE CASE ) );
"io_" 다음에 "gp_" 및 임의의 숫자가 오는 것을 찾습니다."IGNORE CASE"가 켜져 있으므로 "GP"도 Regex를 충족합니다.원하는 동작이 아니라면 해당 부분을 생략하세요.
Re: IF로 특정 이름을 검색하세요.이 코드를 작업했는데 작동하는 것 같고 꽤 빠르게 작동합니다.
names default to here(1);
dt=current data table();
dt << new column("PIN_NAME", character);
theRows = dt << get rows where( contains(:TEST_NAME,"_gp_"));
for each( {fndRow,i}, theRows,
:PIN_NAME[fndRow] = word(1,uppercase(substr(:TEST_NAME[fndRow],contains(:TEST_NAME[fndRow],"_gp_")+1)),"[]")
);