在Excel表格中连接和过滤文本

时间:2015-01-14 23:25:50

标签: sql excel ms-access concatenation

好的,情况如下:

我在Excel中有一个包含15列的表。

其中三列与扫描的PDF文档ID相关。这些文档ID或多或少像这样:

PREFIX 00001 - PREFIX 00008
PREFIX 00008 - PREFIX 00010

这些在表格中分解如下:

PREFIX | DOCSTART | DOCEND
--------------------------
PREFIX |  00001   |  00008
PREFIX |  00008   |  00010

问题在于,有时文档有多个PREFIX(即使ID保持不变),也有一些“拒绝”字符串。导出它的系统不是生成新行,而是插入带有其他值的分号。所以我们有:

PREFIX |  00001   |  00008 |
PREFIX |  00008   |  00010 |
PREFIX; PREFIX1; PREFIX2 |  00011; 00011; 00011 | 00015; 00015; 00015 |
PREFIX; Rejected | 00016; Rejected | 00020; Rejected |
Rejected; PREFIX | Rejected; 00021  | Rejected; 00022 |

COMMA DELIMITED EXEMPLAR

PREFIXCODE,DOCSTART,DOCEND
PREFIX; <Non-Production>; <Non-Production>; <Non-Production>; <Non-Production>,12345; <Non-Production>; <Non-Production>; <Non-Production>; <Non-Production>,12445; <Non-Production>; <Non-Production>; <Non-Production>; <Non-Production>
<Rejected>; PREFIX,<Rejected>; 2124,<Rejected>; 2125
PREFIX,2477,2484
PREFIX,2488,2495
<Rejected>; PREFIX; <Non-Production>,<Rejected>; 208181; <Non-Production>,<Rejected>; 208082; <Non-Production>
<Rejected>; PREFIX,<Rejected>; 20845482,<Rejected>; 20845482
<Rejected>; PREFIX; PREFIX2,<Rejected>; 40502; 40502,<Rejected>; 40510; 40510

我只需将一个系列(标准的“PREFIX”系列)放入一列。我可以CONCATENATE()那些已经足够简单化的东西,但是没有蛮力攻击,我不确定在连接所有内容时摆脱PREFIX1,PREFIX2和Rejected系列的最佳方法。

好处是我可以选择任何系列的Prefix,Prefix1和Prefix2值,因为这个值与另一个一样好,我可以完全摆脱“Rejected”字符串而不回头。 (这将由显然喜欢将这些东西放在桌子上但也有印刷副本的人审查。)

如果没有涉及过滤器和替换的蛮力攻击,有没有更优雅的方法来做到这一点,我错过了? (如果有帮助的话,我可以导入Access并使用SQL攻击它。)

我将在接下来的几周内反复讨论这个问题,这些表通常有100到1000行,所以我需要一些东西来提高效率......

感谢。

1 个答案:

答案 0 :(得分:0)

因此假设第一个PREFIX实例出现在单元格A4中,您可以使用这样的公式来获取所有前缀的列。     = IF(A4 = “前缀”,B4, “”)

这将为您提供列B的值,无处不在列A的值为PREFIX。将其向下拖动以获取值然后使用连接和/或转置的组合将您的值列表转换为您需要提供的格式。

希望我能理解这些数据。