두 셀의 특정 값을 기반으로 두 셀 사이의 텍스트를 채우거나 바꾸는 방법안녕 모두,
두 셀의 패턴/텍스트를 기반으로 두 셀 사이의 셀 값을 채우거나 바꾸려고 합니다. 첨부된 이미지와 데이터를 확인하시기 바랍니다.
어떤 도움이든, 감사합니다. - HSS

스크립팅Re: 두 셀의 특정 값을 기준으로 두 셀 사이의 텍스트를 채우거나 바꾸는 방법몇 가지 질문:
- 현재 상태 코드 열의 트리거는 정적입니까, 아니면 동적입니까?
- GUI 솔루션 또는 스크립팅 솔루션을 찾고 계십니까?
Re: 두 셀의 특정 값을 기준으로 두 셀 사이의 텍스트를 채우거나 바꾸는 방법안녕 제드,
Ques - 현재 상태 코드 열의 트리거는 정적입니까, 아니면 동적입니까?
답변- 다이나믹.
Ques - GUI 솔루션 또는 스크립팅 솔루션을 찾고 계십니까?
답변 - 스크립팅.
감사
Re: 두 셀의 특정 값을 기준으로 두 셀 사이의 텍스트를 채우거나 바꾸는 방법안녕 @HSS ,
빈 열을 무엇으로 채워야 하는지에 대한 예를 제공할 수 있습니까? Device_State 열의 빈 셀을 일종의 텍스트로 채우려는 것처럼 들리지만 이미지에서 텍스트가 무엇인지 명확하지 않았습니다. 또한 0암페어, 0.0001암페어 등 적용된 현재 설정에 따라 해당 텍스트를 변경하려는 것처럼 들립니다. 맞습니까?
Current_State_Code 열의 정보가 Device_State 열로 들어가는 텍스트에 어떻게 영향을 미치기를 원하는지 명확하지 않습니다. 실제로 그런 경우입니다.
감사!,
DS
Re: 두 셀의 특정 값을 기준으로 두 셀 사이의 텍스트를 채우거나 바꾸는 방법
어떤 방식으로 동적입니까? 한 가지 예를 들었기 때문에 변경 사항을 다루는 솔루션을 생각하기 어렵습니다.
Re: 두 셀의 특정 값을 기준으로 두 셀 사이의 텍스트를 채우거나 바꾸는 방법안녕,
데이터 테이블 또는 이미지의 4번째 열인 "Required-Current_State_Code" 열을 만들었습니다.
"Contains()" 명령을 사용하여 세 번째 열을 만들었습니다. 빈 셀의 시작 및 끝 값을 제공할 수 있습니다.
IF( 포함( :Current_State_Code, "amp" ), :Required-Current_State_Code = :Current_State_Code, )
그런 다음 누락된 값을 채웁니다. 'A = 0 amp'와 'B = 0.0001 amp' 사이에 "초기화"를 채우는 것과 같습니다. 이러한 채우기 값(초기화, 램프, 열 등)은 다른 테이블에서 가져옵니다. 그러나 'A = 0 amp'와 'B = 0.0001 amp' 사이의 행 수는 고정되어 있지 않습니다. 이 전류 값도 고정되지 않습니다. 'B = 0.01amp' 일 수 있습니다. 다만 'amp'가 들어가야 한다는 점입니다.
이것이 도움이 되길 바랍니다.
Re: 두 셀의 특정 값을 기준으로 두 셀 사이의 텍스트를 채우거나 바꾸는 방법동적 수단 -
'A = 0 amp'와 'B = 0.0001 amp' 사이의 행 수입니다.
사실 'A = 0 amp' 및 'B = 0.0001 amp'도 고정되어 있지 않으며 'AA = 0 amp' 및 'BB = 0.8 amp'일 수 있습니다. 앰프'. 채워야 할 값은 다른 테이블에서 가져옵니다.
주어진 데이터 세트에서,
'A = 0 amp'와 'B = 0.0001 amp' 사이에 "초기화"를 채웁니다.
'B = 0.0001 amp'와 'C = 0.001 amp' 사이에 "램프"를 채웁니다.
등등.
이것이 도움이 되길 바랍니다.
감사
Re: 두 셀의 특정 값을 기준으로 두 셀 사이의 텍스트를 채우거나 바꾸는 방법제공된 예제 데이터를 기반으로 하여 우리는 사이를 알 필요가 없으며 시작점만 알 필요가 있습니다. 정확히 정의할 수 없기 때문에 초기화 따라서 이 예에서는 Device_States에 대해 행 번호를 사용하지 않고 행 번호를 사용합니다.
Names Default To Here(1);
dt = Open("$DOWNLOADS/Sample_Data.jmp");
state_rows = Loc(dt[0, "Device_State"], "Applied_Current");
states_list = Transform Each({val}, As List(state_rows), Char(val));
/* we don't know how to define values which are to be mapped so we will just use row numbers */
current_states = Associative Array(dt[state_rows, "Current_State_Code"], states_list);
new_col = dt << New Column("State", Character, Nominal);
new_col << Set Each Value(
As Constant(
state = "";
ret_val = "";
);
If(:Device_State == "Applied_Current",
ret_val = :Current_State_Code;
state = current_states[ret_val];
,
ret_val = state;
);
ret_val;
);

Re: 두 셀의 특정 값을 기준으로 두 셀 사이의 텍스트를 채우거나 바꾸는 방법내가 올바르게 이해하고 있다면 이와 같은 것이 작동 할 수 있습니다. 3행의 목록을 매번 올바른 목록으로 변경해야 하며 현재 루프가 마지막 그룹화에 대해 수행할 작업을 모르기 때문에 Try 섹션이 있습니다. 이것이 올바른 접근 방식이라면 더 나은 조건을 사용하여 Try 섹션의 필요성을 제거할 수 있습니다. 샘플 데이터 테이블 작업을 위한 아래 스크립트:
dt = Data Table( "Sample_Data" );
lstStates = {"Initialization", "Ramp", "Heat", "Other"};
lstLocs = dt << Get Rows Where( Contains( :Current_State_Code, "amp" ) );
Try(
For Each( {i, j}, lstLocs,
For Each Row(
dt,
If( (Row() > lstLocs[j] & Row() < lstLocs[j + 1]),
:Current_State_Code = lstStates[j];
)
)
)
);
Re: 두 셀의 특정 값을 기준으로 두 셀 사이의 텍스트를 채우거나 바꾸는 방법@Jed_Campbell
휴가 중이라 답장이 늦어서 죄송합니다. 네, 저에게 도움이 될 것입니다.
고마워, HSS
Re: 두 셀의 특정 값을 기준으로 두 셀 사이의 텍스트를 채우거나 바꾸는 방법@jthi
휴가중이라 답변이 늦어서 죄송합니다. 이것은 더 일반화 된 방법으로 보입니다. 나는 이런 식으로 무언가를 구현하려고 시도하거나 사용할 것입니다. @Jed_Campbell 의 솔루션입니다.
고마워, HSS