• 締切済み

エクセルの関数を教えてください

下のような表で、E7に =IF(AND(D6>A1,OR(C7:C12<(A7-0.05))),"A",IF(AND(D6<A1,OR(B7:B12>(A7+0.05))),"B","")) と関数を入れましたが求めているものになりません。 文章にすると、D6がA1より大きかった場合かつC7からC12の間でA7から0.05を引いた数値が どれか一つでもあればA、D6がA1より小さかった場合かつB7からB12の間でA7から0.05を足 した数値がどれか一つでもあればBそれ以外は空白というものです。 正しい関数を教えてください。       A    B     C     D      E 1    98.483  98.501  98.446  98.477 2    98.477  98.482  98.442  98.452  3    98.449  98.461  98.365  98.372  4    98.372  98.396  98.350  98.387  5    98.388  98.472  98.379  98.414 6    98.412  98.479  98.389  98.439 7    98.433  98.603  98.430  98.555 8    98.559  98.579  98.465  98.500 9    98.500  98.600  98.467  98.569 10   98.568  98.635  98.530  98.546 11   98.548  98.579  98.486  98.494 12   98.497  98.569  98.460  98.534 13   98.534  98.565  98.527  98.542

みんなの回答

  • yosifuji20
  • ベストアンサー率43% (2675/6115)
回答No.3

こういう複雑な条件を人pつの式で作るのはよくないと思います。 すべての条件に合うか一見わりませんし、将来修正するときも大変です。 また他人には何を言っているかさっぱり判らないと言う危険もあります。 ここは逆にその条件を一つづつ別なセルで式にして、それらを最後の答えで統合すると言うほうが結果は速いと思います。 D6がA1より大きかった場合  F7=IF(D6>A1,1,0) かつ C7からC12の間でA7から0.05を引いた数値がどれか一つでもあれば  G7=IF(A7-0.05=C7,1,0)    H7=SUM(G7:G12) ANDの式   I7=G7*H7 0より大ならばAND成立 A、 D6がA1より小さかった場合   J7=IF(D6<A1,1,0) かつ B7からB12の間でA7から0.05を足した数値がどれか一つでもあれば  K7=IF(A7+0.05=B7,1,0)    L7=J7*K7 ANDの式  M7=J7*L7  0より大ならばAND成立 B それ以外は空白 E列の式 E7=IF($I$7>0,A7,IF($M$7>0,B7,"")) というものです。

NOORIIHII
質問者

お礼

ご回答、ありがとうございます。 分かりやすく説明頂き、おかげさまでできました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

かつC7からC12の間でA7から0.05を引いた数値がどれか一つでもあればを、OR(C7:C12<(A7-0.05))の式にしていますが適当ではありませんね。 次の式にすればよいでしょう。 =IF(AND(D6>A1,COUNTIF(C7:C12,A7-0.05)>0),"A",IF(AND(D6<A1,COUNTIF(B7:B12,A7+0.05)>0),"B",""))

NOORIIHII
質問者

お礼

ご回答、ありがとうございます。 出来ました。

  • gokigenn
  • ベストアンサー率22% (6/27)
回答No.1

「OR(C7:C12<(A7-0.05)」や「OR(B7:B12>(A7+0.05)」では範囲の中すべてを 条件式に入れてくれません。(エクセル2003でしか確認してませんが・・・) それと、「数値があれば」という条件だったら後半部分は「=(・・・」です。 OR内にC7=A7+0.05,C8=A7+0.05,・・・ と記述するか フラグをたててそこを条件にする方法がいいと思います。 ちなみに、OR内の条件は上限があるのでフラグにしたほうが楽ですよ。

NOORIIHII
質問者

お礼

アドバイス、ありがとうございます。

関連するQ&A