【问题标题】:excel: If I search for a MIN value in a range, and 2 values are MIN, it only displays the firstexcel:如果我在一个范围内搜索一个 MIN 值,并且 2 个值是 MIN,它只显示第一个
【发布时间】:2015-05-04 13:16:35
【问题描述】:

我有一个函数可以在一个范围内查找 MIN 值,比如说 9、18、12、9。 两个 9 都是 MIN,但 MIN 只查看“第一个”最小值。 我还希望能够在我的范围内提供第二个“9”作为选项,以使其更清楚:这些值所在的列代表一个位置,而值本身代表去那里的难易程度,因此,如果 2 个位置的值为“9”,我想要一种方法不仅可以显示第一个“9”列,还可以显示第二个“9”列,因为这个结果同样有效。使用此函数时如何处理第二个值,以便我的结果显示具有这些 MIN 值的第一列和第二列。有没有办法在另一个 MIN 搜索中排除已经找到的 MIN 值?或者我将如何解决这个第二个“最小”值?

感谢您的宝贵时间。

【问题讨论】:

    标签: excel excel-2010


    【解决方案1】:

    假设我们在 A 列中有数据

    C1 中输入数组公式:

    =IFERROR(SMALL(IF(($A$1:$A$20)=MIN(A$1:A$20),ROW($A$1:$A$20),""),ROW()),"")
    

    然后抄下来。

    数组公式必须使用 Ctrl + Shift + Enter 而不仅仅是 Enter 键。

    这将显示包含最小值的单元格的行号:

    【讨论】:

      【解决方案2】:

      您需要遍历找到的值。这段代码对我有用。注意循环中的 FindNext 操作。

      Set rngFound = rngSearch.Find(SrchVal, LookIn:=xlValues)
      If Not rngFound Is Nothing Then
          FirstFind = rngFound.Address
          Do
              'Do something with the found value
              Set rngFound = rngSearch.FindNext(rngFound)
          Loop Until rngFound.Address = FirstFind
      End If
      

      【讨论】:

      • 我觉得这不是我正在寻找的解决方案,因为我有一张很大的桌子,在我找到 4 个数字范围的 MIN 值之前,我 VLOOKUP 至极这些值所在的行,然后执行 MIN 函数,然后将此最小值链接到其对应的列名以检索位置。如何在这些操作中实现这一点?
      • 我不知道...据我了解,您所要求的正是我在上面的示例中所做的。我在多个列的范围内搜索最小值,然后在我的情况下突出显示它。您必须使用 FindNext 遍历最小值的所有位置。抱歉,我没有更好地理解您的问题。
      猜你喜欢
      • 2016-09-09
      • 1970-01-01
      • 1970-01-01
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多