For Effective Your Life!!
UNO-WEEKLY


8월 넷째주|


UNO_WEEKLY |UNO_ZEN

이번주 유튜브버전..
how to organize your life?
...
...
...


x20200824_1141_UNOZEN.

UNO_WEEKLY|엑셀-수식과 함수|근무자 배치를 랜덤으로 할수 없을까?
RAND,RANK,INDEX,MATCH,ArrayFormula

지난주의 VBA화일에서
직원의 근무일자스케쥴링을 랜덤으로 배치하는 것을 했었다
그런데, 배열수식등에 내공이 쌓이면,
도전의식이 생긴다..
수식으로 근무일자에 직원들을 배치하는 것을 할수 없을까??
차근차근 생각해 보면서
필요한 함수들을 챙겨서 하나,하나 조립을 해보면
해법이 나온다
단순히 하나의 함수만을 생각하지 않고,
이런,저런 함수들을 조합하여 배열수식으로 입력하면..
좋은 결과물을 볼수 있는 경우가 많다
한번 해보도록 하자



랜덤으로 값을 만들어내는 것은
약방의 감초함수..RAND함수..그리고 이 결과에
순위를 부여할 RANK함수...그리고 RANK함수의 결과를 MATCH함수로
해당셀의 배열요소값으로 찾아서..
이 값을 INDEX함수로 직원명당에서 직원명을 찾는다
RAND함수는 F9계산키를 누르면 랜덤값이 만들어지고
이것을 참조하는 RANK함수..또 줄줄이 연결된 MATCH함수..
또 마지막으로 연결된 INDEX함수가 줄줄이 연동이 되어 자연스럽게
각각의 근무일자셀에 직원명이 랜덤으로 바뀌니..
좋은 해법이 되는 셈이다..

이번 화일에 관련된 참고 유튜브동영상
3,랜덤으로 근무순서 배치하기
2,함수에서 IFS함수로 그리고 SWITCH함수로..
1,IF함수와 IFS함수

x20200824_1141_RandomSchedulingArrayFormula.

UNO_WEEKLY|VBA_Advanced-
InputBox함수를 사용한 간단한 퀴즈
Collection,InputBox,Split,Do~Loop,GoTo,Err.Clear

VBA는 사용자와 대화를 위한 인터페이스로는 딱 두개가 있다
하나는 단순한 정보를 보여주는 MsgBox함수,
그리고 다른 하나는
사용자로 부터 정보를 받는 InputBox함수..
VBA를 처음 배울때 InputBox를 사용한 간단한 퀴즈를 만들어 보게 된다
그것을 해보도록 하자…
InputBox대화상자의 [취소]버튼은 아무 작동도 하지 않는다
그냥 빈문자열정보를 결과값으로 전달한다
그러니 , 취소라는 의미는 없는 좀 멍청한 대화상자이다
이것은 아주 초창기에 만들어진 것이라서..그냥 그렇게 멍청하지만
사용자로 부터 정보를 받는데는 지장없고
코딩에서 제어할때 취소버튼이던 무엇이던 결과값이 빈문자인지
아닌지를 확인하여 처리하면 된다



순환문중 Do~Loop While 논리식, Do~Loop Until 논리식
이것은 논리식의 결과가 True일때 혹은
논리식의 결과가 True가 될때까지 라는 순환문을 제어하는 Until이나 While을
붙여서 사용했다..
그런데 While True 를 사용하면 논리값이 그냥 true로
주었으니 무한 순환을 시키는 셈이다...그리고 순환문 중간에서 제어하고
순환문을 빠져 나와야 한다
그런데 실은 Do ~ Loop 라고 하고 논리식자체를 주지 않아도
그냥 무한 순환을 시키는 것이다, 그러니 중간에서 제어를 하고
빠져나오는 구문을 사용한다면 그냥 Do ~ Loop을 사용하는 것도 괞찮다
그리고 본문중에서 Goto문으로 순환을 일으키는 것도
순환에 대한 개념을 충분히 갖추는데 도움이 될 것이다

참고동영상
엑셀로 코딩을 배우자_82_간단한 퀴즈를 InputBox함수로 만들고, 에러를 일부러 발생시켜서 활용하는 경우


x20200824_1141_InputBoxGotoDoLoop.