Excel-如果单元格包含一个值,则返回另一个值,如果不包含,则搜索其他值

Excel-如果单元格包含一个值,则返回另一个值,如果不包含,则搜索其他值,excel,if-statement,Excel,If Statement,在A列中,我有一个带有各种TLD的域名列表,例如.com.co.net等。 在B栏中,我想列出每年的续约价格 我知道这不是正确的语法,但我希望有人能帮我 =IF(SEARCH(A2,".com"),9.00,(SEARCH(A2,".net"),10.50,SEARCH(A2,".co.uk"),5.00,"FALSE") 或者,如果有多个TLD具有相同的值,是否可以以某种方式指定该值 有几百个TLD我只想搜索一小部分,但使用VLOOKUP可能不需要我添加一个全面的TLD列表并能够搜索所有TL

在A列中,我有一个带有各种TLD的域名列表,例如.com.co.net等。 在B栏中,我想列出每年的续约价格

我知道这不是正确的语法,但我希望有人能帮我

=IF(SEARCH(A2,".com"),9.00,(SEARCH(A2,".net"),10.50,SEARCH(A2,".co.uk"),5.00,"FALSE")
或者,如果有多个TLD具有相同的值,是否可以以某种方式指定该值


有几百个TLD我只想搜索一小部分,但使用VLOOKUP可能不需要我添加一个全面的TLD列表并能够搜索所有TLD。

您想为您的TLD和价格创建一个查找表吗

.com | $10
.net | $5
.org | $5
然后,您需要拆分域,以便将TLD放在单独的列中。如果所有TLD都是三个字母,例如.net.com,则可以将它们放入单独的列中,如下所示:

=RIGHT(A1, 4)
如果它们不仅仅是三个字母的TLD,那就有点棘手了

将TLD拆分为单独的列后,使用VLOOKUP函数查找每个TLD的价格

=VLOOKUP(tld_to_lookup, range_of_lookup_table, 2, FALSE)

该公式中的2是对上面查找表中第二列的引用,FALSE表示我们不需要近似匹配,我们需要精确匹配。

这是修复函数的方法:

=IFERROR(IF(IFERROR(SEARCH(".com",A2),FALSE),9,IF(IFERROR(SEARCH(".net",A2),FALSE),10.5,IF(IFERROR(SEARCH(".co.uk",A2),FALSE),5,"NO MATCH"))),"NO MATCH")
但最好的选择是使用通配符查找函数la barry houdini。不久前,实际上有一场与此相关的挑战赛:

以下是一个例子:

=VLOOKUP(LOOKUP(32768,SEARCH(D$2:D$4,A2),D$2:D$4),$D$2:$E$4,2,FALSE)

通过这种方式,您可以避免检查无数url域名的无限长复合if语句。

此数组公式将用于查找任何其他任意字符串中的任意字符串:

{=VLOOKUP(MID(cellBeingSearched,MIN(IFERROR(FIND(FirstColumnOfTable,A2),1000)),1000),WholeTable,2,FALSE)}

@Stepan1010发布的答案对于excel来说是正确的

它是搜索表数组的数组函数的一种形式。苹果数字不能像Excel那样实现数组功能

所以,对于那些希望解决我所面临问题的人来说,下面的公式适用于PC和Mac的Excel和Mac的数字

=VLOOKUP(RIGHT(A2,LEN(A2)-SEARCH(".",A2)+1),C$2:D$4,2,FALSE)

这似乎只适用于我放入公式的第一个单元格,但当我向下拖动手柄时,它似乎不起作用,因为我应该指出,这在Excel中效果很好,但在Apple数字中效果不太好,尽管函数相同且available@pnuts呜呜声。修正了这个问题。@JessicaHoward使公式与屏幕截图一致。关于苹果的数字,我从来没有用过它——我不能保证它会在那里工作。谢谢你的输入,你在其中添加了:cellBeingSearched FirstColumnOfTable WholeTable?你能给我看一个按照Stepan101的公式的例子吗?Thanks@pnuts与其批评,不如提出解决方案!