具有多个条件(和范围数字)的索引匹配

Index Match with Multiple Criteria (and ranged numbers)

我不确定索引匹配是否是我要查找的内容,但我正在尝试 return 满足各种条件时的特定值。我不确定如何解释这一点,但附上示例 sheet 以更好地说明我在寻找什么。

基本上,有一个“时间表”sheet和一个“主要数据”sheet。 我需要它,所以当“主要数据”的 Col I 与“时间表”的 Col B 匹配时,“主要数据”的 Col G 落在“时间表”中的 Col D 和 E 的范围之间,那么它应该 return在“主要数据”的 Col C 中找到的日期。

例如。主数据行 2 应该 return "Nov-10";而第 49 行将 return "Nov-17"

这里有一个范围让我不知所措,我什至不确定如何接近它。希望这一切都有意义。

提前致谢!

样本sheet: https://docs.google.com/spreadsheets/d/1KhdsJoD7d5gax5WhHJvXZZoiRRIG_oH6DgXx_snPqzI/edit#gid=1412972392

复制并向下拖动:

公式:

=IFERROR(query({filter(schedule!B:E, I2 = schedule!B:B)}, "select Col2 where Col4 >= "&G2&" and "&G2&" >= Col3"), "")

样本:

空白显示在最后一行,因为 G 不在 schedule

DE 之间

在 N2 中使用:

=ARRAYFORMULA(IFNA(VLOOKUP(VLOOKUP(I2:I, 
 {UNIQUE(FILTER(schedule!B3:B, schedule!B3:B<>"")), 
  SEQUENCE(COUNTUNIQUE(schedule!B3:B), 1, 10000, 10000)}, 2, 0)+G2:G, 
 {VLOOKUP(schedule!B3:B, {UNIQUE(FILTER(schedule!B3:B, schedule!B3:B<>"")), 
  SEQUENCE(COUNTUNIQUE(schedule!B3:B), 1, 10000, 10000)}, 2, 0)
 +schedule!D3:D, schedule!C3:C}, 2, 1)))


更新:

=ARRAYFORMULA(IF(G2:G="",,REGEXREPLACE(""&IFNA(VLOOKUP(VLOOKUP(I2:I, 
 {UNIQUE(FILTER(schedule!B3:B, schedule!B3:B<>"")), 
  SEQUENCE(COUNTUNIQUE(schedule!B3:B), 1, 10000, 10000)}, 2, 0)+G2:G, SORT(
 {VLOOKUP(schedule!B3:B, {UNIQUE(FILTER(schedule!B3:B, schedule!B3:B<>"")), 
  SEQUENCE(COUNTUNIQUE(schedule!B3:B), 1, 10000, 10000)}, 2, 0)
 +schedule!D3:D, schedule!C3:C; (
  VLOOKUP(schedule!B3:B, {UNIQUE(FILTER(schedule!B3:B, schedule!B3:B<>"")), 
  SEQUENCE(COUNTUNIQUE(schedule!B3:B), 1, 10000, 10000)}, 2, 0)
 +schedule!E3:E+1)*{1, 0}}), 2, 1)), "^0$", )))