Google 스프레드 시트에서 QUERY와 함께 ARRAYFORMULA를 사용하는 방법


11

목록의 모든 행에 대해 실행 해야하는 쿼리가 있습니다. 단일 행으로 작성하면 잘 작동합니다.

QUERY(MaraRankData,
  "select J,I,H,G,F,E where 
    A='"&E3&"' and 
    B='"&B3&"' and 
    C="&C3&" and 
    D="&D3&"",
  0
)

원하는대로 데이터 행을 출력합니다. 그러나 ARRAYFORMULA로 감싸면 여전히 많은 행 대신 한 행만 출력합니다.

=ARRAYFORMULA(
  QUERY(MaraRankData,
    "select J,I,H,G,F,E where 
      A='"&E3:E&"' and 
      B='"&B3:B&"' and 
      C="&C3:C&" and 
      D="&D3:D&"",
    0)
)

Google 스프레드 시트에서 오류가 발생하지 않아서 내가 뭘 잘못하고 있는지 모르겠습니다. ARRAYFORMULA가 QUERY와 함께 작동하도록하려면 어떻게해야합니까? 모든 행에서 수식을 반복하지 않아도됩니까?


Arrayformula로 Query () 수식을 래핑하는 것에 대해 적포도주로 주석을 지원합니다. 이미 배열 유형 결과를 반환 / 생성하는 수식을 래핑 할 필요는 없습니다. 즉, "필터", 고유 ","전치 "등에 Arrayformula를 적용하지 마십시오.
Xzila

1
또한 대부분 쿼리를 사용할 수 있으면 필터 수식이 작동합니다. 그런 식으로 문제를 쉽게 해결할 수 있습니다.
Xzila

@Xzila으로이 작업을 수행하는 방법이 있다면 filter답변을 게시하십시오. 그런 해결책에 관심이 있습니다.

2
=FILTER({E:E,F:F,G:G,H:H,I:I,J:J},A3:A=E3:E)첫 번째 부분은 중괄호 안에 열을 다시 정렬하는 것입니다. 두 번째는 A에서 E까지 B가 스스로를보고 C가 스스로를 보는 등의 유일한 열처럼 보이기 때문입니다. 실제로 데이터 세트는 훌륭하지만 문제에 대한 자세한 설명은 가능합니다. 어쩌면 나는 이해하지 못할 수도 있습니다.
Xzila

답변:


10

arrayformula(query(...))조합은 지원되지 않습니다. query배열 배열을 처리하거나 쿼리 문자열 배열을 실행한다는 개념은 없습니다 .

두 가지 옵션이 있습니다. (a) query모든 행에서 반복 ; (b) vlookup아래 설명 된대로 데이터 열을 검색 하는 데 사용 합니다. 예를 들면 다음과 같습니다.

=arrayformula(vlookup(E3:E, {A3:A, J3:J}, 2, false))

한 번에 하나의 E3 : E 요소를 가져오고 A 열에서이 요소를 찾은 다음 J 열의 해당 요소를 검색합니다.이 방법을 사용하면 열 J, I, H, G, F, E이지만 각 행마다 별도의 명령이 필요하지 않습니다.

복잡성은 vlookup하나의 검색 키만 허용하며 4 개의 매개 변수로 검색하려는 경우,

A='"&E3&"' and 
B='"&B3&"' and 
C="&C3&" and 
D="&D3&

이것은 하나의 검색 키로 연결하여 해결할 수 있습니다. Z와 같은 열을 가질 수 있습니다.

=arrayformula(E3:E & "|" & B3:B & "|" & C3:C & "|" & D3:D)

4 개의 검색 매개 변수를 하나의 파이프로 구분 된 검색 키로 연결합니다. 검색 할 테이블에 대해 동일한 작업을 수행 한 다음을 사용하여 이러한 키를 비교하십시오 vlookup.


3
첫 번째 문과 관련하여 배열 수식 내부의 중첩 쿼리는 첫 번째 인수에 작동합니다. 참조 webapps.stackexchange.com/a/97658/88163
루벤
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.