열 수식에서 "for 루프"를 사용할 수 있습니까?안녕 모두,
이 두 작업(새 열 생성 및 ForLoop 실행)을 하나로 결합할 수 있는 방법이 있습니까?
열에서 고객 ID를 반복한 다음 어느 시점에서 변경되고 두 번째 ID는 계속 반복되고 세 번째 ID는 계속 반복됩니다. Unq_Id라는 새 열을 만들고 싶고 Customer_Id가 변경될 때까지 해당 값이 비어 있어야 합니다. 아래 스크립트에서 이 작업을 수행할 수 있지만 더 좋은 방법이 있는지 궁금합니다. 즉, Column Formula 내에서 루프를 실행하거나 이와 유사한 것입니다!
dt << New Column( “Unq_ID”, Numeric, Continuous, Set Each Value() );
dt << Sort( by( :Customer_ID ), Order( Ascending ), Replace Table( 1 ) );
For( i = 1, i <= N Rows( dt ), i++,
If(
:Customer_ID[i] == :Customer_ID[i + 1]
,
:Unq_ID[i] = :Customer_ID[i]
)
);
어떠한 제안?
고마워, 하리
스크립팅Re: 열 수식에서 "for 루프"를 사용할 수 있습니까?예, 두 번째 유형의 솔루션을 찾고 있었습니다.
감사.
Re: 열 수식에서 "for 루프"를 사용할 수 있습니까?다음은 원하는 열을 만드는 몇 가지 방법입니다.

Names Default To Here( 1 );
dt = New Table( "custIDs",
New Column( "Customer_ID", character, values( {"c1", "c1", "c1", "c2", "c2", "c3", "c3", "c3"} ) )
);
dt << New Column( "Or like this" );
counter = 0;
For( i = 1, i <= N Rows( dt ), i++,
If(
i == N Rows( dt ),
counter++;
:or like this[i] = counter;,
:Customer_ID[i] != :Customer_ID[i + 1],
counter++;
:or like this[i] = counter;
)
);
// or
dt << New Column( "or like this using formula",
formula(
x = .;
If( Row() == 1, counter = 0 );
If( :Customer_ID != Lag( :Customer_ID, -1 ) | Row() == N Rows( Current Data Table() ),
counter++;
x = counter;
);
x;
)
);
Re: 열 수식에서 "for 루프"를 사용할 수 있습니까?안녕 넬슨, 나는 그것에 대해 생각했지만 그것은 내가 찾고 있는 것이 아닙니다.
제공한 스크립트는 아래와 같은 내용을 제공합니다. 그리고 내가 찾고 있는 것은 빨간색 트링글 안에 있습니다.

또한 c1, c2를 넣는 것보다.... 1, 2, 3... 을 넣는 방법은 변화가 있는 즉시 1씩 증가하는 일종의 카운터입니다.
도움이 필요하세요?
Re: 열 수식에서 "for 루프"를 사용할 수 있습니까?다음은 한 가지 방법입니다.

Names Default To Here( 1 );
dt = New Table( "custIDs",
New Column( "Customer_ID",
character,
values( {"c1", "c1", "c1", "c2", "c2", "c3", "c3", "c3"} )
)
);
For( i = 1, i <= N Rows( dt ), i++,
If( i == 1,
dt << New Column( Char( :Customer_ID[i] ), character );
Column( dt, :Customer_ID[i] )[i] = :Customer_ID[i];
,
If( :Customer_ID[i] != :Customer_ID[i - 1],
dt << New Column( Char( :Customer_ID[i] ), character )
)
);
Column( dt, :Customer_ID[i] )[i] = :Customer_ID[i];
);