• 締切済み

if関数の連続を単純化するにはどうしたら良いでしょうか?

if関数を使用する事が多いのですが、 データが増えてしまってif関数では先がみえなくなってしまいました。 =if(C3=1,H5,if(C3=2,H6,if(C4=3,H7… とこんな感じに永遠と続いてしまいます。 最後の偽は空白なんです。 これは何か他の関数でできますか? それともif関数の中に何か他の関数をいれたほうが良いのでしょうか?

みんなの回答

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

こんな方法もあります。 =CHOOSE(C3,H5,H6,H7,・・・,H35) ※C3の値が1~31以外はエラーになります。 ※続く項目は固定値、セル座標なんでも指定できます。正し指定できる項目数は31個までです。 =OFFSET(H4,C3,0) ※最初の項目のセルを起点に、上下,左右の移動値を指定する方法です。 ※省略していますが4番目,5番目の項目では高さ・幅の指定で範囲選択も可能です。 =INDEX(H5:H33,C3,1) ※最初の項目のセル範囲内の位置を続くセルで設定する方法です。

ma-kinoko
質問者

お礼

回答有難うございます。 よく理解できていないので一度やってみます。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.3

#1です。 「あるセルに書いてある番号をc3に打つと、その番号の行にあるデータを引き出すというようにしたいのです。」 なら、 =INDIRECT("H"&C3+4) で引き出せます。 ※どの列を引き出すかは"H"を変えます。今はH列を引き出します。 ※どの行を引き出すかは、"+4"を変えます。今は、「1の時5」「2の時6」…なので、その差に当たる4を補正しています。

ma-kinoko
質問者

お礼

何度もすいません 本当に有難うございます。 もう一度挑戦してみます。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

VLOOKUP は、どうでしょう

ma-kinoko
質問者

お礼

複雑に考えすぎたみたいです。 ifとvlookupでできました。 お騒がせいたしました。 有難うございます。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

使用している関数は、実際に使っている関数を記載した方が良い回答が得られます。 因みに、 =if(C3=1,H5,if(C3=2,H6,if(C4=3,H7… は、3番目のifがC4になっていますがC3の間違い? 間違いで、且つ順番に取り出すだけなら、 =INDIRECT("H"&C3+4) で、取り出せますが…。

ma-kinoko
質問者

補足

すいません間違えました。 if(c3=1,H6,if(c3=2,H7,if(c3=3,H8… という形です。 あと説明不足しました。 あるセルに書いてある番号をc3に打つと、 その番号の行にあるデータを引き出すというようにしたいのです。

関連するQ&A

  • EXCELのIF関数で

     こんにちは。教えて下さい  ある範囲(C4:L4とします)の中にある空白の数によって、一定の数を返すような数式を作りたいのです。空白の数が、0で2、1で3、2で4、3で5、4で6、5で8、6で11、7で15、8で20、9で30、10で0という具合で、規則性はありません。IF関数とCOUNTBLANK関数を使って、次のような入れ子構造の数式を作りました。  =IF(COUNTBLANK(C4:L4)=0,2,IF(COUNTBLANK(C4:L4)=1,3,IF(COUNTBLANK(C4:L4)=2,4,IF(COUNTBLANK(C4:L4)・・・中略・・・IF(COUNTBLANK(C4:L4)=9,30,0))))))))))  最後の閉じ括弧の数は正確ではありませんが(汗)、実際にはきちんと合わせました。  ところがエラーが出てしまうのです。入れ子の階層数に制限があるのでしょうか? それとも他に原因が?  そもそもこんな長い数式ではなく、もっとうまい方法があるような気もするのですが・・・。  よろしくお願いいたします。

  • IF関数が理解できませんでした。

    セル【G6】の数式を、「上記目標」が空白の場合は、「達成率」に空白を表示するように変更して下さい。 という問題があり、答えが =IF(E6=″ ″,″ ″,F6/E6) です。 しかし、表に空白の部分はありませんし、テキストにはIF関数の説明項目において、 =IF(論理式、真の場合、偽の場合) とあります。 IF関数の論理式内では真や偽の場合を示すのは「″ ″」部分ですよね。 ですが、真の場合も、偽の場合も空白で、答えは問題のどこを指してるのか、 最後にF6/E6がつく意味も全くわかりませんでした。 表には空白がないのに問題自体もどのように捉えたらよいのかもわかりません。 よろしくお願いします。

  • IF関数で教えてください。

     よろしくお願いします。  C4、E4、D4ともにランダムに変化する数字があります。  IF関数で =IF(C4=E4,D4,"")  の場合、C4=E4ならばD4が表示されました。その後C4=E4でなくなった場合、空白になるのですが、空白にならず、変化前のD4の数字のままであるやり方はないのでしょうか、よろしくお願いします。

  • エクセルIF関数について

    エクセルIF関数について A2セルにA1セルが空白なら空白。8:00ならば、8:00。8:00>ならA3セルに(そのままの値を)表示せよ。 という関数を入れたいのですが、どの関数をどのように定義すれば良いのかわかりません。 IF関数かな?と思ったのですが、IF関数で偽のときは、「別のセルに入力せよ」などというような定義って出来るのでしょうか? どなたか教えてください。

  • IF関数ですが・・・

    質問は時間に対するIF関数についてですが 例えば3:40だったら 真を30という数字、偽を空白とする場合 =IF(B1="3:40",30,"") っと設定しても30が返ってきません? 時間の場合はやり方が違うのせでしょうか? よろしくお願いします 実はタイムカードの計算をするのに上の例だと 3時間30分働いた場合は3時間30に設定したかったのですが 他になにか関数を使ったらいいのでしょうか

  • Excelの関数がうまく使えません。

    Excelで関数がうまく使えません。 「=IF(E2>=2000,200,IF(E2>=1000,100,IF(E2>=500,50," ")))」というのをH列のセルに入力しています。 計算はうまく?いくのですが、偽の場合に空白にしているのに、E列が空白でも200と反映されてしまいます。 ちなみにE列には「=IF(ISNUMBER(D2),(C2*D2)," ")」このような関数を使っております。 H列が空白のときに正しく空白にするにはどうしたらよいのでしょうか? 教えてください。

  • IF関数について

    似たような質問が探せませんでしたので、取り合えず教えてください!! 例えばKの列に出た結果が、 0であれば、空白、1>であれば増産、1<であれば減産 というIF 関数を入れたいのですが、真と偽の2種では 3つの結果を入れられず、困っています。 どういう数式にすればいいのでしょうか??

  • IF関数についておしえてください。

    お世話になります。 作成している表の中で、利用しようとおもっている関数について教えてください。 A1セルに下記のようなIF関数を作成しました。 =IF(AND(B2>=1,C2<=0),"○",IF(AND(C2>=1,B2<=0),"○",IF(AND(B2>=1,C2>=1),"○",IF(AND(B2<=1,C2<=1),"")))) B2セルは別シートからVLOOKUPを利用して検索してきて、数字を表示させているセルのため、 該当しない場合”#N/A”と 表示されるところがありました。それで、”=IF(ISERROR”を利用して、#N/Aと表示される場合、空白で表示される数式にしたところ、今度はA1セルが条件にあっていないのに”○”と表示されるようになりました。≪”B2=空白(”#N/A”),C2<=1の場合にあたるのだと思います。≫ *B2セルを”空白”ではなく”0”で表示させるようにしても同様に”○”となりました。 A1セルに、  B2>=1,C2<=0の場合”○”  C2>=1,B2<=0の場合”○”  B2>=1,C2>=1の場合”○”  B2<=1,C2<=1の場合"空白" で表示できる方法をご存じの方、ご教示お願いいたします。 簡単なことなのかもしれませんが、エクセル関数初心者のため、大変困っております。 うまく、不明な点を説明できていませんでしたら、申し訳ございません。何卒 よろしくお願いいたします。

  • IF関数の”真”と”偽”が理解できません

    IF関数について、解説をお願いしたいのですが 初心者です、ヘルプその他を調べながら セルA1にセルB1が30,000以上ならば525を 30,000未満ならば315を表示したいので =IF(B1<=30000,"315","525") で目的は達成できたのですが 本来は=IF(B1<=30000,"525","315") 真525 偽315になるのでないかと思うのですが なぜ真315 偽525になるのでしょうか 理解が出来ずに悩んでおります また、B1が空白の場合は、A1は空白を表示を付け加えたいのですが この点もご教授いただけないでしょうか

  • IF関数

    Window98を使用しております。エクセルに関してですが、基本的な事ですいません。IF関数で、条件が3つある場合、例えば100000以上が達成、80000以上が努力、80000未満が検討という場合関数を使用して最初の論理式の所で、>=100000と入力しまして、その後、真の場合の所で、達成と入力、そして、最後の偽の所で、もう一度IFを使用したのですが、それを押すと・+if(if()となってしまい。また一旦閉じて計算式の所で、IFを押したら+ifとなって、余分な+がついてしまいました。設定方法が悪いのか?入力の仕方が悪いのか?どうすればいいのか教えてください。

専門家に質問してみよう