对于如何在第二列中的两个值之间合并单元格的更好的解决scheme

即使我想出了解决问题的办法,但是我希望有人能帮我find一个不那么“麻烦”的新手段,

这是我的情况:

  • 列A中的单元格包含值(时间戳)或为空
  • 每个时间戳之间的空白单元格的数量是变化的
  • B列中的单元格总是包含一个值(string)

这是我需要的:

  • 在列C中,将列B中的string组合在列A中的时间戳之间

由于我知道在两个时间戳之间的列A中的空白的最大数量是5,所以我创build了这个function..(我删除了“”之间的空格,并在每个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,公式将变得非常长…所以任何想法如何以更优雅的方式来到相同的解决scheme,赞赏! 谢谢,Ivana

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

我会添加三个新的列,而不是一个。 我的解决scheme假定您在第一行的顶部有一个标题。它也允许时间戳之间超过五个空格,如果有的话。

在第2行中,input以下公式:

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

将其粘贴或拖动到时间戳和string的末尾以填充列。

列D和E将包含您的时间戳和连接的Bstring。 您可以select它们或过滤它们以获取非空白string。


编辑重复TIMESTAMPS

如果重复可能发生,您需要分别跟踪它们,则更改第2行中的列E,如下所示:

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

像以前一样复制下来。

您可以将一些旧的INDEXfunction范围寻址与新的TEXTJOINfunction一起使用。

xlol_text_join_timestamp

在C2中,

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

根据需要填写。


¹ 使用Office 365和Excel Online的Excel 2016, TEXTJOINfunction可用。