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

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

SUMPRODUCT 질문 !!

VBA 조회 수 3358 추천 수 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 50259
113 VBA 엑셀 열 추가 _ 엑셀의 마지막 셀 재 인식시키는 팁 ActiveSheet.UsedRange.Select imagefile [1] [레벨:5]눈물바다 2009-08-27 10585
112 VBA 엑셀 일괄암호저장 imagefile [1] [레벨:1]천운 2017-03-13 10301
111 VBA 매크로 질문 드립니다. [레벨:1]ORACLE 2016-08-16 9429
110 VBA 컴파일 에러가 나요? [레벨:1]구름바다 2015-09-14 9094
109 VBA 추가기능 파일 수정 관련 file [1] [레벨:4]고수가되고파 2015-04-03 9028
108 VBA 매크로를 이용한 exe 파일 자동 실행 방법 문의~ imagefile [레벨:1]hickel 2016-09-07 8942
107 VBA 셀 복사 후 아래셀에 수식 및 메모 붙여넣기 관련 [레벨:4]고수가되고파 2015-04-17 8293
106 VBA .Find 재고 입고월 분석(vba) file [3] [레벨:1]럽웨어 2009-07-24 8155
105 VBA 사용자 정의 함수에서 변수의 행번호 추출하기 file [레벨:1]백미90 2015-08-17 7942
104 VBA 셀에 맞춰 그림 삽입하기 [1] [레벨:5]눈물바다 2012-06-05 7941
103 VBA 파일&폴더 파일 만들기 _ 파일 생성, 폴더 생성, 파일 존재하는지 여부 확인 등 [4] [레벨:3]엑셀대단해 2012-08-15 7763
102 VBA .Find ListBox1 에 추가가 되지를 않습니다. file [3] [레벨:1]사오정원조 2009-07-03 7290
101 VBA .Find 매크로 질문입니다.~ [2] [레벨:1]카멜 2009-07-02 7257
100 VBA vba질문하나 올리겟습니다.ㅠㅠ file [3] [레벨:1]gg남자 2013-03-27 6964
99 VBA 특정개체 수정 관련 [5] [레벨:4]고수가되고파 2015-04-02 6843
98 VBA 랜덤 출력 관련 짧고 간결(?)한 3가지 질문입니다. _ 중복 없는 랜덤 패스워드 생성하는 방법.. [4] [레벨:6]파이스 2011-11-29 6817
97 VBA 조건문을 변수화 하는 방법 [2] [레벨:3]엑셀대단해 2012-07-23 6808
96 VBA 프로그램바 질문 _ 작업 진행바 Progress bar file [2] [레벨:4]신강현 2013-01-30 6323
95 VBA VBA로 정렬하는 법 문의 file [6] [레벨:4]부루끄 2011-07-21 6305
94 VBA 한셀안의 서식을 다르게 지정할 수 있는 방법 없을까요? file [5] [레벨:4]부루끄 2011-09-28 6297