プロが教えるわが家の防犯対策術!

IF(AND(関数でお知らせください
ウオーキングのキロ数を出すため=IF(AND(Z12>63,Z12<72),"大館市",のように組み、同様にして到着地点を7箇所まで設定し、最後は""でくくり問題ないのですが、というより8箇所目からは「入力した数式は正しくありません」とコメントが出るので、さらに次の7箇所を今まで使っていた距離数、箇所を訂正しなおして使っていましたが、箇所設定には限度というものがあるのでしょうか、他に原因があるようにも思えるのですが関数をよく理解できていませんのでご教示のほどよろしくお願いいたします。

A 回答 (6件)

蛇足ですが


=IF(and(Z12>12,Z12<=20),"A地点","")&IF(and(Z12>20,Z12<=22),"B地点","")&IF(and(Z12>22,Z12<=28),"C地点","")&IF(Z12>28,"D地点","")
と言った風にして前回投稿内容と同様に
&IF(and(Z12>○×,Z12<=△□),"◇地点","")
(※「○×な距離を過ぎて△□に達したまでは◇地点」という意味)
と言う物をどんどん継ぎ足すようにすれば
書き込める文字数の限界以内ではありますが
無限に地点を設定できます

如何でしょうか
御役に立てたなら幸いです
    • good
    • 0
この回答へのお礼

再びご教示いただきありがとうございました。こちらで挑戦したらうまくいき感激しています、ありがとうございました。

お礼日時:2010/03/18 15:54

御質問の趣旨からは外れてしまいそうではあるのですが


この様な方法は如何でしょうか?

12kmでA地点20kmでB地点22kmでC地点28kmでD地点に達するとします
距離データは御示し頂いたZ12に入っているものとして
表示したいセルに
=choose(1+IF(Z12>12,1)+IF(Z12>20,1)+IF(Z12>22,1)+IF(Z12>28,1),"","A地点","B地点","C地点","D地点")
+IFの下りと地点名を追加していけば
地点は255地点まで設定可能です

if(and(と言う御指定からは外れてしますので心苦しくはあるのですが
IF文は1部の方に「ネストするしか使い道がない」という
偏見を懐かれているので
この点を払拭したくもあり
またご参考になればと思い御前を汚させて頂きました

IF文はただただどちらかの値を選ぶだけの関数で
普通に他の関数や値などと足したり掛けたり割ったり出来るものなのです

この投稿がお役に立てば幸いです
    • good
    • 0
この回答へのお礼

ただいま挑戦中ですがうまくいかず四苦八苦の状態ですがゆっくり挑戦してみます、ありがとうございました。

お礼日時:2010/03/18 15:51

次のようにすれば幾つの地点を登録しても良いでしょう。


シート2をデータベースの表としてA1セルには近距離、B1セルには遠距離、C1セルには地区名とでも入力し、それらの下の行には例えばA2セルには10でB2セルには15、A3セルには17で、B3セルには21、A4セルには25で、B4には31、A5セルには35で、B5セルには42などというように距離を近いところから順に遠くまで入力するようにします。C列にはそれらの地点名を入力します。
そこでシート1ですが例えばA1セルに23のように入力したとしたらそれはどの地点になるかをB列に表示させるとしたらB1セルには次の式を入力して下方にオートフィルドラッグします。

=IF(AND(A1>=MIN(Sheet2!A:A),A1<=MIN(Sheet2!B:B)),INDEX(Sheet2!A:C,MATCH(MIN(Sheet2!B:B),Sheet2!B:B,0),3),IF(OR(A1="",A1>MAX(Sheet2!B:B)),"",IF(MATCH(A1,Sheet2!A:A,1)>=MATCH(A1,Sheet2!B:B,1),INDEX(Sheet2!A:C,MATCH(A1,Sheet2!A:A,1),3),"")))

これでA列に距離を入力することでどの地点にいるかがB列に自動的に表示されます。シート2ではその登録地点がどんなに多くなっても数値が徐々に増す形で入力されていけば何の問題もありません。一度示した通りの方法で試験してみてください。
    • good
    • 0
この回答へのお礼

私にとってはハードな内容ですのでゆっくり挑戦してみます、ありがとうございました。

お礼日時:2010/03/18 15:48

別に距離と到達地点のリストを作成し、Vlookupで取り出した方が簡単でメンテナンスもしやすいですよ。


Vlookupは4つ目の引数を省略、あるいはTRUEとしたばあい、検索値と一致する値が無い場合、検索値未満で最も大きい値を採用します。
ただし、そのばあいのリストは順番に並んでいる必要があります。
「IF(AND(関数でお知らせください」の回答画像3
    • good
    • 0
この回答へのお礼

内容をゆっくり勉強して挑戦してみます、ありがとうございました。

お礼日時:2010/03/18 15:46

これってifの中にifをネストしていますよね。

エクセル2003までは7個までしかネストできません。
どうしても8個以上欲しいときは6個までは普通にネストして、後1つを別のセルに表示させた値を出すような形にするしかないです。
たとえば条件が10以下、10、20,30,・・・・・・90と10あるなら
=if(A1<10,a,if(A1=10,b,if(A1=20・・・・if(A1=50,f,if(A1=60,D2))))))))とします。
そして、D2のセルに=if(A1=60,g,if(A1=70,h・・・とするといいです。
なお、式を簡略化するために条件を=にしてありますし、結果は単純にa,b,c,d,・・・としてありますので、適宜替えてください。

参考までに。
    • good
    • 0
この回答へのお礼

7個までが限界にいくら頑張っても出来る訳ありませんね、ゆっくり挑戦してみますありがとうございました。

お礼日時:2010/03/18 15:45

はい,


=IF(IF(IF(IF(…
とただ積み上げていくだけならアタマ使わなくて良いので,これ以外やりたくないご相談は実は結構しばしば寄せられますが,そうやってカッコを重ねていくとすぐにカッコの重ね合わせの限界に到達します。
(最新版のExcel2007ではもっと沢山カッコを重ねられるように変わりましたが,限度が有る事に変わりはありません)

多くの場合
A1に距離
B1に
 =LOOKUP(A1,{0,49.1,98.1,254,389.6,495.5},{"出発","藤沢","箱根","浜松","四日市","到着!"})
なんて感じや,距離-結果の対応表を別に用意してVLOOKUPなどの関数を使ってください。

また,遊びとしてIFだけで試みるなら,例えば
=IF(AND(0<=A1,A1<49),"スタート","") & IF(AND(49<=A1,A1<=100),"1区","") & IF(AND(…
のようにつなぎ合わせていくと,カッコを「重ねていない」ので沢山数珠つなぎにすることも出来ます。
    • good
    • 0
この回答へのお礼

カッコに限界があるとは知りませんでした。ゆっくり挑戦してみます、ありがとうございました。

お礼日時:2010/03/18 15:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!