【问题标题】:How can I merge rows in Excel based on a delimiter inbetween rows?如何根据行之间的分隔符合并 Excel 中的行?
【发布时间】:2021-08-13 05:43:07
【问题描述】:

我有一个 Excel 表,我从记事本中粘贴了文本。 问题是它为每一行文本创建了一行。

行如下所示:

|Questions|
---------------
|Question #1 %| 
|Question text|
|Portion of the same question inserted on additional row|
|Multiple choice A|
|Multiple choice B|
|Multiple choice C|
|Multiple choice D|
|Question #2 %|

我用这个作为分隔符“%”

我想使用此分隔符将它们之间的单元格组合/合并为一个单元格。 基本上每个问题一个单元格。大约有3000多个问题。我想进行一场比赛,看看哪些是重复的,当问题被分解到不同的单元格时,我无法做到这一点。

我尝试过使用 Text.Join、Concatenate、If 语句,不幸的是我的知识和 Excel 技能很差。

如果有任何帮助,我将不胜感激。谢谢!

【问题讨论】:

  • 既然有了 Excel 2010,就没有TEXTJOIN 函数,也没有Text.Join 函数。但是,您确实可以访问 Power Query——它是 2010 年免费提供的 MS 加载项(我相信它是 2016+ 版本中的内置插件),因此您可以使用它。如果这不可用,您可以编写一个 VBA 例程。由于这不是免费的代码编写服务,因此建议编辑您的问题以显示您已经尝试过的内容以及遇到问题的地方。建议您使用 VBA 或 PQ,因为它们比 Excel 2010 中的公式更简单。
  • 恕我直言,如果目标是“..运行匹配以查看哪些重复...”那么(假设所有内容都粘贴在 A 列中)在 B1 中执行 =COUNTIF($A$1:A1) 并拖动向下就可以了。对吗?
  • 更正>>应该是=COUNTIF(A:A,A1),然后放一个过滤器去掉所有的1。
  • @blane 下面的答案有帮助吗?

标签: excel text excel-formula merge excel-2010


【解决方案1】:

以下方法会有帮助吗?我将其分解为几列,以引导您了解其背后的逻辑。

基本上我做了以下事情:

B 列:我删除了所有尾随空格以及“|”象征 C 列:我检查了 A 列中的单元格是否有问题的标题或正文 D 列:与 C 列类似的逻辑,但这次我在前一行开始(见橙色单元格) E 列:如果我们在问题的开头,我们将单元格 A 复制到单元格 E。如果我们在问题的正文中,我们将 E 列中的前一个单元格连接到 A 列中的单元格。

您需要将所有公式放入橙色单元格中,然后您可以将它们向下拖动。

每列的公式:

Col B: =LEFT(RIGHT(TRIM(A3),LEN(TRIM(A3))-1),LEN(RIGHT(TRIM(A3),LEN(TRIM(A3))-1))-1)

Col C: =IF(RIGHT(B3,1)="%","HEAD","BODY")

Col D: =IF(RIGHT(B3,1)="%","keep","ignore")

Col E: =IF(C3="BODY",E2&" "&B3,B3)

我想你基本上会对黄色的单元格感兴趣,可以通过使用 D 列中的过滤器将其设置为“保留”来获得。

在 D 列中应用过滤器,以便您保留包含整个问题答案的单元格,这将为您提供以下结果。 在这里,您可以使用列 E 中的单元格中的值来运行重复分析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2010-11-15
    • 2021-03-08
    相关资源
    最近更新 更多