수식을 사용하여 배열 필터링(VBA 없음)
단일 공식(자동 필터, VBA 또는 추가 열 없이)을 사용하여 어레이를 필터링할 수 있습니까?
예를 들어 다음과 같은 스프레드시트가 있습니다.
A | B | C
--------------------
1| ID | Class | Value
2| 1 | A | V1
3| 1 | B | V2
4| 2 | A | V3
5| 3 | B | V4
6| 3 | B | V5
VLOOKUP에서 이 배열의 하위 집합을 사용합니다.즉, 클래스가 "B"인 행에 대해서만 일치시키고 싶습니다.그래서 저는 다음과 같은 것을 사용할 수 있기를 희망했습니다.
=VLOOKUP(A3, FILTER_FUNC(A:C, B="B"), 3, false)
여기서 FILTER_FUNC는 조건을 충족하는 행만 포함하는 배열을 반환하는 함수 또는 식의 유형입니다.
=VLOOKUP(A2,IF(B1:B3="B",A1:C3,""),1,FALSE)
Ctrl+Shift+Enter
입장합니다.
첫 번째 "B" 값만 원하는 경우에는 이렇게 하면 되고, 더 일반적으로 만들려면 "B"의 셀 주소를 하위 주소로 지정할 수 있습니다.
=INDEX(A2:A6,SUMPRODUCT(MATCH(TRUE,(B2:B6)="B",0)),1)
두 개의 열을 기준으로 이 값을 사용하려면 일치 항목 내부에 연결하면 됩니다.
=INDEX(A2:A6,SUMPRODUCT(MATCH(TRUE,(A2:A6&B2:B6)=("3"&"B"),0)),1)
전형적인 2열 검색을 하려는 것처럼 들리네요.http://www.dailydoseofexcel.com/archives/2009/04/21/vlookup-on-two-columns/
이를 위한 수많은 솔루션 중 가장 간단한 것은 다음과 같습니다(어레이 공식이 필요하지 않음).
=SUMPRODUCT((Lookup!A:A=Param!A1)*(Lookup!B:B=Param!B1)*(Lookup!C:C))
구체적인 예를 번역하려면 다음을 사용합니다.
=SUMPRODUCT((A1:A3=A2)*(B1:B3="B")*(C1:C3))
오늘날, 오피스 365에서 엑셀은 소위 '어레이 기능'을 가지고 있습니다.그filter
기능은 정확히 당신이 원하는 것을 합니다.사용할 필요 없음CTRL+SHIFT+ENTER
더 이상, 단순한enter
충분할 것입니다.
Office 365에서는 다음을 사용하여 문제를 간단히 해결할 수 있습니다.
=VLOOKUP(A3, FILTER(A2:C6, B2:B6="B"), 3, FALSE)
언급URL : https://stackoverflow.com/questions/6497062/filter-an-array-using-a-formula-without-vba
'programing' 카테고리의 다른 글
Tkinter 애플리케이션을 구성하는 가장 좋은 방법은 무엇입니까? (0) | 2023.06.20 |
---|---|
C# 각 항목에 대한 if 문을 기준으로 목록의 다음 항목으로 이동 (0) | 2023.06.20 |
SQL 요청 "...에 구문 오류가 있습니다.오버...주문 기준... 사이..."(이전 버전과 새 버전) (0) | 2023.06.20 |
IntelliJ Idea 2017.3 Kotlin Spring Boot App을 시작할 수 없음 - @Configuration 클래스가 final이 아닐 수 있습니다. (0) | 2023.06.20 |
CTE에서 에 삽입 (0) | 2023.06.20 |