gpt4 book ai didi

excel - 在同一语句中使用带有 OR、AND 和通配符的 IF

转载 作者:行者123 更新时间:2023-12-04 21:54:37 24 4
gpt4 key购买 nike

我正在尝试创建一个 IF 语句,该语句基本上将查看一个单元格,该单元格当前具有一个宏,可以从查找列表中进行多选下拉。

IF 语句所基于的字段是包含以下信息的下拉列表:

Android
iOS
PC/Mac
All Devices
Mobile Devices

用户可以选择一个值或多个值。

IF 语句将为真 IF,该字段包含 All DevicesMobile DevicesAndroidiOS一起。它还必须能够检查通配符,因为您可以选择多个项目,因此可以是 Android, PC/Mac, iOS在这种情况下,它应该是正确的,因为 AndroidiOS已被选中。

实际语句应该是什么,因为这是我正在使用的当前语句,但我知道您不能在此语句中使用通配符字符串:
=IF(OR(C7="*-iOS*",C7="*-Android*",C7="Mobile Device",C7="All Delivery Methods",AND(C7="*-iOS*",C7="*-Android*")),"Mobile DTC/ALL","STB (VRP) HD, DEVICE (UVP) HD")

谢谢

编辑:如果满足以下任何场景并存在于单元格 C7 中,则返回 True 语句。

场景 1:所有交付方式
场景 2:移动设备
场景 3:Android 和 iOS

否则返回 False 语句。

最佳答案

Excel 不支持所有公式 ( see supported formulas ) 上的通配符语句,但如果您构建一点公式,您可以获得类似的结果。

解决方案一

例如,尝试使用 FIND()IFERROR() . FIND()会给你一个数字,告诉你搜索到的字符串在哪里。

因此,=FIND("-Android","tell me more about -Android") ,会给你一个号码。
如果它没有找到任何东西,它会给你一个值错误,你可以用 IFERROR 捕获它。并返回一个特定的值,例如-1 .

然后构建 OR检查大于 -1 的值你会得到你需要的。

解决方案二

另一种选择是使用 SEARCH() ,它以您期望的方式支持通配符:
=SEARCH("test*1";"aaaaaaaatestaaaa1")
将返回 9。SEARCH in MSDN

解决方案3

一般来说,有很多方法可以构建它。正如@ImaginaryHuman072889 的评论所建议的,您可以使用ISNUMBER() .它的优点是它可以很好地处理错误,因此您不需要错误捕获器。像这样的东西可以正常工作:
=OR(ISNUMBER(SEARCH("a","b")),ISNUMBER(SEARCH("b","b")))
但是,如果您使用返回 0 的选项更改第一个解决方案的方法,如果出现错误,您也会有类似的工作:
=OR(IFERROR(SEARCH("a","b"),0),IFERROR(SEARCH("b","c"),0))
这是完全相同数量的公式。

解决方案4

一个非常有趣的解决方案,同时避免 OR()IFERROR() ,由@barry houdini 提出。它只是返回 0 ,如果没有从结果中找到:

=COUNT(SEARCH({"a*a";"b*b";"c*c"},"I used to be abba fan."))

将返回 2,因为 a*ab*b发现于 abba .这是如何包含 AND() OP的原始问题:
=AND(
COUNT(SEARCH({"a*a";"b*b";"c*c"},"I used to be abba fan.")),
COUNT(SEARCH({"party*so";"am not"},"but now I am not."))
)

关于excel - 在同一语句中使用带有 OR、AND 和通配符的 IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47434729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com