【问题标题】:Find the Last Cell Value of the 2nd Column Set for each 1st Column Cell in EXCEL在 EXCEL 中为每个第一列单元格查找第二列集的最后一个单元格值
【发布时间】:2020-09-20 12:13:15
【问题描述】:

我在 excel 中有以下结构化表格,其中包含 1000 行。

我想为 A 列中的每个值返回 B 列的最后一个单元格值。

例如:

  1. 对于单元格 A1 -> 我想返回单元格 B5。
  2. 对于单元格 A6 -> 我想返回单元格 B9。

我尝试过使用VLOOKUPHLOOKUPINDEX 以及许多以更多冲突情况结束的公式。谁能写下一个公式来满足我的要求吗?

【问题讨论】:

    标签: excel excel-formula excel-2010 excel-2007


    【解决方案1】:

    单元格C1中的数组公式(输入公式时按Control + Shift + Enter)并将其复制下来。

    =IF(A1="","",IFERROR(INDEX($A2:$B$20,MATCH(FALSE,ISBLANK($A2:$A$20),0)-1,2),LOOKUP(2,1/(B2:$B$20),B2:$B$20)))
    

    【讨论】:

    • 我认为这是一种很酷的方法。我试过这个公式。但它会导致每个单元格中 B 的最后一个单元格值。在您的屏幕截图中,结果 110、2 和 65 都被替换为值 65,这是 B 列的最后一个值
    • 是的,所有 3 个案例的结果都是 65
    • 我在粘贴公式之前使用了 ctrl + shift + enter。尝试按下这些键时粘贴不起作用
    • 否..你粘贴公式然后按c+s+e..然后复制单元格并粘贴下来。
    • 将公式粘贴到功能栏中,然后按c+s+e,就可以正常使用了。
    【解决方案2】:

    如果您不介意将 C 列用作辅助列,您可以使用类似的内容:

    【讨论】:

      【解决方案3】:

      如果您不使用数组公式,您可以使用此解决方案: 像这张图片:

      在第一个单元格 =OFFSET(A1;SUMPRODUCT(MAX(($A$1:$A1<>"")*(ROW($A$1:$A1))))-ROW(A1);0) 中使用 C 列作为此公式的助手

      并在 D 列的第一个单元格中使用此公式=IF(A1="";"";INDEX($B$1:$B$13;SUMPRODUCT(MAX((ROW($A$1:$A$13))*($C$1:$C$13=A1)))))

      并将填充复制到所有单元格。

      【讨论】:

        【解决方案4】:

        试试这个更短的,没有辅助列和非数组公式的解决方案

        C1,公式复制下来:

        =IF(A1="","",INDEX(B1:B$9,MATCH(1,FREQUENCY(1,0+(A2:A$9<>"")),0)))
        

        【讨论】:

        • 这甚至可以工作。但也会收到警告消息。谢谢
        猜你喜欢
        • 1970-01-01
        • 2020-09-19
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-22
        • 1970-01-01
        • 2016-12-10
        相关资源
        最近更新 更多