[엑셀] 셀에 입력한 문자열 값을 참조하여 계산하기 : EVALUATE

반응형

특정 셀 값에 계산식을 넣으면 그 옆에는 자동으로 계산된 산출값이 나온다면 얼마나 좋을까?
엑셀을 사용하면서 늘 해보는 고민이다.
그것을 가능하게 하는 것으로 엑셀에는 evaluate라는 함수가 있다.
하지만 그 사용이 많이 불편하다.
그냥 일반 함수값처럼 쉽게 사용하는 방법은 없을까?

예를들어 왼쪽 그림처럼
셀A1에 123+456이라고 입력하면,
셀B1에는 자동으로 셀A1이 계산된 579가 입력되도록
하는 것이다.



이런 고민을 해결해주는 것이 사용자함수를 정의해서 쓰는 방법이다.






우선 엑셀에서 [Alt] + [F11] 키를 누르면 아래와 같이 Microsoft Visual Basic 창이 뜬다.









삽입(I) > 모듈(M)을 선택하자.
모듈(Module) 창이 뜨면 왼쪽 그림과 같이 입력한다.








 

  Function Eval(strRefer As String)
    Eval = Evaluate(strRefer)
  End Function

※ 위 strRefer는 임의로 정의한 문자열입니다. 다른 표현(예, strWord, ABCDEFG 등..) 문자로 대체해도 무방합니다. ^^

자 이제 eval이라는 새로운 함수가 생성되었다.
설정창을 닫고 셀B1에 아래와 같이 입력해보자.

=eval(A1)

사용방법은 일반적인 수식을 사용하는 것과 다르지 않다.







단, 주의할 것은 보안설정이 높게 되어 있다면 이 매크로가 작동 안할 수도 있다.
이때는 도구(T) > 옵션(O) > 보안 > 매크로 보안(S)에서 보안수준(S)보통(M) 이하로 낮추어주면 된다.

 

반응형
  • 2009.01.06 11:16 ADDR 수정/삭제 답글

    비밀댓글입니다

    • Favicon of https://welfareact.net BlogIcon 도연 道衍 2009.01.06 18:34 신고 수정/삭제

      도움이 되셨다니 다행입니다. ^^
      저도 인터넷을 통해서 이래저래 줏어들은 정보들이라..
      하나하나 배워가고 있습니다. ^^

  • 심드렁 2010.05.18 11:55 ADDR 수정/삭제 답글

    저도 좋은정보 잘 배워갑니다~
    정말 많은 도움이 되었습니다, 감사합니다~

  • 감사감사 2010.10.08 17:07 ADDR 수정/삭제 답글

    정말 좋은 정보네요. 간단하고... 잘 보고 갑니다~

  • 스톤 2011.10.26 17:08 ADDR 수정/삭제 답글

    많이 도움됐습니다 .감사합니다.

  • hee 2014.08.05 11:13 ADDR 수정/삭제 답글

    evaluate가 안되서 검색하다 보게되었는데. 이렇게하니 되네요.
    감사합니다!