Return 列表中的最小值,其中只有某些值符合条件 - excel

Return the smallest value from a list, in which only certain values are eligeble - excel

我在表达我的问题时遇到了一些麻烦,但我希望你能理解!

我有 table 家公司在某些年份在国外建厂。 (A 至 C 列)。

在单独的 table 中,我有所谓的跨国距离测量(基于各国国内生产总值的差异)。 (G 至 M 列)。请注意,距离每年都在变化。

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

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

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

我真的希望你们能帮助我,我找到了一种在列表中找到最小值的方法,我也可以在某些年内做到这一点,但我遇到的问题 excel 首先需要找到以前输入的国家,将它们存储在某种数组中,然后仅使用这些国家来考虑最小距离。

非常感谢!

尝试将此 "array formula" 复制下来 D2

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

已通过 CTRL+SHIFT+ENTER

确认

这会检查您的较大 table 的三个条件 - header 行与符合条件的国家/地区相匹配(使用 COUNTIFS 函数基于小 table 中的条件) ,该列 G 匹配当前年份,而列 H 匹配当前国家/地区。

如果满足所有这些条件,则返回 table 中的相关值,并且 SMALL 找到最小的值。如果出现错误(因为没有符合条件的值),则返回 N/A

Excel 2010 或更高版本中,您可以使用 AGGREGATE 函数代替 SMALL - 这很有用,因为它不需要 "array entry"

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