質問: ifs関数の条件について いつもお世話になっております。 この度、ifs関数が使用されている管理表の修正の際に分からない箇所があり、 関数にお詳しい方のご教示をいただきたく質問させていただきました。 添付しました画像を参考にご説明いたしますと、fセルには元々 =if(b9="","",(ifs(and(c9=d9,d9=e9,c9=e9),"○",c9<>e9,"cセルの情報が違います!",d9<>e9,"dセルの情報が違います!"))) の関数が入力されております。 編集をお願いされた箇所はcセルにハイフンを入力した際でも〇の表示にしたい質問になります。 関数を修正し下記の =if(b9="","",(ifs(and(c9=d9,d9=e9,c9=e9),"〇",c9="-","○",c9<>e9,"cセルの情報が違います!",d9<>e9,"dセルの情報が違います!"))) と"〇",c9="-",を追記しcセルにハイフンが入力されても〇の表示になる様にはできたのですが、 当たり前にこちらの関数ではdセルが入力されてない場合でも〇になってしまい困っている次第です。 長文となってしまい申し訳ございません。 どなたかこうすると解決できるよとご存知の方いらっしゃいましたらよろしくお願いいたします。
回答: ifs関数は列挙された複数の[論理式と真の場合]の組合せを左から順次判定し、合致するものがあると、それより右にある[論理式と真の場合]の組合せは判定されない仕様です。 従って、ご質問者が今回追加されたc9="-","○"をどの位置に入れるかが問題となります。 ご質問者が望んでいる最終形が不明ですが、 >当たり前にこちらの関数ではdセルが入力されてない場合でも〇になってしまい困っている次第です。 とおっしゃっておられますので、少なくともd9のエラー判定より右側にいれなくてはいけません。 また、今回の修正の目的が >cセルにハイフンを入力した際でも〇の表示にしたい ということだとするとc9のエラー判定より左側にいれなくてはいけません。 ところが、もともとの数式の[論理式と真の場合]の組合せ順だと、そのような位置は存在しませんので、[論理式と真の場合]の組合せ順を変更する必要があります。 もともとの順番を変更して、 =if(b9="","",(ifs(and(c9=d9,d9=e9,c9=e9),"〇",d9<>e9,"dセルの情報が違います!",c9="-","○",c9<>e9,"cセルの情報が違います!"))) とすればよいのではないでしょうか。 なお、上記数式はご質問者がご説明された限られた情報で作成しており、ご説明にない条件があるかも知れません。 その場合、お望みの結果にならないこともありますのでご承知おきください。