Excel VBA에서 Application.WorksheetFunction.Sumproduct를 사용하여 2 개의 배열 열을 가져 오는 방법이 있습니까? 예를 들어, A와 B가 각각 3 행 3 열 (Excel 배열이 아닌 VBA 배열) 인 두 개의 배열 인 경우 B 열의 두 번째 열과 함께 A의 세 번째 열의 부스러기를 쉽게 얻을 수 있습니까? 그렇다면 구문은 무엇입니까? 감사합니다.VBA Sumproduct on Array Columns
0
A
답변
0
OK는 WorksheetFunction.Index가 배열 배열에서도 작동하는 것처럼 보입니다. 따라서 WorksheetFunction.Index를 사용하여 세 번째와 두 번째 열을 가져오고 WorksheetFunction.Transpose를 사용하여 열의 1D 배열을 얻은 다음 WorksheetFunction.SumProduct를 사용하여이 작업을 수행 할 수 있습니다.
Sub test()
aA = [{1,2, 3;4,5, 6;7,8, 9}]
aB = [{10, 11,12;13, 14,15;16, 17,18}]
'aA = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9))
'aB = Array(Array(10, 11, 12), Array(13, 14, 15), Array(16, 17, 18))
aCol3of_aA = WorksheetFunction.Index(aA, 0, 3)
aCol2of_aB = WorksheetFunction.Index(aB, 0, 2)
aArr1 = WorksheetFunction.Transpose(aCol3of_aA)
aArr2 = WorksheetFunction.Transpose(aCol2of_aB)
dSumProduct = WorksheetFunction.SumProduct(aArr1, aArr2)
'= 3*11 + 6*14 + 9*17 = 270
MsgBox dSumProduct
End Sub
0
이 워크 시트 함수를 사용하는 것보다 훨씬 빠를 것 VBA 배열을 통해 반복, 시도하고이 작업을 수행 할 WorksheetFunction.SumProduct
를 사용하는 유혹 할 수도 있지만. 작은 테스트에서 나는 다른 게시 된 답변보다 x40 성능 향상에 대해 얻었습니다.
이것은 사용자가 수행 할 수있는 간단한 예입니다. 입력 및 오류 처리에 대한 유효성 검사를 추가해야합니다.
Function ArraySumProduct(aA As Variant, aB As Variant, col1 As Long, col2 As Long) As Variant
Dim i As Long
Dim dSumProduct
For i = LBound(aA) To UBound(aA)
dSumProduct = dSumProduct + aA(i, col1) * aB(i, col2)
Next
ArraySumProduct = dSumProduct
End Function
관련 문제
- 1. VBA multy loop in columns
- 2. VBA 클래스의 Array 속성
- 3. @JsonIdentityInfo on array
- 4. C# Regex on array
- 5. PartialEq on array
- 6. wp columns ravy on rails with ruby
- 7. Wordsearch puzzle nullpointerexception on array
- 8. 부서가있는 SumProduct?
- 9. magic_quotes_gpc sharehosting on $ _POST Array
- 10. perl : grep on constant array
- 11. KVO on UIViewController childViewControllers array
- 12. SUMPRODUCT 및 COUNTIFS를 사용하는 Excel VBA - 속도 문제
- 13. phpexcel 배열 SUMPRODUCT
- 14. VBA on Mac 우수
- 15. 출력 범위와 SUMPRODUCT 그래서
- 16. SUMPRODUCT 대 SUMIFS
- 17. 특정 조건의 SUMPRODUCT
- 18. SUMPRODUCT Excel 수식을 C#
- 19. 엑셀 조건부 SUMPRODUCT
- 20. SUMPRODUCT 함수를 다시 실행하십시오.
- 21. Vertex Array Objcects - GLGenVertexArrays GL_INVALID_OPERATION on OSX
- 22. 2 모델, Ruby on Rails의 1 'array'
- 23. VBA - On Error GoTo ErrHandler :
- 24. 레일에 루비 SQLite3 :: SQLException : too many columns on
- 25. Twitter Bootstrap 3 - 3 even columns on 765
- 26. SUMPRODUCT over muliple 범위 문제
- 27. SSRS에서 SumProduct 함수를 어떻게 사용합니까?
- 28. GWT DataGrid columns
- 29. 형식화 된 출력 : columns
- 30. ZF2 - columns()에서 SQL_CALC_FOUND_ROWS를 사용하는 방법
VBA 배열이란 무엇입니까? 배열 배열 또는 실제로 2D 배열? –
귀하의 질문을 시각화하여 알려주십시오. –