努力从 VLOOKUP 创建一个带有 MIN 的函数

Posted

技术标签:

【中文标题】努力从 VLOOKUP 创建一个带有 MIN 的函数【英文标题】:Struggling to create a function from VLOOKUP with MIN baked into it 【发布时间】:2020-10-17 08:35:14 【问题描述】:

我有一个关于 Excel/VBA 的问题,我尝试使用 VLOOKUP 解决,但是,在某些情况下它可能不会返回正确的值。假设我在 Excel 中有以下列表

Country     Years
Germany      63
Germany      27
Germany      29
France       45

在另一个工作表中,我有一个包含法国和德国的下拉列表。我想找到一个可以找到我选择的国家的最小年份的功能。在标准函数VLOOKUP 中,我只会得到德国的@​​987654324@,而尝试在MIN 中烘焙也不起作用。有什么方法可以创建我自己的函数(在VBA 中)来完成我所描述的操作?

【问题讨论】:

有很多公式可以满足您的需求。 vba 是完全必要的吗? 会更好 理论上没有你提供错误代码并询问有关错误的具体问题,这对于这个论坛来说太宽泛了。除非您只想要:“是的,这是可能的”,因为您的一个问题暗示您想要。 @user9078057 Scott 有点像公式向导,你会感到惊讶 如果您有兴趣,这里是如何使用 vba mrexcel.com/forum/excel-questions/132404-max-min-vba.html找到最小值/最大值 【参考方案1】:

您可以使用 Min 和 IF 作为数组公式输入,通过 Ctrl +Shift +Enter

=MIN(IF(A2:A5=C2,B2:B5))

数据

我已在同一页面上显示它们,但您可以跨工作表进行操作,例如

=MIN(IF(Sheet1!A2:A5=A1,Sheet1!B2:B5))

【讨论】:

【参考方案2】:

如果您使用 Office 365:

=MINIFS(B:B,A:A,E2)

如果您有 2010 年或之后的版本:

=AGGREGATE(15,6,B2:B5/(A2:A5=E2),1)

如果是 2010 年之前,则使用此数组公式:

=MIN(IF(A2:A5=E2,B2:B5))

作为数组公式,在编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 来确认。

【讨论】:

以上是关于努力从 VLOOKUP 创建一个带有 MIN 的函数的主要内容,如果未能解决你的问题,请参考以下文章

带有 VLOOKUP 的 Google 电子表格多个结果

Vlookup,For Next,带有树变量

带有范围的 Excel VBA Vlookup

VLookup 在另一个工作簿上

excel函数 value是啥意思

查看 Chrome 控制台时,video.min.js 中出现“拒绝从 blob 创建工作者”错误