1 つのセルの数式に 2 つ以上の IF ISNUMBER SEARCH 関数をネストするにはどうすればよいですか?

1 つのセルの数式に 2 つ以上の IF ISNUMBER SEARCH 関数をネストするにはどうすればよいですか?

セル内に2 つ以上の ( ISNUMBER SEARCH) ステートメントをネストしようとしていますが、最後の 2 つは機能しません。最初の 2 つの引数 ("n/a" と "r") は機能しますが、3 番目と 4 番目の引数は間違ったデータを取得します。

セルに 2 つ以上の検索を設定できますか? 数式のどこが間違っているのでしょうか?

=IF(ISNUMBER(SEARCH("N/A",$L2)),$E2+$AY$2,IF(ISNUMBER(SEARCH("r",$L2)),$E2+$AY$3,IF(ISNUMBER(SEARCH("rr",$L2)),$E2+$AY$4,IF(ISNUMBER(SEARCH("rrr",$L2)),$E2+$AY$5))))

私のスプレッドシート

ご協力ありがとうございます

答え1

これは、数式が「rr」と「rrr」セル値の両方で単一の「r」を検出するために発生します。ISNUMBER 条件の順序を変更してみてください。「rrr」から始めて、「rr」、最後に「r」とします。これで動作するはずです。

=IF(ISNUMBER(SEARCH("N/A",$L2)),$E2+$AY$2,IF(ISNUMBER(SEARCH("rrr",$L2)),$E2+$AY$5,IF(ISNUMBER(SEARCH("rr",$L2)),$E2+$AY$4,IF(ISNUMBER(SEARCH("r",$L2)),$E2+$AY$3))))

よろしくお願いいたします、ルーカス

答え2

式を整理すると次のようになります。

IF( ISNUMBER(SEARCH("N/A",$L2)),
    $E2+$AY$2,
    IF( ISNUMBER(SEARCH("r",$L2)),
        $E2+$AY$3,
        IF( ISNUMBER(SEARCH("rr",$L2)),
            $E2+$AY$4,
            IF( ISNUMBER(SEARCH("rrr",$L2)),
                $E2+$AY$5
              )
          )
      )
  )

今、私たちは次のことを見ています:

  1. 最後の(最も内側の)IF() には ELSE セクションが含まれていません。
  2. 2 番目の IF() は、さらに内側の IF() によってテストされた値に対して True を返します。したがって、外側の IF() がすでに True を実行しているため、内側の IF() は True を返すことができません。

推奨事項: SEARCH() を単純な方程式テストに置き換えます。

答え3

関数SEARCHを使用するとISNUMBER、セルに特定のテキストが含まれているかどうかを確認できます。

SEARCH検索文字列が見つかった場合はその位置を返します。また、数式は を使用してISNUMBERその数値位置を検索し、検索文字列が見つかったかどうかをテストします。

あなたの場合、rrまたは を探している間rrr、数式はと のr間でを探し、そのたびにまたはの代わりにを計算します。rrrrr$E2+$AY$3$E2+$AY$4$E2+$AY$5

またはL2以外のテキストが含まれている場合も、同じ数式が機能します。rrrrr

@Muji はうまくいきました。検索文字列を逆の順序で使用したので、数式は最初にrrrthen rr& rinを見つけてrrr、正しく動作します。

シンプルな方法でIF functionこれらすべてを正常にテストできます。

=IF($L$2="N/A",$E$2+$AY$2,IF($L$2="r",$E$2+$AY$3,IF($L$2="rr",$E$2+$AY$4,IF($L$2="rrr",$E$2+$AY$5))))

必要に応じて数式内のセル参照を調整します。

関連情報