努力从 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 的函数的主要内容,如果未能解决你的问题,请参考以下文章