가끔 엑셀로 랜덤 함수로 뭔가를 할 수 있지 않을까 생각해 볼 때가 있다. 그래서 얼마전에 랜덤으로 문장을 무작위로 만들어 내야 할 일이 있었을 때 나름대로 연구를 해서 이른바 랜덤 엑셀이라는 것을 만들어 보았다. 대략적으로 볼 때 세 가지 종류의 시트로 구성되어 있다. 이해를 돕기 위한 예제 파일은 포스팅 마지막에 위치해있다.
핵심 함수는 다음과 같다.
=INDEX('랜덤소스시트'!A:A,RANDBETWEEN(1,9),1)
일단은 메인 시트(2.랜덤 결합 시트)
이 파일은 크게
1.랜덤 완성
2.랜덤 결함
3.랜덤 소스
의 시트로 구성되어 있다.
즉, 3을 2에서 한 시트에 모으고, 그것을 문장의 형태로 1에서 구현해 내는 것이다.
대부분의 랜덤 함수는 이 2.랜덤결합 시트에서 사용된다.
1.랜덤 완성 시트에서는 2.랜덤결합에서 출력된 문장을 하나의 문단으로 합치는 것뿐이다.
좀 번거롭기는 하지만 이것이 내 능력의 한계였다.
근데 사실 함수는 연구해서 만들어내면 되는 일인데
더 어려운 것은 랜덤 함수의 소스로 사용된 문장을 만들어내는 게 어렵다.
즉 풍부한 어휘를 가지고 어디에나 어울릴만한 공기 같은 문장을 지어내는 게 정말로 어렵다.
3.랜덤 소스 시트들
이처럼 3.랜덤 소스에 해당하는 시트에는
각각의 문장 역할을 하는 비스무리한 내용들이 상이한 표현으로 들어가 있다.
이 표현들이 풍부하면 풍부할 수록 더욱 다채로운 랜덤 결과물이 나올 것은 당연하다.
다시 2.랜덤 결합 시트
자 이제 랜덤 결합의 꽃이라 할 수 있는 INDEX, RANDBETWEEN 함수를 살펴보자.
사실 나도 어쩌다가 완성시킨 것이기 때문에 정확한 작동원리는 알 수 없다.
그냥 한 번 만들어 놓고 필요할 때 다시 찾아서 쓰는 수준에 불과하다.
구조는 이렇다.
=INDEX('랜덤소스시트'!A:A,RANDBETWEEN(1,9),1)
해석을 하자면, 랜덤소스시트에 있는 A1셀~A9셀 중에서 하나만 랜덤으로 골라서(RANDBETWEEN) 표시해라(INDEX)라고 이해할 수 있을 것 같다. 정확한지는 사실 나도 모르겠다. 인덱스 함수가 엄청 유용하다는 말만 들었고, 그게 정확히 어떤 기능을 하는지 잘 모르겠다.
하여간 랜덤소스가 되는 시트마다 소스의 개수가 달라진다면 그 개수에 따라서 저 숫자 9를 바꿔줘야 한다.
문장의 샘플이 9개라면 9지만, 7개라면 7이 되어야 한다.
문장 샘플에 따라서 숫자가 변하는 걸 확인하시라.
마지막으로 1.랜덤완성
이제 랜덤결합 시트에서 출력된 문장들을 랜덤 완성 탭에서 합쳐주는 작업만 남았다.
여기서는 그냥 단순하게 =을 입력해주고 랜덤결합 시트에 있는 셀들을 하나하나 &로 연결해주기만 하면 된다.
그런데 이게 말이 쉽지 처음에는 엄청 헷갈리고 눈이 핑핑 돌아간다.
어쩌면 이것보다 더 쉬운 방법이 있을텐데 내가 모르고 있는 것이리라는 생각이 든다.
엑셀의 세계는 참 무궁무진한 것 같다.
예제파일 첨부한다.
'컴퓨터 인터넷' 카테고리의 다른 글
Kcar 어플리케이션이 뭔가 했더니 SK엔카직영에서 바뀐 거네요 (0) | 2018.10.02 |
---|---|
티스토리 모바이 어플리케이션 포스팅 에러(사진등록 오류) 문제 발생 (0) | 2018.08.23 |
아이피타임 미니3(iptime mini3) 공유기 고정IP 설정 후기(모바일 수동업그레이드 방법) (0) | 2018.08.14 |
구글 애널리틱스(Google analytics)에서 구글 애드센스 실적 확인하기 (0) | 2018.08.10 |
티스토리 블로그에 네이버 애널리틱스 연결하게(플러그인 기능으로 손쉽게) (0) | 2018.08.09 |
댓글