隣接するセルの値に基づいて、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文を単純に含める方法はありますか?
lookup
の代わりに if
を使用します。
=lookup(B7,
{"#000000","#00ff00","#ff0000","#ff9900"},
{"Not applicable", "Read","Unread","In Progress"}
)
2番目のパラメーターはソートされたリストでなければならないことに注意してください。
提供されている例の問題は括弧です。それらを適切に適用してください。
IF()
関数には2つのパラメーターと、オプションで3番目のパラメーターが必要です。
IF(logical_expression, value_if_true, value_if_false)
特定の問題
IF()
のパラメーターが多すぎることです。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スプレッドシートの数式作成で使用できます。数式のデバッグに役立ちました。
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ステートメントをネストできます
If(if(if(when all 3 equal true)))
うまくいく
OR
たとえば、ネストされたIFANDを使用できます
IF(AND(AND()))
また動作します。
あなたは理論とより良いアプローチを提供されましたが、具体的に答えるために:
私のコードで機能する同じセルに複数のIF文を単純に含める方法はありますか?
してみてください:
=if(J2="#00ff00","Read", if(J2="#ff0000", "Unread", if(J2="#ff9900","In Progress",if(J2="#000000", "Not Applicable"))))
つまり、最初の開き括弧と最後の閉じ括弧がない2回目の試行です。