首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否向excel公式if语句添加or函数?

是否向excel公式if语句添加or函数?
EN

Stack Overflow用户
提问于 2014-08-14 19:14:26
回答 1查看 103关注 0票数 0

我有一个if语句,它搜索一个单元格,看看它是否包含多个值中的一个,如果该值存在,则显示来自另一个单元格的值。

因此,在单元格A1中,我有以下代码:

代码语言:javascript
复制
=IF(COUNT(SEARCH({"SLR","SMR","BRL"},G10)),CONCATENATE(HYPERLINK(AV10)),"")

此代码在单元格G10中搜索SLRSMRBRL

如果该值存在,则显示单元格AV10中的值

我想添加一个or-语句,这样我就可以有多个if-语句,如下所示

代码语言:javascript
复制
=IF(COUNT(SEARCH({"SLR","SMR","BRL"},G10)),CONCATENATE(HYPERLINK(AV10)),""), OR,
 IF(COUNT(SEARCH({"TTT","RRR","BBB"},G10)),CONCATENATE(HYPERLINK(AV11)),""), OR, 
 IF(COUNT(SEARCH({"ZZZ","XXX","YYY"},G10)),CONCATENATE(HYPERLINK(AV12)),""), OR, 
 IF(COUNT(SEARCH({"LLL","MMM","QQQ"},G10)),CONCATENATE(HYPERLINK(AV11)),""), OR, 
 IF(COUNT(SEARCH({"UUU","KKK","PPP"},G10)),CONCATENATE(HYPERLINK(AV13)),""),"ERROR")

因此,我们这里有一个很大的if语句,它检查一个单元格是否包含一组三个值"SLR", "SMR", OR "BRL",如果包含,则以AV10格式显示链接;如果单元格不包含这三个值,但inStead包含"TTT", "RRR", "BBB",则以AV11格式显示值,依此类推

有谁能帮我一下吗?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2014-08-14 19:28:41

通常的做法是将if语句的else部分中的空字符串替换为下一个if语句。那么单词ERROR就出现在最后一条if语句的最后一个else中。如下所示:

代码语言:javascript
复制
=IF(COUNT(SEARCH({"SLR","SMR","BRL"},G10)),CONCATENATE(HYPERLINK(AV10)),
 IF(COUNT(SEARCH({"TTT","RRR","BBB"},G10)),CONCATENATE(HYPERLINK(AV11)),
 IF(COUNT(SEARCH({"ZZZ","XXX","YYY"},G10)),CONCATENATE(HYPERLINK(AV12)),
 IF(COUNT(SEARCH({"LLL","MMM","QQQ"},G10)),CONCATENATE(HYPERLINK(AV13)),
 IF(COUNT(SEARCH({"UUU","KKK","PPP"},G10)),CONCATENATE(HYPERLINK(AV14)),
 "ERROR")))))

我不知道为什么你会有一个连接函数--它连接了它的参数,但是每个参数只有一个参数,所以它实际上什么也做不了。除非我不明白你做了什么,否则这应该做同样的事情:

代码语言:javascript
复制
=IF(COUNT(SEARCH({"SLR","SMR","BRL"},G10)),HYPERLINK(AV10),
 IF(COUNT(SEARCH({"TTT","RRR","BBB"},G10)),HYPERLINK(AV11),
 IF(COUNT(SEARCH({"ZZZ","XXX","YYY"},G10)),HYPERLINK(AV12),
 IF(COUNT(SEARCH({"LLL","MMM","QQQ"},G10)),HYPERLINK(AV13),
 IF(COUNT(SEARCH({"UUU","KKK","PPP"},G10)),HYPERLINK(AV14),
 "ERROR")))))

如果AV10包含=HYPERLINK("\\UKSH000-FILE06\Purchasing\New Supplier Set-Ups\assets\EMAIL_PLANT.msg","Send Email"),则=IF(COUNT(SEARCH({"SLR","SMR","BRL"},G10)),HYPERLINK(AV10),"")公式将创建单词Send Email的超链接,但单击它们不是有效地址。

因此,您真正想要做的是将AV10更改为=HYPERLINK("\\UKSH000-FILE06\Purchasing\New Supplier Set-Ups\assets\EMAIL_PLANT.msg")\\UKSH000-FILE06\Purchasing\New Supplier Set-Ups\assets\EMAIL_PLANT.msg,并更改我提供给您的论坛:

代码语言:javascript
复制
=IF(COUNT(SEARCH({"SLR","SMR","BRL"},G10)),HYPERLINK(AV10,"Send Email"),
 IF(COUNT(SEARCH({"TTT","RRR","BBB"},G10)),HYPERLINK(AV11,"Send Email"),
 IF(COUNT(SEARCH({"ZZZ","XXX","YYY"},G10)),HYPERLINK(AV12,"Send Email"),
 IF(COUNT(SEARCH({"LLL","MMM","QQQ"},G10)),HYPERLINK(AV13,"Send Email"),
 IF(COUNT(SEARCH({"UUU","KKK","PPP"},G10)),HYPERLINK(AV14,"Send Email"),
 "ERROR")))))

现在,计算出的超链接显示为Send Email,但地址正确(当您将鼠标悬停在单元格上时,可以在工具提示中看到地址)。如果您不喜欢让AV10 - AV14显示实际地址,并且希望它们也显示发送电子邮件,那么该公式需要在AV10 - AV14中提取超链接的地址。

根据http://blog.contextures.com/archives/2010/12/13/get-the-url-from-an-excel-hyperlink/的说法,没有内置的函数,但是如果你在那个页面上添加VBA函数,那么AV10可以保持为=HYPERLINK("\\UKSH000-FILE06\Purchasing\New Supplier Set-Ups\assets\EMAIL_PLANT.msg","Send Email"),你的公式将如下所示:

代码语言:javascript
复制
=IF(COUNT(SEARCH({"SLR","SMR","BRL"},G10)),HYPERLINK(HLink(AV10),"Send Email"),
 IF(COUNT(SEARCH({"TTT","RRR","BBB"},G10)),HYPERLINK(HLink(AV11),"Send Email"),
 IF(COUNT(SEARCH({"ZZZ","XXX","YYY"},G10)),HYPERLINK(HLink(AV12),"Send Email"),
 IF(COUNT(SEARCH({"LLL","MMM","QQQ"},G10)),HYPERLINK(HLink(AV13),"Send Email"),
 IF(COUNT(SEARCH({"UUU","KKK","PPP"},G10)),HYPERLINK(HLink(AV14),"Send Email"),
 "ERROR")))))

现在一切都显示发送电子邮件,但所有的超链接应该可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25306669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档