Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 更好的解决方案是如何在第二列中的两个值之间组合单元格_Excel_Merge_Formula - Fatal编程技术网

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

Excel 更好的解决方案是如何在第二列中的两个值之间组合单元格,excel,merge,formula,Excel,Merge,Formula,尽管我想出了解决问题的办法,但我还是希望有人能帮我找到一个不那么“麻烦”的新办法 以下是我的情况: 列a中的单元格包含值(时间戳)或为空 每个时间戳之间的空白单元格数不同 列B中的单元格始终包含一个值(字符串) 以下是我需要的: 在C列中,在A列的时间戳之间组合B列中的字符串 由于我知道A列中两个时间戳之间的最大空格数为5,因此我创建了此函数..(出于显示原因,我删除了“”之间的空格,并在每个IF前面插入了一个换行符) 如果空白的最大数量为10,公式将变得非常长…因此,任何如何以更优雅的

尽管我想出了解决问题的办法,但我还是希望有人能帮我找到一个不那么“麻烦”的新办法

以下是我的情况:

  • 列a中的单元格包含值(时间戳)或为空
  • 每个时间戳之间的空白单元格数不同
  • 列B中的单元格始终包含一个值(字符串)
以下是我需要的:

  • 在C列中,在A列的时间戳之间组合B列中的字符串
由于我知道A列中两个时间戳之间的最大空格数为5,因此我创建了此函数..(出于显示原因,我删除了“”之间的空格,并在每个IF前面插入了一个换行符)

如果空白的最大数量为10,公式将变得非常长…因此,任何如何以更优雅的方式得出相同解决方案的想法都将受到赞赏! 谢谢
Ivana

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

我将添加三个新列,而不是一个。我的解决方案假设第一行的顶部有一个标题。它还允许在时间戳之间出现五个以上的空格(如果有)

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

Column C: =IF(ISNUMBER(A2),B2,C1 & " " & B2)
Column D: =IF(ISNUMBER(A2),A2,D1)
Column E: =IF(D2<>D3,C2,"")
像以前一样向下复制。

您可以将一些旧的范围寻址与新的ª一起应用

在C2 as中

 =IF(A2<>TEXT(,), IFERROR(TEXTJOIN(CHAR(44), TRUE, B2:INDEX(B:B, MATCH(1E+99, A$1:A1))), TEXT(,)), TEXT(,))
=IF(A2TEXT(,)、IFERROR(TEXTJOIN(CHAR(44)、TRUE、B2:INDEX(B:B,MATCH(1E+99,A$1:A1))、TEXT(,)、TEXT(,)
根据需要填写



可通过和Excel在线使用。如果您有Excel 2016,您可以使用
CONCAT
功能。你可以使用VBA。您可以使用一个公式,从C2开始,将B2和上面的行连接起来。在VBA中更容易实现。Ron的方法是可行的,但它会在C列的单元格中留下一个与a列中的空格相同的行中的字符串构建块。您还需要添加一个IF语句来检查列中的时间戳,并从头开始连接。类似于:`if(A2''那么B1,B1&''&C2)@RonRosenfeld-必须清楚这一事实,并且只能在中使用Office 365订阅(或Excel Online)。感谢您的想法,我应该指定我使用Excel 2013,对不起。非常感谢这正是我想要的。我甚至想在附加列中组合更多函数,但我不确定如何正确组合它们。只要时间戳不相同(不应该发生得太频繁),它就可以完美地工作!如果可能存在重复的时间戳,则应考虑这些时间戳。请看我的修改。谢谢你的建议-我可以看到你在这方面做了很多工作,我真的很感激。我会认真考虑升级到Excel 2016(我目前使用的是2013版本)-我只是有一个小的后续问题:如果我想让TeXJoin在时间戳之间组合字符串,我如何改变函数呢?在您的示例中,它将是第2-7、8-11、12-14行。。。
Column E: =IF(ISNUMBER(A3),C2,IF(ISBLANK(B3),C2,""))
 =IF(A2<>TEXT(,), IFERROR(TEXTJOIN(CHAR(44), TRUE, B2:INDEX(B:B, MATCH(1E+99, A$1:A1))), TEXT(,)), TEXT(,))