如果单元格包含“?”然后公式 X 如果不是则复制值

If cell contains '?' then formula X if not then copy value

目前我正忙于传播sheet以分析每个url的结果。问题是,当我想列出唯一的 urls 时,urls 后面有一个参数(例如'?fbads')将被视为唯一的,而不是我需要的这些结果与主要 url 混合在一起。请参见下面的示例:

https://www.holidayguru.nl/deal/accommodatie/luxe-strandvakantie-in-ijmuiden-5e25ba62-e001-4072-8eb5-b6c3b0e7e66f/?fbclid=IwA & https://www.holidayguru.nl/deal/accommodatie/luxe-strandvakantie-in-ijmuiden-5e25ba62-e001-4072-8eb5-b6c3b0e7e66f/

两者都应该是:https://www.holidayguru.nl/deal/accommodatie/luxe-strandvakantie-in-ijmuiden-5e25ba62-e001-4072-8eb5-b6c3b0e7e66f/

我已经用公式解决了这个问题,但我需要一个包含所有 url 的列表。所以我正在寻找两种选择。或者在

=LEFT(A11,FIND("?",A11)-1)

我现在使用的是我需要找到一种表达方式。 如果您没有找到“?”不仅仅是复制单元格 A11

或者...

我必须使用 if 函数来判断 A11 是否包含“?”比执行 =left 功能否则使用 A11.

我无法使公式生效。演示 sheet 在下方 :)。谢谢!

Example spreadsheet

删除 Sheet1!A:A 中的所有内容(包括 header)并将以下内容放入 Sheet1!A1:

=ArrayFormula({"UNIQUE URLS"; UNIQUE(FILTER(REGEXEXTRACT(URLs!A2:A,"[^\?]+"),URLs!A2:A<>""))})

这将创建 header(您可以在公式本身中随意更改)和一个唯一的 URL 列表,仅由问号前的部分确定(如果存在问号)或到原始 URL.

的末尾

供您参考,表达式 [^\?]+ 表示“可以提取的最大长度的字符串,不包含文字问号。”

[ ] = "此处包含的任何字符"

[^ ] = "不是这些字符中的任何一个"

\ = 文字标记(即,接下来的内容将被视为文字字符)

\? = 文字问号(在 ? 之前使用文字标记是必要的,因为单独 ? 在 REGEX-type 表达式中具有单独的特殊含义)

+ = "一个或多个前面的字符或字符组"