通过公式返回dynamic变化范围内匹配单元格的值?

经过几个小时的search和尝试,我已经承认失败,并要求这个社区的智慧帮助。

目标:
– 匹配客户ID并返回每个date范围的值1和值2。 (在红色框中的区域)

限制让我获得一个简单的解决scheme:
– 数据不能以任何方式修改(黑框中的区域),它在另一个表格中,不能添加辅助列
– 数据由一个只有date范围更改的标题分隔,但是数据的长度是dynamic的
– 此工作表上不允许使用macros,所以解决scheme必须是公式

当前迎angular(仅适用于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) 

这试图通过匹配date和插入find的行号来定义Vlookup范围。
=("B"&(MATCH(G2,B:B,0)+ROW(B:B)-1)&":"&"D"&(MATCH(G3,B:B,0)+ROW(B:B)-1))
返回正确的范围,但是当它被插入到Vlookup的范围目标时,我得到一个值错误。 另一个失败的是,它不会为数据的最后一部分工作,因为它会丢失与date的结尾标题。

贝娄是一个非常简化的数据,我将与之合作:

在这里输入图像说明

谢谢你在这个头上的任何和所有的帮助

如果我正确理解您的要求,那么返回Value1如下:

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

这使用OFFSET函数来build立您的VLOOKUP范围。 使用第四个和第五个参数将返回一个范围,而不是单个单元格。

两个MATCH函数查找G2中指定的date范围的文本。 另一个MATCH函数查找G2匹配后的文本“date”的下一个实例; 然而, IFERROR函数保护最后的范围(因为没有另一个“date”单元格),并使范围尽可能大,以涵盖最后的date范围。

要将其修改为返回值2,请将“FALSE”之前的“2​​”更改为“3”。