【问题标题】:Finding adjacent column values from the last non-null row of a certain column从某列的最后一个非空行中查找相邻列的值
【发布时间】:2019-12-02 01:56:24
【问题描述】:

是否有一个简单的内置函数可以从某一列的最后一个非空行中选择相邻值?

在下面的示例中,A 列 中的最后一个非空值是“E”,我想从下一列中选择相应的值“13”。

【问题讨论】:

    标签: arrays google-sheets google-sheets-formula array-formulas gs-vlookup


    【解决方案1】:

    试试:
    =VLOOKUP(INDEX(A:A,MAX((A:A<>"")*(ROW(A:A)))),A1:B,2,0)

    请参阅Selecting the last value of a column。有 22 个答案可供选择。

    我喜欢=INDEX(I:I;MAX((I:I<>"")*(ROW(I:I))))。它是最短的之一,并且可以处理空白行。

    添加VLOOKUP就可以得到相邻列的值了。

    【讨论】:

    • 如果 A 列中没有唯一值,VLOOKUP 可能会返回错误值。对您的首选解决方案稍作调整即可解决此问题:=INDEX(A:B;MAX((A:A<>"")*(ROW(A:A))),2)
    • 一个使用可用数据的方法,但这是一个很好的观点。
    【解决方案2】:

    尝试:

    =QUERY(A3:B, "select B where A !='' offset "&COUNTA(A3:A)-1)
    


    或:

    =ARRAYFORMULA(VLOOKUP(INDIRECT("A"&MAX(IF(A2:A="",,ROW(A2:A)))), A2:B, 2, 0))
    


    或:

    =ARRAYFORMULA(VLOOKUP(INDEX(QUERY({A2:A, ROW(A2:A)}, 
     "where Col1 !='' order by Col2 desc"), 1, 1), A2:B, 2, 0))
    

    【讨论】:

    • 第一个查询是为了简单起见。对于那些不太有才华的人(比如我自己),您介意在最后一个示例中解释row(A2:A) 的意义/作用吗?
    • 当然,ROW(A2:A) 结合 ArrayFormula 将为找到的每一行创建数字数组,因此在这种情况下它将是 2、3、4、5、6 的数组, 7,8,etc,etc...并且根据虚拟数组 {},它位于第二个位置,由 QUERY 拾取为 Col2。简单地说它只是行的简单反转
    【解决方案3】:
    =indirect("B" & max(ARRAYFORMULA(row(A1:A)*if(A1:A="",0,1))),true)
    

    =indirect("B" & arrayformula(max(if(A1:A<>"",row(A1:A),0))),true)
    

    或带偏移量

    =offset(B1,ARRAYFORMULA(MAX(if(A:A="",0,row(A:A))))-1,0)
    

    【讨论】:

      猜你喜欢
      • 2021-12-11
      • 2015-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      相关资源
      最近更新 更多