如何使用布尔逻辑和字符串来替换 Google Sheets 公式中的多个嵌套 If 语句?

问题描述 投票:0回答:1

我刚刚发现可以非常方便地使用布尔逻辑来缩短/替换此问题中的多个嵌套 If 语句(第 4 个答案):

有没有办法缩短多个if语句?

用这个给定的示例代替多个嵌套 IF 语句:

多重嵌套 IF 语句版本:

= IF(E3 = "red", 100, IF(E3 = "blue", 200, IF(E3 = "green", 300, IF(E3 = "orange", 400, 500))))

VS

布尔逻辑版本:

= (E3 = "red") * 100 + (E3 = "blue") * 200 + (E3 = "green") * 300 + (E3 = "orange") * 400 + (E3 = "purple") * 500

当打算返回数字时,这很有效。

如果为 true,则以下返回 100 或 200。

=(REGEXMATCH(B19,F2)) * 100 + (REGEXMATCH(B19,F40)) * 200

但是在尝试返回字符串时出现

MULTIPLY
ADD
错误。

例如,单元格

F2
中有 2 个字符串“Time”,单元格
F40
中有“Test”:

=(REGEXMATCH(B19,F2)) * F2 + (REGEXMATCH(B19,F40)) * F40

返回此错误:

函数 MULTIPLY 参数 2 需要数值。但“Test”是文本,不能强制转换为数字。

=(REGEXMATCH(B19,F2)) & F2 + (REGEXMATCH(B19,F40)) & F40

返回此错误:

函数 ADD 参数 1 需要数值。但“Test”是文本,不能强制转换为数字。

=(REGEXMATCH(B19,F2)) & F2 & (REGEXMATCH(B19,F40)) & F40

返回:

FALSETimeTRUE测试

我的问题:

有没有办法将布尔逻辑与字符串一起使用?如果可以的话像数字一样简洁?

如果字符串有的话,可以用什么运算符?

非常感谢您的帮助和见解!

google-sheets google-sheets-formula boolean-logic
1个回答
2
投票

(REGEXMATCH(B19,F2)) * F2
是数字时,布尔解决方案与
F2
一起使用的原因是,公式会转换
TRUE|FALSE * F2
,并且如果检测到您要相乘/,工作表会自动将
TRUE|FALSE
分别转换为
1|0
/添加是一个数字,因为它支持。

F2
是字符串时,它不支持字符串和数字相乘/相加,从而导致您的问题。

您可以使用的是

IF
的更简单版本,它不需要像您正在做的那样嵌套、外观和功能。这是
IFS

你的公式:

=((REGEXMATCH(B19,F2)) * F2) + ((REGEXMATCH(B19,F40)) * F40)

变成:

=IFS(REGEXMATCH(B19,F2), F2, REGEXMATCH(B19,F40), F40)

上述解决方案也可以用于数字。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.