如何在Google表格的一个单元格中包含多个IF语句


17

我试图根据相邻单元格的值更改Google表格中单元格的值。使用 Quora答案中的公式,可以从与之相邻的单元格的颜色中获取该值。因此,单元格的值应根据从第一个单元格的颜色获得的十六进制代码进行更改。目前有四个可能的十六进制值,因此我试图在同一单元格中放置四个不同的IF语句,因此将基于此值更改其值。

我的第一次尝试导致公式解析错误:

=if((J2="#00ff00","Read"), if(j2="#ff0000", "Unread"), if(j2="#ff9900","In Progress"), if(j2="#000000", "Not Applicable"))

显然,您不能简单地将带逗号的if语句分开。基于这个堆栈溢出问题,我尝试了使用嵌套的IF语句编写以下代码:

=if((J2="#00ff00","Read", if(j2="#ff0000", "Unread", if(j2="#ff9900","In Progress",if(j2="#000000", "Not Applicable")))))

这也会导致公式解析错误。

有什么方法可以在同一个单元格中简单包含多个IF语句,这些语句对我的代码有效?


您可以将它们组合成= OR或类似的东西吗?
AccioBooks

Answers:


19

使用lookup代替if

=lookup(B7,
       {"#000000","#00ff00","#ff0000","#ff9900"},
       {"Not applicable", "Read","Unread","In Progress"}
  ) 

注意第二个参数必须是一个排序列表。


1
请注意,如果第三个参数中的项为表达式,则此方法无效
Christiaan Westerbeek

1
请注意,第一个数组(“键”数组)必须进行排序(当我的按字母顺序升序排序时,该数组才起作用)才能使其按预期工作。
fgblomqvist

@ChristiaanWesterbeek,有没有解决的办法,还是只需要使用嵌套ifs
安德鲁(Andrew)

23

简短答案

提供的示例中的问题是括号。正确应用它们。

说明

IF() 函数应具有两个参数,还可以选择第三个参数。

IF(logical_expression, value_if_true, value_if_false)

具体的问题

  • 提供的第一个示例是外部IF()具有太多参数。
  • 第二个示例是logical_expression外部的IF()不返回TRUEFALSE

在Google表格中,函数参数用逗号分隔(如果电子表格使用逗号作为小数点分隔符,则用分号分隔)。当括号用于将多个操作和函数封装在函数内部时,它们被视为包含它们的函数的参数。

常见的做法是将内部IF()作为value_if_false,但是可以通过多种方式完成。IF()在另一个内部加上value_if_truevalue_if_false称为IF() logical test nestingIF() nesting

下面是一个示例的示例,该示例具有三个IF(),其中两个用于确定value_if_false父级的IF()。括号样式的多行和垂直对齐方式适用于可读性

 =IF(logical_expression, value_if_true, 
     IF(logical_expression, value_if_true, 
        IF(logical_expression, value_if_true, value_if_false
          )
       )
    )

以上样式可用于Google表格公式编写。我发现它对于公式调试很有用。

参考


1
非常有用,尤其是格式化的多行样本-使其更易于理解和实施。
路加



1

为您提供了理论和更好的方法,但需要专门回答:

有什么方法可以在同一个单元格中简单包含多个IF语句,这些语句对我的代码有效?

请试试:

=if(J2="#00ff00","Read", if(J2="#ff0000", "Unread", if(J2="#ff9900","In Progress",if(J2="#000000", "Not Applicable"))))

也就是说,您的第二次尝试没有第一个左括号,也没有最后一个右括号。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.