从列表中返回最小值,其中只有某些值是可调的 – excel

我有一些麻烦制定我的问题,但我希望你明白!

我有一些企业在某些年份在国外build立生产工厂。 (列A到C)。

在另一张表中,我有所谓的跨国距离度量(根据各国GDP的差异)。 (列G到M)。 请注意,距离每年都在变化。

excel的简化版本如下所示: https : //new.wu.ac.at/fileadmin/wu/d/i/iib/photo/stack.JPG

我想要的是在D列中手动input结果的公式。它会给我一个结果如下:

  • 它应该看哪个国家的具体公司以前(年前)build厂
  • 它应该find从目前的国家到以前进入的任何一个国家的最小的跨国距离
  • 价值应该是当前工厂build设的一年

让我来说明我的请求与我想在单元格D8中的示例结果:

  • 该公式将不得不find以前进入这个国家的土耳其和保加利亚的国家名单
  • 然后它将不得不进入第二张桌子,给我最小的距离科索沃的距离,但只有土耳其和保加利亚
  • 这将必须在2008年(当年)

我真的希望你们能够帮助我,我想出了一个方法来find一个列表中的最低限度,我也可以做一些年,但我有这个问题,首先需要find以前进入的国家,记住他们在某种arrays中,然后仅使用这些国家来考虑最小距离。

非常感谢你!

尝试这个D2 “数组公式” D2复制下来

=IFERROR(SMALL(IF(COUNTIFS(A$2:A$11,A2,B$2:B$11,"<"&B2,C$2:C$11,"<>"&C2,C$2:C$11,I$1:M$1)*(G$2:G$31=B2)*(H$2:H$31=C2),I$2:M$31),1),"N/A")

CTRL + SHIFT + ENTER确认

这将检查您的大型表的三个条件 – 标题行与符合条件的国家/地区(使用基于小表中的条件的COUNTIFS函数),该列G匹配当前年份,列H匹配当前国家/地区。

如果满足所有这些条件,则返回表中的相关值, SMALL查找最小值。 如果有错误(因为没有合格的值),则返回N/A

Excel 2010或更高版本中,可以使用AGGREGATE函数而不是SMALL这很有用,因为它不需要“数组条目”

=IFERROR(AGGREGATE(15,6,I$2:M$31/(COUNTIFS(A$2:A$11,A2,B$2:B$11,"<"&B2,C$2:C$11,"<>"&C2,C$2:C$11,I$1:M$1)>0)/(G$2:G$31=B2)/(H$2:H$31=C2),1),"N/A")