Excel 公式或 VBA 帮助

Excel 公式或 VBA 帮助

不确定这在公式中是否可行或是否需要 VBA,但我有以下数据集,

数据集

我想要从 A:F 中获取值,忽略任何空单元格并在单元格 G 中构建值(包括每对后的回车符)

我尝试了文本连接,它让我完成了部分工作,但它将所有值合并为一个字符串。如您所见,它们需要转为 A => B B => C C => D

但忽略空白。

任何帮助都值得感激!

答案1

使用:

=TEXTJOIN(CHAR(10),TRUE,INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,1))&" => "&INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,2)))

通过使用,INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,1))我们INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,2))创建两个非空单元格数组,一个以第一个单元格开始并以倒数第二个单元格结束,另一个以第二个单元格开始并以倒数最后一个单元格结束。

然后我们将其连接起来" => "并使用 TEXJOIN 添加换行符。

并抄下来。

在此处输入图片描述

答案2

我将按如下方式解决该问题:

为生成中间结果的每条数据行引入一条辅助行:T1、T1、T5、T3、T6、T6、T2、T2、T3l、T3、T7

规则:“如果单元格为空,则填写前任” A3:=A1 B3:=if(b1="";a1;b1)

然后,您可以在另一行辅助行中,使用 vbCrlf 作为换行符,以累积方式构建最终表达式:规则:“如果单元格内容发生变化,则向公式添加另一个子表达式,如果不重复旧公式”b4:=if(b3<>a3; a4 & vbcrlf & a3 &“=>”b3; a4)...

相关内容