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

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

SUMPRODUCT 질문 !!

VBA 조회 수 4001 추천 수 0 2011.11.01 11:40:37

아별님. 감사합니다.

 

한개의 조건에 대한 SUMPRODUCT VBA 에서 활용해 보았는데요.

 

조건이 두개 일때는 어떻게 해야 하나요?

 

조건이 두개일때도 알려 주시면 감사하겠습니다.

 

수고 하세요 ^


댓글 '1'

profile

[레벨:30]아별

2011.11.01 14:41:46
*.104.126.21

데이터의 유형에 따라 답변이 달라질 수 있다고 말씀드렸는데.. 음..

다음에 질문하실때는 첨부파일 부탁드립니다.

 

DRM때문에 메일로도 힘들면.. 셀 영역을 복사해서 게시판에 붙여주세요..

그러면 텍스트라도 확인하고 좀 더 구체적인 답변이 가능하겠습니다.

 

- 각설.. -

 

 

VBA에서도 SUMPRODUCT함수를 사용할 수도 있습니다만..

대개의 경우는 순환문과 IF문으로 사용해서 처리합니다.

 

순환문을 사용하여 처리하는 방법을 추천합니다.

굳이 어렵게 Application.WorksheetFunction.SumProduct()를 구현할 필요가 없는 것이지요..

 

 

자세한 내용은 첨부파일을 참고하시기 바랍니다.

다운받기 : abyul_QnA_VBA_20111101_SUMPRODUCT-1.xls

 

 


'### WorksheetFunction의 SumProduct 사용 방법
Sub testSumproduct()

    Dim i As Integer, resultSum As Double, resultCount As Double
    Dim array1, array2, array3
    Dim sht As Worksheet: Set sht = Sheets("DATA")
    Dim findString1 As String: findString1 = sht.Range("F4")
    Dim findString2 As String: findString2 = sht.Range("G4")
    array1 = sht.Range("B4:B10")
    array2 = sht.Range("C4:C10")
    array3 = sht.Range("D4:D10")

    For i = LBound(array1) To UBound(array1)
        array1(i, 1) = IIf(array1(i, 1) = findString1, 1, 0)
    Next i
   
    For i = LBound(array2) To UBound(array2)
        array2(i, 1) = IIf(Left(array2(i, 1), 4) = findString2, 1, 0)
    Next i

    resultCount = Application.WorksheetFunction.SumProduct(array1, array2)
    resultSum = Application.WorksheetFunction.SumProduct(array1, array2, array3)
   
    Dim strMsg As String
    strMsg = "계산 결과입니다." & Chr(10) & _
             findString1 & "과 " & findString2 & "의 조건을 만족하는" & _
             "항목은 " & resultCount & "개이며," & Chr(10) & _
             "수량의 합계는 " & resultSum & "입니다."
    MsgBox strMsg, vbInformation, "계산 결과입니다."

End Sub


'### For를 사용하여 순환문으로 처리하는 방법
Sub alternativeSolution()

    Dim i As Integer, resultSum As Double, resultCount As Double
    Dim sht As Worksheet: Set sht = Sheets("DATA")
    Dim rngTarget As Range: Set rngTarget = sht.Range("B4:D10")
    Dim findString1 As String: findString1 = sht.Range("F4")
    Dim findString2 As String: findString2 = sht.Range("G4")
   
    For i = 1 To rngTarget.Rows.Count
        If rngTarget(i, 1) = findString1 And Left(rngTarget(i, 2), 4) = findString2 Then
            resultSum = resultSum + rngTarget(i, 3)
            resultCount = resultCount + 1
        End If
    Next i
   
    Dim strMsg As String
    strMsg = "계산 결과입니다." & Chr(10) & _
             findString1 & "과 " & findString2 & "의 조건을 만족하는" & _
             "항목은 " & resultCount & "개이며," & Chr(10) & _
             "수량의 합계는 " & resultSum & "입니다."
    MsgBox strMsg, vbInformation, "계산 결과입니다."

End Sub

 

첨부
문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 공지 [공지] 아별닷컴의 엑셀 질문방 폐쇄합니다. 카페 질문방 이용하세요.. imagefile [레벨:30]아별 2015-04-23 94432
602 함수질문입니다~^^ (셀 값 자체 변경하기_반올림) [1] [레벨:1]ctg0303 2011-04-14 4012
601 엑셀수식 월마다 불규칙한 자재사용량의 월사용량 file [1] [레벨:4]성투은자 2013-02-06 4014
600 피벗테이블 질문하나 더 올립니다 file [6] [레벨:4]pgpoch 2012-01-02 4018
599 엑셀수식 max & min 함수활용 file [1] [레벨:0]아민 2012-11-03 4027
598 엑셀수식 엑셀 작업 중, 질문사항! - 다중 조건의 합계 산출 방법(SUMIFS,SUMPRODUCT) [2] [레벨:4]나카타 2011-12-08 4027
597 VBA 갑자기 궁금해서 질문드리는건데요... _ VBA를 다른 오피스 프로그램에서 사용 가능한지..? [3] [레벨:6]파이스 2011-11-27 4035
596 VLookup 참조범위의 셀에 '~' 글자가 들어가도 조회하는 방법 file [2] [레벨:4]성투은자 2013-12-03 4039
595 엑셀수식 셀에 입력된 값을 이름범위로 수식내에 삽입하기? file [2] [레벨:4]성투은자 2013-04-09 4043
594 VBA 안녕하세요 아별님! file [레벨:2]북곰 2013-11-07 4051
593 아별툴관련질문 자동 표 테두리 생성 기능 문의 [1] [레벨:1]일꾼개미 2011-11-02 4059
592 엑셀일반 안녕하세요 질문좀 하려고 합니다 [2] [레벨:1]달빛아래말할게 2014-07-19 4072
591 엑셀수식 다중 조건을 만족하는 값을 입력하고 싶습니다. file [2] [레벨:1]엑셀배우기 + 1 2014-02-10 4081
590 엑셀수식 사용자목록 필요여부 file [2] [레벨:4]성투은자 2013-02-04 4083
589 엑셀일반 셀 병합 [4] [레벨:5]눈물바다 2012-06-18 4098
588 엑셀일반 특정 조건에 맞는 행(또는 열) 삭제 방법 궁금해요~ [2] [레벨:3]jmsynn 2012-08-07 4106
587 IF수식 특정조건에 만족이 되면 끝에 문자를 추가하는 방법 file [3] [레벨:4]부루끄 2012-02-02 4108
586 엑셀일반 rnd함수 질문입니다.. [1] [레벨:4]신강현 2013-01-29 4109
585 엑셀일반 그래프작성 file [1] [레벨:0]핑크푸우 2013-02-08 4112
584 엑셀수식 일부영역을 참조로 원하는 곳의 값을 표시하는데 그 일부영역을 잘라내기 이동시 오류 file [2] [레벨:4]성투은자 2013-06-27 4114
583 엑셀수식 엑셀 수식?질문 드려요 [3] [레벨:2]조기리 2013-02-26 4118