【问题标题】:I need a function to get desired column by matching other column values我需要一个函数来通过匹配其他列值来获取所需的列
【发布时间】:2021-12-06 22:09:06
【问题描述】:

我有两张桌子。

表 1

表 2

现在我想要一个函数来比较测试列,当它们相等时(例如表的第 2 行与表 2 的第 3 行和第 4 行匹配)我需要比较价格列以检查最大值(在本例中为第 3 行600 大于第 4 550 行),然后返回我选择的列。所以这应该返回“pixel as Value1”和“4 as rank”。

我尝试了 VLOOKUP, IF 但无法将它们合并以获得所需的结果。任何帮助表示赞赏。

【问题讨论】:

    标签: excel vba function excel-formula vlookup


    【解决方案1】:

    如果您有 Excel-365,他们可以将 FILTER()SORT() 函数与 INDEX() 一起使用。试试-

     =IFERROR(INDEX(SORT(FILTER($E$9:$G$12,$D$9:$D$12=$A2),3,-1),1,COLUMN(A$1)),"")
    

    【讨论】:

    • 太棒了 :) 这对我有用
    • @Curious 很高兴知道!如果这项工作,那么请将其作为已回答(勾选标记)。
    【解决方案2】:

    与@Harun 的回答非常相似,但我使用过:

    B2中的公式:

    =IFERROR(INDEX(SORT(FILTER(E$2:H$5,E$2:E$5=A2),4,-1),{2,3}),"")
    

    【讨论】:

      【解决方案3】:

      如果你没有 Excel-365,你可以这样做。

      我在 B3 单元格中的公式是:

      =INDEX($B$14:$B$17;MATCH(A3&SUMPRODUCT(MAX(--($A$14:$A$17=A3)*$D$14:$D$17));$A$14:$A$17&$D$14:$D$17;0))
      

      单元格 C3 中的公式几乎相同,只需更改 INDEX 上的第一个参数以检索 Rank 列:

      =INDEX($C$14:$C$17;MATCH(A3&SUMPRODUCT(MAX(--($A$14:$A$17=A3)*$D$14:$D$17));$A$14:$A$17&$D$14:$D$17;0))
      

      请注意,这两个公式都是数组公式,因此必须按 CTRL+SHIFT+ENTER 输入它们,否则将不起作用!

      此外,如果未找到测试,则会引发错误。例如,现在使用值 ad 将不起作用,因为这些值不存在于 Table2 中。

      【讨论】:

        【解决方案4】:

        如果您没有运行 Excel 365,这是另一个选项

        =INDEX($H$2:$H$5,MATCH(AGGREGATE(14,4,($G$2:$G$5=A2)*$J$2:$J$5,1),$J$2:$J$5,0))
        

        =INDEX($I$2:$I$5,MATCH(B2,$H$2:$H$5,0))
        

        上面的公式在单元格 B2 和 C2 中,如下图所示

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-02-13
          • 1970-01-01
          • 2020-02-27
          • 1970-01-01
          • 2013-12-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多