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


17

隣接するセルの値に基づいて、Googleスプレッドシートのセルの値を変更しようとしています。この隣接セルは、この Quoraの回答の式を使用して、隣接セルの色から値を取得します。したがって、セルの値は、最初のセルの色から取得される16進コードに基づいて変更する必要があります。現時点では4つの16進数値があるため、同じセルに4つの異なる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

回答:


19

lookup代わりに使用if

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

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


1
3番目の引数の項目が式である場合、これは機能しないことに注意してください
Christiaan Westerbeek

1
最初の配列(「キー」配列)をソートする必要があることに注意してください(私のものがアルファベット順に昇順でソートされたときに機能しました)。
fgblomqvist

@ChristiaanWesterbeek、これを回避する方法はありますか、それともネストを使用する必要がありますifsか?
アンドリュー

23

短い答え

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

説明

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

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 nestingかだけIF() nesting

以下は3つを持っている公式の例です、IF()それらの2つは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"))))

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.