【问题标题】:How to fill-down concatenate formula in Excel changing the range如何在Excel中填写连接公式更改范围
【发布时间】:2016-08-05 16:49:03
【问题描述】:

stackoverflow 中的第一篇文章,希望它有效 :) 我需要在 Excel 中输入一些关于来自某些司法管辖区(法律、法令等)的文本的信息。我有几个文档,每个文档都有数千行。使用 OCR 处理器,我可以将其放入 Excel 工作表中。 我现在要做的是从一个单元格中的每篇文章/段落中获取全部信息。 数据会这样

1  Rawdata      ExtractArticle     Result
2  Article 1:    =LEFT(A2,7)        =CONCATENATE((TRANSPOSE(A2:A7))
3  Lorem ipsum
4  Dolor sit
5  amet,
6  consectetur 
7  adipiscing elit
8  Article 2:    =LEFT(A8,7)       =CONCATENATE((TRANSPOSE(A8:A11))
9  ed do eiusmod 
10 tempor incididunt 
11 ut labore
(...)
N-3  Article 100:  =LEFT(A(N-3),7)   =CONCATENATE((TRANSPOSE(A(N-3),A(N-1))
N-2  quo voluptas 
N-1  nulla pariatur?"

我想要做的,基本上就是把这个公式扩展到整个A:A,也就是每次第一个字符出现“Article”这个词时,连接中间的文本,这意味着文章的开头法律。

我尝试计算每个“文章”单词之间的空格,但是,使用 TRANSPOSE 这似乎不起作用。我还想过使用技巧来获取“文章”中单词之间的空格,但我不知道如何解决这个问题。

我看到的问题是每个“文章”的范围是可变的,所以填写任何公式都行不通,因为它会对初始范围使用相同的扩展名

任何帮助将不胜感激。我希望我的问题有任何意义,以防万一它不请告诉我。 谢谢

【问题讨论】:

  • 好的开始 - 欢迎来到 StackExchange。只是想知道第二列“ExtractArticle”的目的是什么?我认为您可以通过 VBA 中的一个简单循环来做到这一点 - 将所有文章提取并连接到第二张工作表上的并发单元格中
  • 为了将来参考,为了使此处的表格更具可读性,您可以使用此工具(由此处的某人创建):sensefulsolutions.com/2010/10/format-text-as-table.html

标签: vba excel


【解决方案1】:

在您的ExtractArticle 列中,将公式更改为:

=IF(LEFT(A3,7)="Article",A2,A2&" " &B3)

把这个放在B2并抄下来。

然后在 C2 中放:

=IF(LEFT(A2,7)="Article",B2,"")

你可以隐藏B列,只看到结果。

【讨论】:

  • Scott,这是对我的要求的简单而惊人的回答。对此,我真的非常感激。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-07
  • 1970-01-01
相关资源
最近更新 更多