关于如何在第二列中的两个值之间组合单元格的更好解决方案
Nicer solution for how to combine cells between two values in a second column
尽管我想出了解决问题的办法,但我还是希望有人能帮我找到一个新的,但不是这样的"cumbersome"
这是我的情况:
- A 列中的单元格包含值(时间戳)或为空白
- 每个时间戳之间的空白单元格数量不同
- B 列中的单元格始终包含一个值(字符串)
这是我需要的:
- 在 C 列中,在 A 列中的时间戳之间组合 B 列中的字符串
因为我知道两个时间戳之间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 在线。
尽管我想出了解决问题的办法,但我还是希望有人能帮我找到一个新的,但不是这样的"cumbersome"
这是我的情况:
- A 列中的单元格包含值(时间戳)或为空白
- 每个时间戳之间的空白单元格数量不同
- B 列中的单元格始终包含一个值(字符串)
这是我需要的:
- 在 C 列中,在 A 列中的时间戳之间组合 B 列中的字符串
因为我知道两个时间戳之间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 在线。