如何连接多列中的最后一个非空白单元格值

如何连接多列中的最后一个非空白单元格值

我想知道如何以简洁的方式从多列中获取最后一个非空白单元格的值,即以绿色突出显示的预期值

在此处输入图片描述

我知道如何通过应用获取列中的最后一个非空白单元格

=IFERROR(LOOKUP(2,1/(INDIRECT("A1:A"&ROW())<>""),INDIRECT("A1:A"&ROW())),"")

然后通过应用连接多列

=TEXTJOIN("",TRUE,G4:L4)

我想到了几种可能的方法,例如:

  1. 将源数据从二维数组转换为一维数组并以数组公式的形式返回;
  2. 如果使用数组;
  3. 按行而不是按列循环。

但我想不出任何巧妙的公式并能正常工作。

任何帮助都将不胜感激。谢谢。

答案1

对于一行,您可以:

  1. 过滤非空白单元格

  2. 取最右边的一列

    =LET(r,A4:F4,TAKE(FILTER(r,r<>“”),-1))

在此处输入图片描述

要在单个溢出公式中执行此操作,只需将该计算放入 BYROW 中:

=LET(d,A4:F16,BYROW(d,LAMBDA(r,TAKE(FILTER(r,r<>""),-1))))

在此处输入图片描述

编辑:要应用 textjoin,您可以使用以下命令:

=LET(
    d, A4:F16,
    BYROW(
        d,
        LAMBDA(r,
            LET(
                lastletter, TAKE(FILTER(r, r <> ""), -1),
                position, XMATCH(lastletter, r),
                seqend, CODE(INDEX(lastletter, 1, 1)),
                seqstart, INDEX(seqend - position + 1, 1, 1),
                seq, SEQUENCE(seqend - seqstart + 1, , seqstart),
                TEXTJOIN("", TRUE, CHAR(seq))
            )
        )
    )
)

相关内容