원본테이블에서 일부열을 선택 후 조건에 맞는 값을 도출하는 문제이다.
이런 문제에 FILTER함수가 너무 특화되어 있기 때문에 이러한 문제는 365 사용자라면 VBA까지 들어오지 않을 것같다.
단 한줄....
=SORT(FILTER(FILTER(A4:F80,F4:F80>J3),{0,1,0,0,1,0}),2)
물론 이중 FILTER대신 CHOOSECOLS를 사용해도 된다.
여하튼
이번 문제의 핵심은 아래 구문인데, 이해가 잘 안되시는 분은 본인의 포스팅 중 배열 슬라이싱에 대해서 한번 더 짚고 오길 바란다.
https://1stminokingdom.tistory.com/153
rowV = .Sequence(UBound(V, 1))
Vtemp = .Index(V, rowV, Array(2, 5, 6))
Vtemp = .SortBy(Vtemp, .Index(Vtemp, , 3), -1)
더보기
Option Explicit
Sub 기초방78()
Dim V: V = Range([a4], [f4].End(4))
Dim rowV
Dim Vtemp, Va, i&
With Application
rowV = .Sequence(UBound(V, 1))
Vtemp = .Index(V, rowV, Array(2, 5, 6))
Vtemp = .SortBy(Vtemp, .Index(Vtemp, , 3), -1)
For Each Va In .Index(Vtemp, , 3)
If Va > [j3] Then
i = i + 1
Else
Exit For
End If
Next Va
[l7].Resize(i, 2) = Vtemp
End With
End Sub
이번 문제역시 APPLICATION.FILTER를 통해서 풀어보려 했지만 조건문을 넣는것이 쉽지 않았다.
이러한 하나하나가 365를 배워야하는 이유이다.
'VBA > 엑사남_기초방' 카테고리의 다른 글
[기초방] VBA 100제 #80 [ 테이블교차하기 ] (0) | 2023.10.19 |
---|---|
[기초방] VBA 100제 #79 [ 로또번호 정렬하기 ] (2) | 2023.10.19 |
[기초방] VBA 100제 #77 [ 고유값 pivot ] (0) | 2023.10.17 |
[기초방] VBA 100제 #76 [ 상위랭커 구하기 ] (0) | 2023.10.17 |
[기초방] VBA 100제 #75 [ 필터링 구현하기 ] (0) | 2023.10.16 |
댓글