如果您的数据按照示例中的方式排序,即。通过第一列升序,然后第二列升序。然后您可以使用OFFSET()
,INDEX()
和的组合MATCH()
。
=OFFSET(INDEX(second_column,MATCH(lookup_a,first_column,0)),entry_row-1,0)
这首先获取与INDEX(..., MATCH())
您的查找值匹配的第一个单元格的单元格地址,然后该OFFSET()
函数通过您想要在该组中的行数将其击倒。当然,这完全取决于所描述的排序。
如果您想要未排序的第二列中的第 k 个最小条目(但仍分组在第一列),那么您可以使用:
=SMALL(OFFSET(second_column,MATCH(lookup_a,first_column,0)-1,0,MATCH(lookup_a,first_column,1)-MATCH(lookup_a,first_column,0)+1,1),entry_row)
#N/A
如果您超出选择范围,这具有返回的优势。用IFERROR(...., "")
.
或者,对未排序的第二列数据使用第一种方法并仅检查偏移量以查看它是否保留查找值,您可以使用:
=IF(OFFSET(OFFSET(INDEX(second_column,MATCH(lookup_a,first_column,0)),entry_row-1,0),0,-1)=lookup_a,OFFSET(INDEX(second_column,MATCH(lookup_a,first_column,0)),entry_row-1,0),"")