1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

데이터가 있을 경우 수식 넣기??

VBA 조회 수 3059 추천 수 0 2012.03.20 10:56:31

원래는 셀에다가

 

=IF(AM3<0,"가치하락",IF(AND(AD3<0,AF3<>AG3),향상유형1,IF(AD3>0,향상유형2,IF(AND(AD3=0,AF3<AG3),향상유형3,IF(AND(AD3<0,AF3=AG3),향상유형4,"")))))

 

이런 수식을 넣어서 사용했는데요, 이걸 VBA로 교체할 수 있을까요??

 

참조되는 3행부터 데이터가 무한대로 갈 수 있기때문에...데이터 행이 늘어날때마다 드래그하면 실수를 많이 하게 되어서 문의해봅니다.

 

감사합니다.


댓글 '4'

profile

[레벨:30]아별

2012.03.20 11:29:44
*.104.126.21

엑셀 파일을 올려주세요..

일단 IF문이 너무 복잡해보이네요.. VLOOKUP등으로 대체할 수 있을지 봐야할 것 같구요..

음.. VBA로 대체하는게 좋은 방법은 아닌 것 같습니다.

데이터 행이 늘어날때마다 드래그해서 자동채우기 하지 마시고.. 범위를 선택하고 Ctrl+D를 눌러서 자동채우기 하세요..

맨 위의 셀을 아래쪽으로 채워줍니다.

 

엑셀 2007이상 버전이시라면..

표를 사용하시면 데이터가 늘어날때마다 수식이 자동으로 채워집니다.

 

결국은 엑셀 파일을 올려주셔야 딱 맞는 답변이 가능하겠네요..

 

감사합니다.

[레벨:1]아우릭

2012.03.20 13:10:04
*.98.14.90

A열에 데이터가 있을 경우 수식을 적용합니다.

BV 열은

=IF(AM3<0,"가치하락",IF(AND(AD3<0,AF3<>AG3),향상유형1,IF(AD3>0,향상유형2,IF(AND(AD3=0,AF3<AG3),향상유형3,IF(AND(AD3<0,AF3=AG3),향상유형4,"")))))

으로 AM, AD,AF,AG 세가지 열의 수치를 비교해서 텍스트를 입력합니다.

BW 열은

=IF(AD3>0,"증가",IF(AD3=0,"동일","절감"))

으로 AD열의 수치가 양수 음수 0 를 판단하여 텍스트를 입력합니다.

이 과정을 셀에 수식을 안남기고 vba로만 처리하고십습니다.

파일은 댓글에 첨부하였습니다.

 

감사합니다.

첨부
profile

[레벨:30]아별

2012.03.20 14:16:49
*.104.126.21

아우릭님..

VBA로 수식을 입력하고.. 수식을 값으로 만드는 방법을 사용했습니다.

굳이.. 각 행별로 VBA로 평가하고 값을 입력할 필요는 없을 것 같네요..


첨부파일을 다운 받으신 다음..

화면 오른쪽에 있는 "유형 평가하기" 버튼을 클릭하시면 유형을 평가해줍니다. (물론 값으로만 남습니다.)

(이름 정의가 외부 파일로 되어 있어서.. MasterCode란 시트를 만들고 이름 정의를 다시 했습니다.)

다운 받기 : 2012.3.20.VBAcla.01-2.xlsm


도움이 되셨기를..



첨부파일에 사용된 VBA 코드입니다.

=> 기준을 A3로 잡고.. A열에 데이터가 무한대로 증가해도 대응할 수 있도록 코드를 작성하였습니다.

     핵심은.. 영역을 설정하는 Range(rngRef, rngRef.End(xlDown)).Offset(0, 73) 코드입니다.

      기준셀부터 기준셀의 맨아래셀까지의 범위를 오른쪽으로 73번 이동시킨 영역.. 

      첨부파일로 본다면.. BV3:BV250입니다. A열의 데이터가 늘어나면 BV의 대상 영역도 같이 늘어납니다.

 

Option Explicit


Sub evaluateType()


    Dim rngRef As Range

    Set rngRef = Range("A3")

    

    With Range(rngRef, rngRef.End(xlDown)).Offset(0, 73)

        .FormulaR1C1 = _

            "=IF(RC[-35]<0,""가치하락"",IF(AND(RC[-44]<0,RC[-42]<>RC[-41]),향상유형1,IF(RC[-44]>0,향상유형2,IF(AND(RC[-44]=0,RC[-42]<RC[-41]),향상유형3,IF(AND(RC[-44]<0,RC[-42]=RC[-41]),향상유형4,"""")))))"

        .Value = .Value

    End With

    

    With Range(rngRef, rngRef.End(xlDown)).Offset(0, 74)

        .FormulaR1C1 = _

            "=IF(RC[-45]>0,""증가"",IF(RC[-45]=0,""동일"",""절감""))"

        .Value = .Value

    End With


End Sub



첨부

[레벨:1]아우릭

2012.03.20 14:49:21
*.98.14.90

감사합니다, 정말 큰 도움이 되었습니다.

 

Formula 로 VBA에서 직접 계산해서 넣는다는것이 되는군요~

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 공지 [공지] 아별닷컴의 엑셀 질문방 폐쇄합니다. 카페 질문방 이용하세요.. imagefile [레벨:30]아별 2015-04-23 57259
422 기타 요청한 항목을 찾을 수 없습니다. (hhttp/1.0 404) _ 외부 연결 끊기, 업데이트하지 않도록 옵션 설정하기 imagefile [6] [레벨:3]월전천넘 2012-09-05 4210
421 엑셀에서 선을 연장하고 싶어요.. [4] [레벨:2]만쥬 2010-12-14 4208
420 아별님 질문이 있습니다. [2] 흑천황 2009-07-16 4208
419 배열수식 배열수식_rank 질문 _ 2가지 조건으로 순위 정하기 file [4] [레벨:3]타케 2013-11-01 4205
418 VBA 엑셀 질문드립니다. file [2] [레벨:1]박상민 2014-02-14 4201
417 VBA .Find 랜덤 컨틀로바질문입니다.. [3] [레벨:4]신강현 2013-01-21 4197
416 엑셀에서 실생활에필요한 함수알고자"" [1] [레벨:1]알고파 2010-09-04 4195
415 배열수식 데이타 정열관련 질문 드립니다. _ offset과 배열 수식을 이용하여 최근 값을 순차적으로 갖고 오는 방법.. file [3] [레벨:1]바람길 2011-11-28 4192
414 엑셀수식 (1년 전 당월~올해 전월 사용량) 합계의 월평균 구하기 file [3] [레벨:4]성투은자 2013-03-04 4191
413 VLookup 자동차세계산법 _ 등급이 있는 기준표를 VLOOKUP으로 참조하는 방법.. 00이상~00미만 : A [6] [레벨:4]현대자동차 2012-03-28 4186
412 엑셀수식 여러가지 조건을 고려한 수식을 한 셀 안에 표시하기 file [3] [레벨:4]성투은자 2013-02-01 4182
411 아별님 [1] [레벨:2]윙윙 2010-04-05 4180
410 엑셀일반 주소 텍스트 나누기 [3] [레벨:1]퀀텀00 2013-06-11 4171
409 엑셀일반 엑셀 이미지 [레벨:3]블루짱이 2023-10-21 4168
408 엑셀일반 한셀에 값 [9] [레벨:5]눈물바다 2012-06-13 4166
407 VBA vba 등록질문하겟습니다. file [6] [레벨:4]신강현 2013-02-02 4161
406 VBA 같은데이타 병합 file [2] [레벨:4]고수가되고파 2013-01-21 4158
405 엑셀일반 질문...^^ _ 선택 영역에서 빈셀만 모두 선택하여 특정 문자로 채우는 방법 [3] [레벨:4]나카타 2011-11-28 4145
404 VBA .Find find 문을 공부하던도중 문제하가잇어서 질문올립니다. file [2] [레벨:4]신강현 2013-03-22 4143
403 완전 초보자가 볼수있는 책 [1] [레벨:1]오늬맘 2009-07-08 4138