- ベストアンサー
IF(AND(関数でお知らせください
IF(AND(関数でお知らせください ウオーキングのキロ数を出すため=IF(AND(Z12>63,Z12<72),"大館市",のように組み、同様にして到着地点を7箇所まで設定し、最後は""でくくり問題ないのですが、というより8箇所目からは「入力した数式は正しくありません」とコメントが出るので、さらに次の7箇所を今まで使っていた距離数、箇所を訂正しなおして使っていましたが、箇所設定には限度というものがあるのでしょうか、他に原因があるようにも思えるのですが関数をよく理解できていませんのでご教示のほどよろしくお願いいたします。
- みんなの回答 (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<=△□),"◇地点","") (※「○×な距離を過ぎて△□に達したまでは◇地点」という意味) と言う物をどんどん継ぎ足すようにすれば 書き込める文字数の限界以内ではありますが 無限に地点を設定できます 如何でしょうか 御役に立てたなら幸いです
その他の回答 (5)
- Nouble
- ベストアンサー率18% (330/1783)
御質問の趣旨からは外れてしまいそうではあるのですが この様な方法は如何でしょうか? 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文はただただどちらかの値を選ぶだけの関数で 普通に他の関数や値などと足したり掛けたり割ったり出来るものなのです この投稿がお役に立てば幸いです
お礼
ただいま挑戦中ですがうまくいかず四苦八苦の状態ですがゆっくり挑戦してみます、ありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
次のようにすれば幾つの地点を登録しても良いでしょう。 シート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ではその登録地点がどんなに多くなっても数値が徐々に増す形で入力されていけば何の問題もありません。一度示した通りの方法で試験してみてください。
お礼
私にとってはハードな内容ですのでゆっくり挑戦してみます、ありがとうございました。
- mt2008
- ベストアンサー率52% (885/1701)
- Turbo415
- ベストアンサー率26% (2631/9774)
これって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,・・・としてありますので、適宜替えてください。 参考までに。
お礼
7個までが限界にいくら頑張っても出来る訳ありませんね、ゆっくり挑戦してみますありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
はい, =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(… のようにつなぎ合わせていくと,カッコを「重ねていない」ので沢山数珠つなぎにすることも出来ます。
お礼
カッコに限界があるとは知りませんでした。ゆっくり挑戦してみます、ありがとうございました。
お礼
再びご教示いただきありがとうございました。こちらで挑戦したらうまくいき感激しています、ありがとうございました。