Early Access: The content on this website is provided for informational purposes only in connection with pre-General Availability Qlik Products. All content is subject to change and is provided without warranty.
FindOneOf()는 제공된 문자 집합의 문자 발견 위치를 찾기 위해 문자열을 검색합니다. 검색 집합에서 모든 문자의 N번째 발생 위치가 반환됩니다. 여기서 N은 함수의 선택적 세 번째 매개 변수입니다. 세 번째 매개 변수가 제공되지 않으면 첫 번째 발생 항목이 반환됩니다. 일치 항목이 발견되지 않으면 0이 반환됩니다.
구문:
FindOneOf(text, char_set[, count])
반환 데이터 유형: 정수
인수
인수
설명
text
원래 문자열입니다.
char_set
text에서 검색할 문자 집합입니다.
count
검색할 문자의 발생 위치를 정의합니다. 예를 들어 값이 2이면 두 번째 발생 항목을 검색합니다.
예: 차트 표현식
예
결과
FindOneOf( 'my example text string', 'et%s' )
e가 예 문자열의 네 번째 문자이므로 4를 반환합니다.
FindOneOf( 'my example text string', 'et%s', 3 )
검색이 e, t, % 또는 s 문자 중 하나이고 t이 문자열 예의 위치 12에서 세 번째로 발견되었기 때문에 12를 반환합니다.
FindOneOf( 'my example text string', '¤%&' )
문자열 예에 ¤, % 또는 & 문자가 없으므로 0을 반환합니다.
예 - FindOneOf 기본 사항
개요
데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Example이라는 데이터 테이블에 로드되는 데이터 집합입니다.
데이터 테이블의 한 필드는 Phrase이며, 이 필드에는 처리할 원본 텍스트 문자열이 포함되어 있습니다.
로드 스크립트
Example:
Load *
Inline
[Phrase
Many tiny beads
For a very long time
Has the potential for growth
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.
Phrase
다음과 같이 계산 차원을 만듭니다.
=FindOneOf(Phrase, 'e', 1)
=FindOneOf(Phrase, 'y', 1)
=FindOneOf(Phrase, 'ey', 1)
=FindOneOf(Phrase, 'e', 2)
=FindOneOf(Phrase, 'y', 2)
=FindOneOf(Phrase, 'ey', 2)
결과 테이블
Phrase
FindOneOf(Phrase, 'e', 1)
FindOneOf(Phrase, 'y', 1)
FindOneOf(Phrase, 'ey', 1)
FindOneOf(Phrase, 'e', 2)
FindOneOf(Phrase, 'y', 2)
FindOneOf(Phrase, 'ey', 2)
For a very long time
8
10
8
20
0
10
Has the potential for growth
7
0
7
12
0
12
Many tiny beads
12
4
4
0
9
9
계산된 각 차원에 대해 출력은 각 구에 대한 검색 집합에서 문자가 발생한 위치를 반환합니다. 예를 들어, e 문자의 첫 번째 출현은 각 구에 대해 각각 8, 7 및 12 위치에서 발견됩니다. 각 구에서 e 문자의 두 번째 출현은 20, 12 및 0 위치에서 발견됩니다(찾을 수 없음). 마찬가지로, 각 구에 대해 'e 또는 y' 문자의 첫 번째 발생은 각각 8, 7 및 4 위치에서 발견됩니다. For a very long time 구에서 'e 또는 y'의 첫 번째 출현은 8 위치(e)에서 발견되고, 두 번째 출현은 10 위치(y)에서 발견됩니다.
다음 코드는 로드 스크립트에서 함수를 사용하는 방법을 보여 줍니다.
Example:
Load *, FindOneOf(InputText, SearchFor, Occurrence) AS FindOneOf_Matches
Inline
InputText, SearchFor, Occurrence
my example text string, et%s,1
my example text string, et%s,3
my example text string, ¤%&,1
];
결과 테이블
InputText
SearchFor
Occurrence
FindOneOf_Matches
my example text string
et%s
1
4
my example text string
et%s
3
12
my example text string
¤%&
1
0
예 - FindOneOf 시나리오
개요
이 예에서는 FindOneOf 함수를 사용하여 고객 주문 데이터 집합에서 고객 의견을 분석하고 작업이 필요할 수 있는 주문을 식별합니다. 각 주문에는 고객이 주문에 대한 메모나 주석을 남길 수 있는 CustomerComment 필드가 있습니다. 주석을 분석하면 '!', '@', '#'과 같이 긴급성이나 특별 요청을 나타낼 수 있는 특정 키워드나 문자를 식별할 수 있습니다.
데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Example이라는 데이터 테이블에 로드되는 데이터 집합입니다.
데이터 테이블의 필드는 다음과 같습니다.
TicketID: 티켓의 식별 번호
CustomerComment: 원래 텍스트 문자열
로드 스크립트
Example:
Load * inline [
TicketID, CustomerComment
1, I need this order ASAP!
2, Please confirm my order @12345.
3, Can you update my order?
4, I have a question about #discount.
5, Thank you!
];
FindOneOf 함수의 출력을 스크립트에 로드된 원래 CustomerComment 문자열 값과 비교합니다. !,@,# 값을 사용하여 함수는 주석 문자열에서 해당 문자가 발생하는 위치를 성공적으로 반환했습니다. 마지막 측정값은 조건부 If 문을 사용하여 검색 문자 중 하나를 포함하는 레코드를 식별하고 이를 High Priority로 지정합니다. 검색어 !,@,#이 하나도 발견되지 않으면(예: 행 3) 티켓은 Normal Priority로 분류됩니다.
이 페이지가 도움이 되었습니까?
이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!