- 締切済み
エクセルの関数を教えてください
下のような表で、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
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- yosifuji20
- ベストアンサー率43% (2675/6115)
こういう複雑な条件を人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,"")) というものです。
- KURUMITO
- ベストアンサー率42% (1835/4283)
かつ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",""))
お礼
ご回答、ありがとうございます。 出来ました。
- gokigenn
- ベストアンサー率22% (6/27)
「OR(C7:C12<(A7-0.05)」や「OR(B7:B12>(A7+0.05)」では範囲の中すべてを 条件式に入れてくれません。(エクセル2003でしか確認してませんが・・・) それと、「数値があれば」という条件だったら後半部分は「=(・・・」です。 OR内にC7=A7+0.05,C8=A7+0.05,・・・ と記述するか フラグをたててそこを条件にする方法がいいと思います。 ちなみに、OR内の条件は上限があるのでフラグにしたほうが楽ですよ。
お礼
アドバイス、ありがとうございます。
お礼
ご回答、ありがとうございます。 分かりやすく説明頂き、おかげさまでできました。