복붙노트

[SQL] 구글 스프레드 시트 "= QUERY는"() 해당 기능을 결합?

SQL

구글 스프레드 시트 "= QUERY는"() 해당 기능을 결합?

이 질문은 사용하여 Google 스프레드 시트에서 두 개의 데이터베이스에 합류 관련된있다 = QUERY 기능

그래서 범위 A1에서 같은 테이블이 : C3를

a d g
b e h
c f i

나는 다른 테이블이

c j m
a k n
b l o

나는 마지막 표는 다음과 같이 할

a d g k n
b e h l o 
c f i j m

나는 셀 D1에 아주 쉽게 VLOOKUP 함수를 사용하여이 작업을 수행하고 아래로 가로 질러 붙여 넣습니다,하지만 내 데이터 세트가 크다 할 수 있습니다. 나는 vlookups의 전체 페이지를 필요 구글 스프레드 시트 내가 복잡성 내 한계에 있어요 알려줍니다.

내가 언급 한 "참여"기능의 유형이있을 것 같지 않습니다 ... 구글의 쿼리 언어 참조 봐. 당신은 쉬운 유형 작업 "A 조인"가 될 것이라고 생각합니다.

VLOOKUP없이 캔 누구든지 해결할 수있는 문제이?

해결법

  1. ==============================

    1.구글 QUERY 언어 버전 0.7 (2016)는 가입 (LEFT 조인) 연산자를 포함하지 않지만,이 조회 함수에 대한 입력으로 사용하거나 다른 용도로 사용될 수있는 결과 배열 수식을 이용함으로써 달성 될 수있다.

    구글 QUERY 언어 버전 0.7 (2016)는 가입 (LEFT 조인) 연산자를 포함하지 않지만,이 조회 함수에 대한 입력으로 사용하거나 다른 용도로 사용될 수있는 결과 배열 수식을 이용함으로써 달성 될 수있다.

    배열 수식과 구글 시트의 기능을 처리하는 배열은이 두 가지 간단한 테이블 사이에 가입하는 것이 가능합니다. 쉽게 읽을 수 있도록하기 위해, 제안 된 수식을 사용하는 대신 범위 참조의 범위를 지명했다.

    =ArrayFormula(
       {
         table1,
         vlookup(ID,table2,COLUMN(Indirect("R1C2:R1C"&COLUMNS;(table2),0)),0)
       }
    )
    

    비고 :

    예를 들어이 시트를 참조하십시오

    2017에 구글은 QUERY, 쿼리 기능에 대한 영어 공식 도움말을 개선. 아직이 같은 주제를 아직 포함하지 않고 어떻게 작동하는지 이해하는 데 도움이 될 수 있습니다.

  2. ==============================

    2.당신은 ARRAYFORMULA를 사용하거나 당신은이 공식을 드래그 할 수 있습니다 : 가져 오기 또는 첫 번째 테이블을 쿼리 보내고 이후; D 형 컬럼 :

    당신은 ARRAYFORMULA를 사용하거나 당신은이 공식을 드래그 할 수 있습니다 : 가져 오기 또는 첫 번째 테이블을 쿼리 보내고 이후; D 형 컬럼 :

    =QUERY(Sheet2!A1:C3, "Select B,C WHERE A='" & A1 & "'", 0)
    
  3. ==============================

    3.그래서,이 답변 당신은 VLOOKUP 함수와 함께 할, 그러나 단 하나의 셀에 방법에 대해 설명합니다. 당신의 예에서, 데이터의 각 테이블은 다음의 셀 참조를 가지고 주어진 :

    그래서,이 답변 당신은 VLOOKUP 함수와 함께 할, 그러나 단 하나의 셀에 방법에 대해 설명합니다. 당신의 예에서, 데이터의 각 테이블은 다음의 셀 참조를 가지고 주어진 :

    표 1 :! Sheet1의 A1 : C3

    a d g
    b e h
    c f i
    

    표 2 :! Sheet2의 A1 : C3

    c j m
    a k n
    b l o
    

    이 수식이 구축되어야하는 방법이다.

    =ArrayFormula(
       {
         Sheet1!A1:C,
         vlookup(Sheet1!A1:A, {Sheet2!A1:A, Sheet2!B1:C}, {2,3}, false)
       }
    )
    

    작업이 공식을 얻을 수있는 키는 VLOOKUP 범위에서 중괄호를 사용하는 방법을 이해하는 것입니다. 당신은 기본적으로 VLOOKUP SEARCH_KEY에 경기가 될 컬럼과 범위의 첫 번째 셀 참조를 정의합니다. 범위의 셀 참조의 나머지는 당신이 가입하고자하는 열의와 관련입니다.

    인덱스로 기입된다 {2,3}는 범위 (범위는 3 열의 전체 구성)의 두 번째 및 세 번째 열을 반환하는 단계; 중괄호는 VLOOKUP 지수 ARRAYFORMULA와는 아무 상관이없는,하지만 VLOOKUP 함수에서 여러 열을 반환하는 것이 필요하다. 당신이 가입의 목적을 위해 사용되는 열을 포함하지 않는 것처럼 때문에하지 쓰기 {1,2,3}에 대한 이유입니다.

    두 번째 테이블에서 조인 열이 테이블의 세번째 컬럼으로 위치하는 경우에도 가입-화학식 이러한 종류를 이용할 수있다. 의이 예에서 원시 데이터는 다음과 같이 것이라고 가정 해 봅시다 :

    표 (Sheet1의) :

    a d g
    b e h
    c f i
    

    표 2 (시트 2)

    j m c
    k n a
    l o b
    

    이 같은 공식을 작성하는 경우, 당신은 여전히 ​​원하는 결과를 (가입 데이터의 표에 표시된대로) 얻을 것이다 :

    =ArrayFormula(
       {
         Sheet1!A1:C,
         vlookup(Sheet1!A1:A, {Sheet2!C1:C, Sheet2!A1:B}, {2,3}, false)
       }
    )
    

    가입 데이터의 테이블 :

    a d g k n
    b e h l o 
    c f i j m
    

    조인 - 식 중, 표 2의 세 번째 열은 VLOOKUP 범위의 첫 번째 셀 참조 위치하고 있는지 통지! 당신이 (ARRAYFORMULA와 함께) 범위에서 중괄호를 사용할 때 VLOOKUP SEARCH_KEY가 대신 내에서 배열을 사용, 원시 데이터 내에서 공통 분모로 열을 찾지 때문에 왜이 작품에 대한 이유이며, 참고로 중괄호는 공통 분모 (기본적으로이 범위의 첫 번째 열)로 열을 찾을 수 있습니다.

    나는이라는 주제에 대한 포괄적 인 가이드를 작성했습니다 :

  4. ==============================

    4.특정 행이나 열을 각각 "인덱스"(A, B, C)를 매핑 할 수있는 경우에, 당신은 INDEX 함수를 사용할 수 있습니다.

    특정 행이나 열을 각각 "인덱스"(A, B, C)를 매핑 할 수있는 경우에, 당신은 INDEX 함수를 사용할 수 있습니다.

    이 경우 등등, 당신은 아마 'A'열에를 매핑 할 수 있습니다 (또는 1 행) 열 B에, 'B'를 (또는 2 행)합니다.

    또한, 병합 테이블이 정확한 사용 사례를 해결하기 위해 보인다.

  5. ==============================

    5.A5의 '다른'테이블 : C7, 시도하십시오 :

    A5의 '다른'테이블 : C7, 시도하십시오 :

    =query({A1:C3,query(sort(A5:C7,1,TRUE),"Select Col2,Col3")})
    
  6. ==============================

    6.나는 자바 스크립트 LINQ (언어 통합 쿼리)를 사용하여이 문제를 해결했다.

    나는 자바 스크립트 LINQ (언어 통합 쿼리)를 사용하여이 문제를 해결했다.

    그것은 복잡한 조건에 가입 당신은 자바 스크립트를 지정할 수 있습니다. 또한, 투사 정렬하고 데이터베이스 테이블 것처럼 당신의 시트를 필터링, 같은 그룹화와 같은 다른 SQL 쿼리를 수행 할 수 있습니다. 아래의 링크를 봐.

    LINQ 쿼리 언어에 내가 그들을 유효 JS 식별자하게 밑줄로 열 이름의 모든 공백을 대체합니다.

    https://docs.google.com/spreadsheets/d/1DHtQlQUlo-X_YVfo-Wo-b7315sSk2pxL5ci4Y9lxvZo/edit?usp=sharing

    https://script.google.com/d/1R5L2ReHJrBRwyoSoVOFLzEQZiGtxidPfPkAeVownt7SWX6TpacY7gA7j/edit?usp=sharing

  7. from https://stackoverflow.com/questions/14796620/google-spreadsheet-query-join-equivalent-function by cc-by-sa and MIT license