본문 바로가기
리뷰/코딩

[EXCEL] Find / Substitute / LEFT / MID / RIGHT

by 파리주걱 2022. 2. 9.

연구동향 서칭 중 발견한 함수 사용방법 기록

(Caltech의 XXX Lab에 있는 Publish 목록을 복붙한 결과물이다.)

 

목표 : 텍스트에서 논문제목 / 저자 / 저널 구분

대상 Text :

 
Control barrier functions: Theory and applications. Ames, A. D; Coogan, S.; Egerstedt, M.; Notomista, G.; Sreenath, K.; and Tabuada, P. In 2019 18th European Control Conference (ECC), pages 3420–3431, 2019. IEEE
Hierarchical and Safe Motion Control for Cooperative Locomotion of Robotic Guide Dogs and Humans: A Hybrid Systems Approach. Hamed, K. A.; Kamidi, V. R; Ma, W.; Leonessa, A.; and Ames, A. D IEEE Robotics and Automation Letters, 5(1): 56–63. 2019.
Model-Based Adaptive Control of Transfemoral Prostheses: Theory, Simulation, and Experiments. Azimi, V.; Shu, T.; Zhao, H.; Gehlhar, R.; Simon, D.; and Ames, A. D IEEE Transactions on Systems, Man, and Cybernetics: Systems. 2019.
Dynamic walking with compliance on a cassie bipedal robot. Reher, J.; Ma, W.; and Ames, A. D In 2019 18th European Control Conference (ECC), pages 2589–2595, 2019. IEEE

 

구현 :

 

1. 논문제목 구분 : 제목의 끝에는 "."가 있다.

a. 첫 번째 '.' 찾기

FIND(find_text, within_text, [start_num])

: find_text를 within_text에서 위치를 찾되 (within_text의 start_num번째 문자열부터 찾는다)

=FIND(".", A1)

b. 찾은 위치까지 Text 출력하기 :

LEFT(text, [num_char])

: text 왼쪽에서부터 num_char개의 문자열 출력

b의 결과

=LEFT(A1, FIND(".", A1))

 

 

 

2. 저자명 출력 : 저자 시작/마지막 위치 확인

a. 저자 시작위치 찾기 : 논문제목 이후에 시작한다.

= FIND(".", A1) + 2

b. 저자 마지막 위치 찾기 : 저자명 사이에는 ";"로 구분한다 + 맨 마지막 저자는 "."으로 끝난다.

b-1. 맨 뒤에 있는 ";"를 찾는다 : ";"의 개수를 세고 -> 위치를 찾는다

LEN(text)

: text의 문자열 길이

SUBSTITUTE(text, old text, new text, [instance_num])

: text에서 old text를 new text로 치환하되, (instance_num번째를 치환한다)

 

= LEN(A1) - LEN( SUBSTITUTE(A1,";","" )

(모든 ";"를 삭제하면 줄어든 길이만큼 ";"가 있음)

b-2. 맨 뒤의 ";"를 "|"로 치환한다.

= SUBSTITUTE(A1, ";", "|", LEN(A1) - LEN(SUBSTITUTE(A1,";","")))

b-3. 치환된 "|"의 위치를 찾는다

= FIND("|", SUBSTITUTE(A1, ";", "|", LEN(A1) - LEN(SUBSTITUTE(A1,";",""))))

b-4. 치환된 "|"의 위치부터 "."을 찾는다.

= FIND(".", A1, FIND("|", SUBSTITUTE(A1, ";", "|", LEN(A1) - LEN(SUBSTITUTE(A1,";","")))))

b-5. 찾은 위치에서 예외를 맞춰준다

= FIND(".", A1, FIND("|", SUBSTITUTE(A1, ";", "|", LEN(A1) - LEN(SUBSTITUTE(A1,";",""))))) + 2

c. 이름을 출력한다.

MID(text, start_num, num_char)

: text에서 start_num번째 문자열부터 num_char개수만큼의 문자열을 출력한다

- text : A1

- start_num : 2-a) 참고

FIND(".", A1) + 2

- num_char : b-5 참고

FIND(".", A1, FIND("|", SUBSTITUTE(A1, ";", "|", LEN(A1) - LEN(SUBSTITUTE(A1,";",""))))) + 2

- FIND(".",A2)+2

b의 결과

 

=MID(A2, FIND(".",A2)+2,

FIND(".",SUBSTITUTE( A2,";","|",LEN(A2)-LEN(SUBSTITUTE(A2,";",""))),

FIND("|",SUBSTITUTE(A2,";","|",LEN(A2)-LEN(SUBSTITUTE(A2,";","")))))-FIND(".",A2)+2)

 

 

3. 나머지 출력 : 오른쪽에서부터 저자의 마지막 위치 이후를 출력

a. 저자의 마지막 위치

FIND(".",SUBSTITUTE( A2,";","|",LEN(A2)-LEN(SUBSTITUTE(A2,";","")))

b. 오른쪽에서 개수 구분

LEN(A2) - FIND(".",SUBSTITUTE( A2,";","|",LEN(A2)-LEN(SUBSTITUTE(A2,";","")))

c. 출력

RIGHT(text, [num_char])

: text 오른쪽에서부터 num_char개의 문자열 출력

 

text : A1

[num_char] : 전체길이 - 저자명의 마지막 위치(2의 c 참고)

 

c의 결과 :

=RIGHT(A1,

LEN(A1)-FIND(".",A1,FIND("|",SUBSTITUTE(A2,";","|",LEN(A2)-LEN(SUBSTITUTE(A2,";","")))))-1)

 

 

 

결과는 아래와 같다

 
제목
저자
학회/연도 등
Control barrier functions: Theory and applications
Ames, A. D; Coogan, S.; Egerstedt, M.; Notomista, G.; Sreenath, K.; and Tabuada, P. In
In 2019 18th European Control Conference (ECC), pages 3420–3431, 2019. IEEE
Hierarchical and Safe Motion Control for Cooperative Locomotion of Robotic Guide Dogs and Humans: A Hybrid Systems Approach
Hamed, K. A.; Kamidi, V. R; Ma, W.; Leonessa, A.; and Ames, A. D
D IEEE Robotics and Automation Letters, 5(1): 56–63. 2019.
Model-Based Adaptive Control of Transfemoral Prostheses: Theory, Simulation, and Experiments
Azimi, V.; Shu, T.; Zhao, H.; Gehlhar, R.; Simon, D.; and Ames, A. D
D IEEE Transactions on Systems, Man, and Cybernetics: Systems. 2019.
Dynamic walking with compliance on a cassie bipedal robot
Reher, J.; Ma, W.; and Ames, A. D
D In 2019 18th European Control Conference (ECC), pages 2589–2595, 2019. IEEE

 

제목, 주저자, 연도 및 학회를 구분할 목적이라 이정도면 대충 충분하다.

 

더 자세히 구분할 수 있을지도 의문이고, 필요가 없어서 여기까지만 하려 한다.

 

 

 

끝.

 

 

 

(복잡하다. 나중에 정리할래..)

 

댓글