질문내용을 약간 수정하였습니다^^
vba연산값과 엑셀연산값이 다른부분이 있습니다..
다중 어레이로 비교문 연산시에 발생하는데요.
하나의 IF문에 어레이 변수를 2개 넣었는데 수행이 안됩니다ㅜㅠ
제가 안고있는 고민은.. 변수와 0 과의 부등호 연산입니다.
비교값 A와 B는 0과 부동호 비교하기위해 0에 가깝게 서로 차감한 값을 사용했습니다.
해결이 안되는 부분이 바로 아랫놈입니다...ㅠ
If a_A(iX - 3) < 0 And a_B(iX) < 0 Then
고수님.. 바쁘실텐데 자꾸 귀찮게해드려서 죄송해요.
어레이 다중비교(질문).xlsm
-------------------------
Option Explicit
Sub total()
Dim rngStart As Range
Dim rngTarget As Range
Dim rX As Range
'Array
Dim iX As Integer
'Per
Dim Per_1 As Double
Dim Per_2 As Double
'A
Dim a_A() As Double
Dim A As Double
'B
Dim avg_B As Range
Dim a_B() As Double
Dim B As Double
Application.ScreenUpdating = False
Set rngStart = [B10]
Set rngTarget = Range(rngStart, rngStart.End(xlDown))
For Each rX In rngTarget
If IsNumeric(rX.Offset(-1, 0)) Then
If rX >= 1 Then
Per_1 = (rX.Offset(0, 0) - rX.Offset(-1, 0)) / rX.Offset(-1, 0) * 100 '기준1의 %증감
Per_2 = (rX.Offset(0, 1) - rX.Offset(-1, 1)) / rX.Offset(-1, 1) * 100 '기준2의 %증감
Set avg_B = rX.Offset(-3, 1).Resize(4) '4개의 평균
A = Per_2 - Per_1
B = Application.Average(avg_B) - Application.Average(avg_B.Offset(0, -1))
ReDim Preserve a_A(iX)
ReDim Preserve a_B(iX)
a_A(iX) = A
a_B(iX) = B
If iX - 5 > 0 Then
'---------------------------------------------
If a_A(iX - 3) < 0 And a_B(iX) < 0 Then
rX.Offset(0, 2) = "A"
Else
rX.Offset(0, 2) = "B"
End If
'---------------------------------------------
End If
iX = iX + 1
End If
End If
Next
Application.ScreenUpdating = True
End Sub