Windows/엑셀(MS excel)

엑셀 한국어 어절의 마지막 음절 확인하여 조사 자동생성.

공시탈출넘버원 2025. 3. 31. 23:20

은/는, 이/가, 을/를, 와/과  라는 조사들을 내가 일일히 하지않고, 엑셀프로그램에서 알아서 붙여주는 기능을 만들고 싶어서 만들어보았다. 1차 설계는 지피티가 해줬고 내가 문제있는 부분만 마무리지었다.

 

  1. 한글의 유니코드 값 확인: 한글 음절은 유니코드에서 고정된 범위 내에 있으며, 종성을 확인하려면 음절의 유니코드 값을 사용해야 합니다.
  2. 종성 여부 계산: 유니코드 값에서 마지막 1비트(종성의 유무에 해당)를 이용하여 종성이 있는지 없는지를 알 수 있습니다.

 

 

함수 예제는 아래와 같다. c6은 챗지피티가 준 해설이다.

=IF(UNICODE(RIGHT(A1,1))<44032,"", IF(MOD(UNICODE(RIGHT(A1,1))-44032,28)=0,"종성x일때","종성o일때"))

 

 

기타 정보

CODE(문자1개)를 쓰면, 한국어엑셀은 cp949로 인코딩한 숫자를 반환한다. 대체로 이 값은 불규칙하므로, 써먹을 방법이 마땅히 없다. 알트입력법 찾을때나 쓸만하려나?

UNICODE(문자1개)로 변환해야 규칙성 있는 값을 얻기가 쉬울 것이다. 아님말고.

 


숫자가 나올때도 비슷하게 응용할 수 있다.

  • 0(영/공), 1(일), 3(삼), 6(륙/육), 7(칠), 8(팔)
  • 2(이), 4(사), 5(오), 9(구)
  1. 숫자인지 판별해준다. _0~9의 (유니+)코드값 범위에 해당하는지 확인하는 방식
  2. 숫자가 맞다면 그것을 10으로 나눈 나머지가 {2,4,5,9} 라는 집합에 정확히 포함되는지 확인하여
  3. 포함되면(종성x) "가"를 반환하고, 포함되지 않으면(종성o) "이"를 반환한다.
=IF(AND(CODE(A1)>47,CODE(A1)<58),IF(ISNUMBER(MATCH(MOD(A1,10),{2,4,5,9},0)),"가","이"),"숫자아님")