从列表中返回最小值,其中只有某些值是可调的 – 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")