根据可变的开始和结束列连接 Excel 行中的单元格

Sco*_*Cal 2 excel vba excel-formula

我有一个如下所示的数据集:

一种 C D
1 4 5
2 3 6
1 3

我需要创建一个列,将每行中的单元格从带有值的第一个单元格连接到带有值的最后一个单元格,即使中间有空格也是如此。这些需要用分号分隔。所以第一行的输出将是1; ;4;5. 第二行是2;3; ;6. 第三行是1; ; ; ;3

就目前而言,我设法添加了几个公式,用于标识每行范围内的开始和结束列引用(即第一行开始第 1 列,结束第 4 列)。

在行中查找第一个非空白单元格引用的公式:

={MATCH(FALSE(ISBLANK(H6:AB6),0)}
Run Code Online (Sandbox Code Playgroud)

在行中查找最后一个非空白单元格引用的公式:

=AGGREGATE(14,6,(COLUMN(H6:AB6)-COLUMN(H6+1)/(H6:AB6<>""),1)
Run Code Online (Sandbox Code Playgroud)

我正在努力解决如何让公式使用该行的起始列号并使用 ; 拉回后续单元格值。分隔符,直到它到达并包含最后一列引用号。

Jvd*_*vdV 5

一个FILTERXML()替代方案:

在此处输入图片说明

公式G1

=TEXTJOIN(";",0,IFERROR(FILTERXML("<t><s>"&TEXTJOIN("</s><s>",0,A1:E1)&"</s></t>","//s[.!='' or (following::*!='' and preceding::*!='')]"),""))
Run Code Online (Sandbox Code Playgroud)