0

我有一个导入 Excel 2010 的 CSV 文件。一个单元格包含我想要的一部分文本,但它在单元格中具有不同的长度和位置。并非每条记录在单元格中都有数据。每段文本由分号 (;) 分隔,但仍在同一单元格内。所以:

  • B2 = text_I_want
  • B3 = 空白
  • B4 = text_I_don't_want; text_I_want_that_has_a_different_length;more_text_I_don't_want
  • B5 = text_I_don't_want; text_I_don't_want; text_I_don't_want; text_I_want_now ;

同一行的 M 列应该包含我想要的整个文本,但只包含我想要的。所以:

  • M2 = text_I_want
  • M3 = 空白
  • M4 = text_I_want_that_has_a_different_length
  • M5 = text_I_want_now

有超过 10,000 条记录需要查看,希望得到帮助。

编辑:我没有清楚地解释自己。B 列包含一个包含各种超链接的文本字符串。每个单元格可以包含零个超链接、一个超链接、2、3、4 等等。每个超链接由分号分隔。我只想要 amazon.com 超链接,而不是 amazon.ca 或 amazon.co.uk 或任何其他超链接。我希望这是一个更清晰的例子,在一个单独的字段中我想要什么,加粗。-B2 = amazon.com/12345 -B3 =amazon.ca/search?keywords=William+Shatner -B4 =amazon.ca/12AB; amazon.com/AB1;loc.gov/fubar -B5 = amazon.com/978037346; amazon.de/search?VX123 EDIT #2 - 因为我可以将文本转换为列,这个问题如何:如何在行 com 列 AG 中搜索包含 amazon.com 的任何单元格,然后将该单元格内容复制到列 M ?

4

2 回答 2

0

您可以使用Find/FindB(取决于您的内容是单字节还是 MBCS 数据 - 以BMBCS 数据结尾的内容)。

例如N2,您可以使用

=Find(M2, B2)

N2将包含 in 中文本的偏移量(索引),M2如果B2未找到,则为零。

要提取文本,请使用Mid/MidBLen/LenB。您可以将其添加到 中P2,例如:

=IF(N2 > 0, MID(B2, N2, LEN(M2)), "")

这将检查 in 的值N2是否大于零,如果它从B2in 指示的位置开始复制文本,N2则返回的字符数为 in 的文本长度M2。如果N2为零,则返回一个空格。

实际上,您可以将这两种操作合二为一(阅读起来有点困难):

=IF(Find(M2, B2) > 0, Mid(B2, Find(M2, B2), Len(M2)), "")    
于 2013-07-17T00:51:06.757 回答
-1

根据您的第一次编辑,使用amazon.com/in B1(为了灵活性)然后:

=IF(AND(IFERROR(FIND(";",B2,IFERROR(FIND($B$1,B2),"")),"")="",IFERROR(FIND($B$1,B2),"")<>""),B2,IFERROR(MID(B2,IFERROR(FIND($B$1,B2),""),IFERROR(FIND(";",B2,IFERROR(FIND($B$1,B2),"")),"")-IFERROR(FIND($B$1,B2),"")),""))  

(根据需要复制下来)应该可以工作。

SO17689216 示例

于 2013-07-20T02:05:46.550 回答