7 返信 最新の回答 日時: Apr 7, 2014 5:11 PM ユーザー:Shin

    金額と文字列の条件に対して2つの結果を出す式は

    eitomo

      タイトル

      金額と文字列の条件に対して2つの結果を出す式は

      フォーラムに投稿

           金額と文字列の条件を組み合わせた計算式を作りたいです。

             
      1.           kkk 9000円
      2.      
      3.           kkk 15000円
      4.      
      5.           ccc 35000円

           10000円~30000円未満で“kkk”という文字列があれば“結果①”に、なければ“結果②”に。

           30000円以上で“ccc”という文字列があれば“結果③”に、なければ“結果④”に。

            

           このような2つの条件がある式の作り方を教えてください。

            

        • 1. Re: 金額と文字列の条件に対して2つの結果を出す式は
          Shin
               Case (
                金額 < 10000 ; "" ;
                金額 < 30000 and PatternCount ( 文字列 ; "kkk" ) ; "①" ;
                金額 < 30000 ; "②" ;
                PatternCount ( 文字列 ; "ccc" ) ; "③" ;
                "④"
               )
          • 2. Re: 金額と文字列の条件に対して2つの結果を出す式は
            eitomo

                 さっそく返信ありがとうございます。

                 10000~30000円未満というのはどの部分になりますか?

                 「10000円~30000円未満で“kkk”という文字列があれば“結果①”に、なければ“結果②”に。」

                 「”kkk”がなければ」というのはどのように作ればよいのでしょうか。

                  

                 作りたい計算式は

                 Ⅰ、10000円未満で文字列“kkk”があれば結果①、なければ結果②

                 Ⅱ、10000円~30000円未満で文字列“kkk”があれば結果③、なければ結果④

                 Ⅲ、30000円以上で文字列“kkk”があれば結果⑤、なければ結果⑥

                  

                 この3つの式を作りたいです。

            • 3. Re: 金額と文字列の条件に対して2つの結果を出す式は
              sago350@未来Switch

                   Case文は上から順番に評価されるので、「kkkがある」という条件が上にあれば、次の条件は「無い」という意味になります。

                   なので、Case文の条件を変更すると結果も変わってきます。

              • 4. Re: 金額と文字列の条件に対して2つの結果を出す式は
                Shin

                     式を解説しておきましょうか。

                     1行目、全ての条件外の10000未満を除外しておきます。

                     2行目、30000未満で、文字列に"kkk" があるものに対しての処理です

                     3行目、30000未満で、2行目に該当しないものの処理です。

                     4行目、上記以外で、文字列に"ccc" があるものに対しての処理です。(この文字列は間違いですか?)

                     5行目、上記以外のものに対しての処理です。

                     処理上は、上から順に評価していき、該当していればその処理を行い、以下は無視されます。

                      

                     新しい条件だと、

                     Case (
                           金額 < 10000 and PatternCount ( 文字列 ; "kkk" ) ; "①" ;
                           金額 < 10000 ; "②" ;
                           金額 < 30000 and PatternCount ( 文字列 ; "kkk" ) ; "③" ;
                           金額 < 30000 ; "④" ;
                           PatternCount ( 文字列 ; "kkk" ) ; "⑤" ;
                      "⑥"
                     )
                • 5. Re: 金額と文字列の条件に対して2つの結果を出す式は
                  eitomo

                        詳しい解説ありがとうございます。

                       CASEを使うと

                       Ⅰ、10000円未満で文字列“kkk”があれば結果①、なければ結果②

                       Ⅱ、10000円~30000円未満で文字列“kkk”があれば結果③、なければ結果④

                       Ⅲ、30000円以上で文字列“kkk”があれば結果⑤、なければ結果⑥

                       上記3つのことが1文でできるということでしょうか?

                       いままでIFを使っていたのでCASEの式はよくわからなくて。。。。

                  • 6. Re: 金額と文字列の条件に対して2つの結果を出す式は
                    eitomo

                          みなさま、ご教授ありがとうございました!

                         無事式ができ結果も繁栄されるようになりました、感謝します。

                    • 7. Re: 金額と文字列の条件に対して2つの結果を出す式は
                      Shin

                           細菌のFMでは、条件が1個の分岐でしたら、If と Case は同じように思われていいでしょう。ですから、If の存在意味がほとんど無くなりました。

                           Case は、条件を複数羅列できますので、このような処理には最適です。

                           上の式は、ネスティング(入れ子)を避けて書いていますが、ネスティングの書き方では、

                           Case (
                                 金額 < 10000 ;
                                   Case (
                                    PatternCount ( 文字列 ; "kkk" ) ; "①" ;
                                    "②"
                                   ) ;
                                 金額 < 30000 ;
                                   Case (
                                    PatternCount ( 文字列 ; "kkk" ) ; "③" ;
                                    "④"
                                   ) ;
                                 Case (
                                   PatternCount ( 文字列 ; "kkk" ) ; "⑤" ;
                                   "⑥"
                                  )
                           )
                           となり、If でもこれと似た書き方になるでしょう。もっと複雑な条件になると、非常に見難くなりますので、私は好みではありません。