2017-01-13 7 views
2

수 시간의 검색과 시도 끝에 패배를 인정하고이 커뮤니티의 지혜에 도움을 요청합니다.수식을 사용하여 동적으로 변경되는 범위에서 일치하는 셀의 값을 반환 하시겠습니까?

목표 :
- 고객 ID와 일치하고 각 기간에 대해 값 1과 값 2를 반환합니다. (빨간색 상자에서 영역) 쉬운 솔루션을 얻기 위해 저를 유지

제한 :
- 데이터가 어떤 식 으로든 (블랙 박스 영역)에서 수정할 수 없습니다, 그것은 다른 시트에 도우미 열이 추가 할 수 없습니다
- 용액이 화학식 있어야하므로 매크로이 시트 상 허용되지
공격
현재 각도 (- 데이터가 단지 기간의 변화와 일정한 헤더 분리 그러나 데이터
길이 동적 셀 H2에만 해당) :

=VLOOKUP(G1,("B"&(MATCH(G2,B:B,0)+ROW(B:B)-1)&":"&"D"&(MATCH(G3,B:B,0)+ROW(B:B)-1)),2,FALSE) 


이렇게하면 날짜를 일치시키고 찾은 행 번호를 삽입하여 Vlookup 범위를 정의하려고 시도합니다.
=("B"&(MATCH(G2,B:B,0)+ROW(B:B)-1)&":"&"D"&(MATCH(G3,B:B,0)+ROW(B:B)-1))
은 올바른 범위를 반환하지만 Vlookup의 범위 대상에 삽입 할 때 값 오류가 발생합니다. 또 다른 실패는 데이터의 마지막 부분에 대해 날짜가있는 끝 머리글이 누락되어 작동하지 않는다는 것입니다.

벨로 내가 작업 할 데이터의 매우 단순화 된 버전입니다 :

enter image description here

모든 주셔서 감사합니다이 머리 아마추어의 모든 도움

답변

0

나는 당신의 요구 사항을 제대로 이해하고 , 값 1을 반환하는 다음은 무엇입니까?

= VLOOKUP (G1, OFFSET (B1, MATCH (G2, B 0, COUNTA (A : A), 1), 0), COUNTA (A : B, 0), 0, IFERROR (MATCH (날짜), OFFSET (A1, MATCH (G2, B : B, 0) A)), 3), 2, FALSE

OFFSET 기능을 사용하여 VLOOKUP 범위를 설정합니다. 4 번째 및 5 번째 매개 변수를 사용하면 단일 셀 대신 범위가 반환됩니다.

MATCH 함수 중 두 개가 G2에 지정된 날짜 범위의 텍스트를 찾습니다. 다른 MATCH 함수는 G2 일치 후에 텍스트 "날짜"의 다음 인스턴스를 찾습니다. 그러나 IFERROR 함수는 다른 날짜 ("날짜"셀이 없으므로) 마지막 범위를 보호하고 범위를 최종 날짜 범위를 커버하는 데 필요한만큼 크게 만듭니다.

값 2를 반환하도록 수정하려면 "거짓"보다 먼저 "2"를 "3"으로 변경하십시오.

+0

그냥 수정하여 수정했습니다 ... – elmer007

+0

이것은 정확하게 의도 한대로 작동했습니다. 정적 "날짜"와 카운트 횟수를 사용하지 않을 것이라고 생각했습니다. 신속하고 유용한 답변을 해주셔서 감사합니다! –