从包含 3 个 URL 的 Excel 单元格中抓取 1 个 URL

从包含 3 个 URL 的 Excel 单元格中抓取 1 个 URL

我有一个 excel 单元格,其中包含 3 个 url 和一些周围的文本(在一个长字符串中):

Product Image URL: http://www.Website.com/product_images/y/099/7703_269_ImageDescription1.jpg|Product Image URL: http://www.Website.com/product_images/c/999/7703_269_ImageDescription2.jpg|Product Image URL: http://www.Website.com/product_images/r/560/7703_269_ImageDescription3.jpg

我需要抓取第一个没有空格的 URL,以便我可以将它单独发送到另一个单元格(我需要对每一行都执行此操作)。

我已经研究过解决方案,但似乎找不到适合我的情况的解决方案,而且我对 Excel 上的公式还不熟悉。感谢您的时间 :)

答案1

如果我们假设您的文本在 A1 中:

Product Image URL: http://www.Website.com/product_images/y/099/7703_269_ImageDescription1.jpg|Product Image URL: http://www.Website.com/product_images/c/999/7703_269_ImageDescription2.jpg|Product Image URL: http://www.Website.com/product_images/r/560/7703_269_ImageDescription3.jpg

您可以像这样编写公式:

=MID(A1,FIND(":",A1)+2,FIND("|",A1)-FIND(":",A1)-2)

它会给你这个结果:

http://www.Website.com/product_images/y/099/7703_269_ImageDescription1.jpg

公式的解释是:

MID(文本,开始,长度)

将从文本中返回一个潜台词,在本例中我们将从 A1 中找到第一个“:”,然后从那里找到下一个“|”,并返回其中的文本。

FIND(搜索到的文本,完成的文本)

将返回我们在完整文本中搜索的文本的位置。

因此,我们将整个文本放入 MID,子文本的开始是“:”的位置 +2,忽略“:”和下一个空格。子文本的长度由“|”的位置减去“:”的位置定义。

编辑: 如果你的 A1 单元格只有一个值,那么 MID 的第二个参数需要大于我们想要获取的文本的长度,它可以保持如下:

=MID(A1,FIND(“:”,A1)+2,LEN(A1))

我们知道 LEN(A1) 比 A1 的子集长。

第二次编辑:

如果合并两者,我们只需要在查找“|”字符时检查错误即可。如果找到,则返回到该位置的长度,如果未找到,则返回 LEN(A1)。

=MID(A1,FIND(“:”,A1)+2,IF(ISERROR(FIND(“|”,A1)),LEN(A1),FIND(“|”,A1)-FIND(“:”,A1)-2))

答案2

经过一些研究和反复试验:

=MID(G2, FIND("产品图片网址:", G2) +19, (FIND("|产品图片网址:", G2)-(FIND("产品图片网址:", G2) +19)))

其中 G2 是带有 URL 的字段。

相关内容