web-dev-qa-db-ja.com

Googleスプレッドシートの1つのセルに複数のIFステートメントを含める方法

隣接するセルの値に基づいて、Googleスプレッドシートのセルの値を変更しようとしています。この隣接セルは、 this Quora answerの式を使用して、隣接セルの色から値を取得します。したがって、セルの値は、最初のセルの色から取得される16進コードに基づいて変更する必要があります。現時点では4つの16進数の値があるため、4つの異なるIFステートメントを同じセルに配置しようとしていたため、これに基づいて値が変更されます。

私の最初の試みは、式の解析エラーにつながりました:

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

単純にifステートメントをコンマで区切ることはできないことは明らかです。 this Stack Overflow questionに基づいて、ネストされたIFステートメントでこのコードを試しました:

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

これは、式の解析エラーにもつながります。

私のコードで機能する同じセルに複数のIF文を単純に含める方法はありますか?

15
Jack Graveney

lookupの代わりに if を使用します。

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

2番目のパラメーターはソートされたリストでなければならないことに注意してください。

18
daniel

簡潔な答え

提供されている例の問題は括弧です。それらを適切に適用してください。

説明

IF()関数には2つのパラメーターと、オプションで3番目のパラメーターが必要です。

IF(logical_expression, value_if_true, value_if_false)

特定の問題

  • 提供されている最初の例は、外側のIF()のパラメーターが多すぎることです。
  • 2番目の例は、外側のIF()のlogical_expressionがTRUEまたはFALSEを返さないことです。

Googleスプレッドシート関数では、パラメーターはコンマで区切られています。括弧を使用して関数内のいくつかの操作と関数を囲む場合、それらを含む関数のパラメーターと見なされます。

一般的な方法は、内部IF()をvalue_if_falseとして配置することですが、多くの方法で実行できます。 value_if_trueおよびvalue_if_falseとして別の内部にIF()を追加すると、IF() logical test nestingまたは単にIF() nestingと呼ばれます。

以下に、3つのIF()を持つ式の例を示します。そのうちの2つは、親IF()value_if_falseを決定するために使用されます。読みやすくするために、括弧スタイルの複数行および垂直方向の配置が適用されます

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

上記のスタイルは、Googleスプレッドシートの数式作成で使用できます。数式のデバッグに役立ちました。

参照

21
Rubén

Ifとorを組み合わせる方法を見つけました。

例:

=IF(OR(B3>49,C3>49,D3>49),”Passed”,”Failed”)
=IF(AND(B3>49,C3>49,D3>49),”Passed”,”Failed”)
=IF(OR(AND(B3>49,C3>49),AND(B3>49,D3>49),AND(C3>49,D3>49)),”Won”,”Failed”)

あなたの例では:

= if(OR(J2="#00ff00",j2="#ff0000",j2="#ff9900"),"True","False")

出典: IF、AND、OR Google Doc Spreadsheetの論理関数の組み合わせ使用

3
Geoffrey Derry

たとえば、IFステートメントをネストできます

If(if(if(when all 3 equal true)))

うまくいく

OR

たとえば、ネストされたIFANDを使用できます

IF(AND(AND()))

また動作します。

1
TechnicalTophat

あなたは理論とより良いアプローチを提供されましたが、具体的に答えるために:

私のコードで機能する同じセルに複数のIF文を単純に含める方法はありますか?

してみてください:

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

つまり、最初の開き括弧と最後の閉じ括弧がない2回目の試行です。

1
pnuts