关于如何在第二列中的两个值之间组合单元格的更好解决方案

Nicer solution for how to combine cells between two values in a second column

尽管我想出了解决问题的办法,但我还是希望有人能帮我找到一个新的,但不是这样的"cumbersome"

这是我的情况:

这是我需要的:

因为我知道两个时间戳之间A列的最大空格数是5,所以我创建了这个函数..(我删除了“”之间的space,并在前面插入了一个换行符每个 IF 出于显示原因)

=IF(AND(ISNUMBER(A1),A2="",A3="",A4="",A5=""),B1&""&B2&""&B3&""&B4&""&B5,
IF(AND(ISNUMBER(A1),A2="",A3="",A4=""),B1&""&B2&""&B3&""&B4,
IF(AND(ISNUMBER(A1),A2="",A3=""),B1&""&B2&""&B3,
IF(AND(ISNUMBER(A1),A2=""),B1&""&B2,
IF(ISNUMBER(A1),B1,"")))))

如果最大空格数为 10,则公式将变得非常长...因此,如果有任何想法可以更优雅地得出相同的解决方案,我们将不胜感激! 谢谢, 伊万娜

如果您能够添加一些列,则可以简化您的公式。

我要添加三列而不是一列。我的解决方案假设您在第 1 行的顶部有一个 header。如果出现这种情况,它还允许时间戳之间有五个以上的空格。

在第 2 行中,输入以下公式:

Column C: =IF(ISNUMBER(A2),B2,C1 & " " & B2)
Column D: =IF(ISNUMBER(A2),A2,D1)
Column E: =IF(D2<>D3,C2,"")

将这些粘贴或拖动到时间戳和字符串的末尾以填充列。

D 和 E 列将包含您的时间戳和串联的 B 字符串。您可以选择它们或过滤它们以获得 non-blank 字符串。


编辑重复的时间戳

如果可能出现重复并且您需要单独跟踪它们,则按如下方式更改第 2 行中的 E 列:

Column E: =IF(ISNUMBER(A3),C2,IF(ISBLANK(B3),C2,""))

像以前一样抄下来。

您可以应用一些旧的 INDEX function range addressing together with the newer TEXTJOIN function¹。

在 C2 中,

 =IF(A2<>TEXT(,), IFERROR(TEXTJOIN(CHAR(44), TRUE, B2:INDEX(B:B, MATCH(1E+99, A:A1))), TEXT(,)), TEXT(,))

根据需要填写。


¹ TEXTJOIN function became available with Excel 2016 with Office 365 和 Excel 在线。