• ベストアンサー

エクセルでANDとORの併用条件の式が分かりません

いつもお世話になっております。 エクセル(2010)の関数で、ANDとORは何とか使えるのですが、今回両方を使いたいので IF関数にANDとORを併用しようとやっているのですが、思うように動きません。 具体的には、例えば A1 セルの値が「50以上 AND 100未満」OR「適合」なら<合格>、そうでなければ<不合格>を別のセル(B1)に表示させたいのです。 出来そうなのですが、能力不足でうまく行かないのでよろしくおねがいいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.8

>実は比較セルはなく、A1セルに数値、もしくは文字が入り、数値の時には不等号で別の2つのセルの値との比較(不等号式)で合否判定、文字の時には合格です。 「文字の時」とはその文字が必ず"適合"なのでしょうか? それでしたら回答No.4に提示の数式を修正すれば良いでしょう。 =IF(OR(AND(A1>=50,A1<100),[比較セル]="適合"),"<合格>","<不合格>")        ↓ =IF(OR(AND(A1>=50,A1<100),A1="適合"),"<合格>","<不合格>") >つまり例えば、A1セルに数字が入ってくれば5~10の時が合格、ただし0の時には”特定文字”が表示されるように別シートから参照しており、どちらも合格で、それ以外は不合格。 質問の文言では「50以上 AND 100未満」としていますので矛盾します。 「A1セルの値が5~10のとき合格」であれば「5以上 AND 10以下」です。 「未満」と「以下」では論理式が異なります。 A1<10 が「未満」で A1<=10 が「以下」です。 尚、ExcelのAND関数やOR関数は次のような記述になります。 AND([論理式1],[論理式2],[論理式3],・・・) OR([論理式A],[論理式B],[論理式C],・・・) 今回の場合はANDとORを1つの論理式に組み込もうとしていますのでANDとORの何方を先に評価するかを考えないと正しい論理式に導けません。 今回の例ではAND関数のカッコ内にOR関数を組み込むことができませんのでOR関数のカッコ内にAND関数を組み込みます。 [論理式1]をA1>=50、[論理式2]をA1<=100、[論理式A]をA1="適合"として1つの論理式に纏めると次のようになります。 OR(AND(A1>=50,A1<=100),A1="適合") または OR(A1="適合",AND(A1>=50,A1<=100)) また、論理式の結果を数値化するとTRUE=1、FALSE=0と言う結果になりますので論理式同士を乗算したり加算することでANDやORの代替が可能です。 つまり、(A1>=50)*(A1<=100)はAND(A1>=50,A1<=100)と同じ評価になります。 故に、(A1>=50)*(A1<=100)+(A1="適合")は(AND(A1>=50,A1<=100),A1="適合")と同じ評価になります。 尚、A1セルの値が100を超えることが無いときはAND関数で評価する必要はありません。(A1>=50のみで良い)

akira0723
質問者

お礼

*+で書くとコピペでなく自作でもあっさり一発で正解できましたのでこの方法で行こうと思います。

akira0723
質問者

補足

何度もご丁寧な解説ありがとうございます。 はい、< と <=の違いは認識しており使い分けています。 >今回の場合はANDとORを1つの論理式に組み込もうとしていますのでANDとORの何方を先に評価するかを考えないと正しい論理式に導けません。 まさにご指摘の通りで、ANDを先にしたり、ORを先にしたりしているうちに「何が何やら」状態に陥ってしまいましたが、解説でスッキリしました。

その他の回答 (7)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.7

此れを、 試して、頂けますか? =IF((A1>=50)*(A1<100)+(A1="適合"),"合格","不合格")

akira0723
質問者

お礼

AND、ORを使わず*と+で出来てしまうのですね。 これははるか昔数学で習った、A n B u CみたいなAND、ORの式でできるなら私にとってこれは分かりやすい。 ぜひ試してみます。

akira0723
質問者

補足

これならコピぺでなく、自作で一発で正解できましたので、今後はこれで行きます。 尚、複数の方からこの方法を回答いただいており、誠に申し訳ありませんが、2度に渡り詳細に教えて頂いたNo4,No8の方をBSにさせていただきますのでご了承ください。 本当に助かりました。

  • msMike
  • ベストアンサー率20% (363/1772)
回答No.6

》 A1 セルの値が「50以上 AND 100未満」OR「適合」 》 なら<合格>、そうでなければ<不合格> それって奇妙では? A1 セルの値が「適合」でない場合は、A1 セルの値が「50以上」であっても、100は不合格になるけど、ソレでよろしいのでせうか?! 満点は何点? 「能力不足」というより「表現力不足」?

akira0723
質問者

お礼

ご回答ありがとうございます。 A1セルには数値もしくは”適合”が入ります。 数値の場合は不等号で判定し合否判定、”適合”の場合も合格です。 能力に加え表現力不足ですみません。

回答No.5

> 「50以上 AND 100未満」OR「適合」 と自分で書けているのだから、あとはそれを式で表現するだけ。 ネストは分解して考えてみると少しは解り易くなるかもです。 まず。 「50以上 AND 100未満」が一つ目の条件なのですから、   AND(A1>=50,A1<100) までは書けてますか? 書けているなら、コレを「条件1」と置き換えます。   ※あくまでもイメージですよ。 続いての条件は 「条件1」or「適合(文字列)」ですから、   OR(条件1,A1="適合") と書けますね。 ココで「条件1」を元の式に戻してやると   OR(AND(A1>=50,A1<100),A1="適合") こうなりますね。 こいつをIF関数に渡してやれば解決。 つまり、   =IF(OR(AND(A1>=50,A1<100),A1="適合"),"<合格>","<不合格>") でOKってことですね。 自力で考えた「過程」を示さないと、 「何がどう悪いのか」アドバイスできません。 現状の質問では「答えを教えて」と言っているのと同義ですので 気を付けた方が良いですよ。

akira0723
質問者

お礼

なるほど! 説明いただいた思考パターンでできそうな気がします。 AND、OR単独なら問題なくできることは確認済みですが、両方をつなぐとどうもうまくいかず。  (〇 AND ◎) (OR ×) という順しか思いつかずそのままIF(AND(〇、◎)、OR(×))で失敗するとあとは試行錯誤で()の数も怪しくなってしまって。。。

akira0723
質問者

補足

確かにご指摘の方法(ネストを分解)で考えながら自作してみたらうまく動きました。 非常に参考になりました。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

>具体的には、例えば A1 セルの値が「50以上 AND 100未満」OR「適合」なら<合格>、そうでなければ<不合格>を別のセル(B1)に表示させたいのです。 「適合」とは文字列の"適合"ですよね?、何処のセルに入力されていますか? 不等式では次のようになると思います。 ((A1>=50) and (A1<100)) or ([比較セル]="適合") → [B1セルの判定結果] B1の数式にすると次のようになると思います。 B1=IF(OR(AND(A1>=50,A1<100),[比較セル]="適合"),"<合格>","<不合格>") [比較セル]が"適合"のときはA1セルの値に関わらず<合格>になって良いのですか? [比較セル]が"適合"以外のときはA1セルの値が50以上、100未満のときだけ<合格>と判定することになります。それで良いのですか? 数学の問題なので厳密な条件を提示して頂かないと的確な回答になりません。

akira0723
質問者

お礼

いつもお世話になります。 言葉不足で誠に申し訳なく。 それでも当方の質問に的確に回答いただくことに感謝AND感心OR感嘆します。 実は比較セルはなく、A1セルに数値、もしくは文字が入り、数値の時には不等号で別の2つのセルの値との比較(不等号式)で合否判定、文字の時には合格です。 つまり例えば、A1セルに数字が入ってくれば5~10の時が合格、ただし0の時には”特定文字”が表示されるように別シートから参照しており、どちらも合格で、それ以外は不合格。 お手数をおかけしました。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.3

=IF(OR(AND(A1>=50,A1<100),A1="適合"),"<合格>","<不合格>") こういう書き方もできます、 =IF(((A1>=50)*(A1<100))+(A1="適合"),"<合格>","<不合格>")

akira0723
質問者

お礼

ご回答ありがとうございました。 2番目が私には簡単で分かりやすいと思割れるのですが、私に使いこなせるかどうか。 IFの中に、*と+でAND,OR条件を追加できるのですかね? やってみます。

akira0723
質問者

補足

下の式でやってみました、出来ました! これなら一発で正解できましたので、今後はこれで行きます。 複数の方からこの方法を回答いただいており、誠に申し訳ありませんが、2度に渡り詳細に教えて頂いたNo4,No8の方をBSにさせていただきますのでご了承ください。 本当に助かりました。

noname#232800
noname#232800
回答No.2

ユリウス暦から、現在使われてるグレゴリオ暦の定義は 西暦が4で割切れ かつ 100で割り切れない、または 400で割り切れる と定義します。この時の かつ がANDで、または がORです。 今回の場合 if( or( B1="適合",and(A1 > 50,A1 < 100)),"合格","不合格") です。

akira0723
質問者

お礼

ご回答ありがとうございました。 正解を見ると理解d背切るのですが、自分で組み合わせるとすんなりいきません。 お手数をおかけしました。

  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.1

>A1 セルの値が「50以上 AND 100未満」OR「適合」なら<合格>、そうでなければ<不合格>を別のセル(B1)に表示させたい どんなIF関数を書きましたか?「うまくいかない」だけでは状況が伝わりません。

akira0723
質問者

お礼

早々のご回答ありがとうございました。 仰る通り言葉不足を反省!!

関連するQ&A

  • エクセルでORとANDの両方を使って値を出したいのです。

    エクセルでORとANDの両方を使って値を出したいのです。 以下のような条件は可能でしょうか? 「A1セルの値が5以下」または「A2セルが3以上で、かつA3セルが5以下かつA1セルが10以下」の場合は"OK"等。 下記のようにしたんですが、うまくいきません。 =IF(OR(A1<=5),AND(A2>=3,A3<=5,A1<10),"OK","") どなたかわかる方いらっしゃいませんか??

  • エクセル計算について(AND,OR)

    エクセルの問題がわかりません。 セル「A1の数」と「A2の数」が両方200以上のときに「○」を、どちらかが200以上のときに「△」を、該当しない場合は空欄を表示する。(ただしAND、ORを用いなさい) という問題です。 AND、ORを使用しない場合はわかりますがAND、ORがわかりません。 =IF(A1>=200,IF(A2>=200,"○","△"),"") お手数ですが答えを教えて下さい。

  • エクセルのIF関数でORとANDの組み合わせ方

    エクセルのIF関数でORとANDの組み合わせ方を教えてください。 =IF(AND(C1>10,A1>B1),"S","") =IF(AND(C1>10,A1<B1),"L","") この2つの式をORで1つの式にするにはどのように組み合わせれば良いのでしょうか? よろしくお願いいたします。

  • エクセルの式の作り方のご相談

    緊急でご相談したい件がございます。 エクセルの式の作り方なのですが、 Aセルの値が、 60以下だったらBセルに60サイズ 61~80までだったらBセルに80サイズ 81~100だったらBセルに100サイズ 101~120だったらBセルに120サイズ 121~140だったらBセルに140サイズ 141~160だったらBセルに160サイズ と表示するための複合条件式の作り方がわからないのです。 (IF/AND/OR関数あたりなんだろうなーとは思うのですが。) どうぞ宜しくお願い致します。

  • エクセルで3つ以上の条件式で抽出したいのですが・・

    すいません、うまくタイトルをかけなかったのですが、 エクセルで3つのセルの条件を満たしたものだけを表示したいのですが、 if(and というものを使っても2つの条件しかできないようでした。 (本当は出来るかも知れませんが、力不足でわかりません。) どなたか教えてください。

  • エクセル 関数 AND OR

    セルのQ9に =IF(OR(U8="あ",U8="い",U8="う",U8="え",U8="お"),"","まで") 関数があります。”あ””い””う””え””お”の時には空白で それ以外は”まで”と表示させます! そこでこの関数にO9セルに”まで”と表示があった場合も Q9セルを空白表示させたいです! もしO9セルに”まで”以外が表示されたら Q9セルは”まで”のままで表示させたいです! つまり =IF(OR(U8="あ",U8="い",U8="う",U8="え",U8="お"),"","まで") プラスO9セルが”まで”なら空白!という感じです どのようにしたら良いのでしょうか??

  • エクセルのセルに「1以上2未満」という条件を入れたい

    エクセルの関数でC1のセルに =IF(A1=B1,1,0) という関数を作ります。 A1のセルには0~100までの任意の数値が入ります。 B1のセルに「1以上2未満」という条件を入れたいのですが、 どのようにすれば良いでしょうか? エクセルの関数に「1以上2未満」と入れ込むのではなく、あくまでも B1のセルに「1以上2未満」という条件を入れたいのです。 よろしくお願いします。

  • excelのand関数、IF関数について

    エクセルのand関数、IF関数について質問です。 非常に簡単なことで申し訳ないのですが、仮にセルA2が5でかつセルB2が0の時にtrueとしたいときの関数は=and(A2=5,B2=0)であっているでしょうか。また、これをIFの関数で表す場合、=IF(A2=5,IF(B2=0,1,0),0)で同じ意味になるでしょうか?(IFの方は条件を満たす場合を1、満たしていない場合を0としたつもりです) ANDの方の関数は、多分合っていると思うのですが…。エクセルに入力しても、正しい結果が得られなかったので、質問させていただきました。初心者です。つまらない質問で申し訳ないのですが、よろしくお願いします。 

  • ExcelのIF関数でORやANDで簡素化したい

    =IF(B4="日勤",J63,IF(B4="宿直",N63,IF(B4="宿明",P63,IF(B4="年休(日勤)",J63,""))) の関数を使ってます。 適用項目 B4のセルで日勤、年休(日勤)、欠勤(日勤)を選択した場合 日勤の所定時間(7:30が入力されたセル)を返すというようにしたいのですがORやANDをいれたらもっと簡単な式になりますか? どのたかご教授ください 宜しくお願いしたします。

  • excel関数 この場合の条件式

    excelで、 x≦4のときはX+24に、 19≦x≦24のときはXそのままの値を入力するには 関数をどのようにすればよいでしょうか? ここでは便宜上、X=E10というセルとします。 複数条件?というものなのでしょうか。AND、OR、何を使えばよいのか分かりません。 ≦ ←この記号をどう入力すればよいのかも分かりません。

専門家に質問してみよう