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

时间:2014-09-11 19:10:21

标签: 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具有相同的值,是否可以以某种方式指定?

有几百个顶级域名我只想搜索少数,但使用VLOOKUP可能会让我无法添加全面的顶级域名列表并能够全部搜索。

4 个答案:

答案 0 :(得分:1)

这是您修复功能的方法:

=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。实际上有一段时间与之相关的挑战赛:

http://www.mrexcel.com/pc18.shtml

以下是一个例子:

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

example_image1

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

答案 1 :(得分:0)

您想为您的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"说我们不想要近似匹配,我们希望完全匹配。

答案 2 :(得分:0)

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

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

答案 3 :(得分:-1)

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

这是“数组函数”的一种形式(搜索“表数组”)。 Apple Numbers不能像Excel那样进行数组功能

因此,对于那些想要解决我遇到的问题的人,以下公式适用于PC和Mac的Excel和Mac的数量。

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