【问题标题】:Struggling to create a function from VLOOKUP with MIN baked into it努力从 VLOOKUP 创建一个带有 MIN 的函数
【发布时间】: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找到最小值/最大值

标签: vba excel


【解决方案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 来确认。

    【讨论】:

      猜你喜欢
      • 2019-01-13
      • 2021-03-03
      • 2020-02-09
      • 2019-05-04
      • 1970-01-01
      • 2020-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多