2017-12-06 9 views
1

색인 (match()) 함수를 사용하여 열 머리글의 이름을 기반으로 값을 반환합니다. 그러나 최근에 열 헤더가 내 데이터에 네 번 나타날 수 있다는 것을 알게되었습니다. 그러나 인구가 많은 사람은 한 명 뿐이며 다른 사람은 항상 비어있게됩니다.색인 (match()) 또는 처음 null이 아닌/빈 값을 반환하는 조회.

=(isblank(...)# do stuff) 중첩 된 작업을 수행 할 수 있지만 SQL coalesque()과 같은 종류의 첫 번째 비 널/비어 값을 반환하도록 GSheet에 알려주는 더 복잡한 방법이 있는지 궁금해했습니다.

있습니까?

현재 공식은 다음과 같습니다 : I $ 1 범위 Form Responses 1'!$A$1:$DY$1에 4 번 나타나기 때문에

match(I$1,'Form Responses 1'!$A$1:$DY$1,0) 

이것은 :

=index('Form Responses 1'!$A$2:$DY,match($A2,'Form Responses 1'!$A$2:$A,0),match(I$1,'Form Responses 1'!$A$1:$DY$1,0)) 

그러나,이 작품은 문제의 작품이다. 내가 원하는 것은 index() 함수에 중첩 될 때 빈 셀을 반환하지 않는 것입니다.

답변

1

모든 데이터가 단일 시트에있는 경우보다 간단한 사례를 만들었습니다.

enter image description here

수식은 다음

=QUERY(TRANSPOSE({A1:E1;FILTER(A2:E8,A2:A8 = 2)}), "select Col2 where Col2 is not null and Col1 = 'foo' limit 1")


  • 번호 2는 (샘플에서 $A2) 행에 의해 기준
  • 텍스트 foo 열 의한 기준이다 (교체 인 그것과 함께
  • TRANSPOSE 쿼리를
  • where Col2 is not null을 사용하는 것입니다
  • {A1:E1; filter })

작동 원리

    하나 개의 배열에 헤더와 원하는 행을 얻을되어 빈 셀을 제거하는 것입니다
  • limit 1은 다음과 같습니다. select first 1