Excel関数のネストについての質問

このQ&Aのポイント
  • Excel2003での関数のネスト方法について疑問があります。具体的には、IF関数とレフト関数を組み合わせて使いたいのですが、どのようにネストすれば良いのか分かりません。
  • 具体的な問題としては、D列に1がある場合に、その隣のセルにC列の「失敗」と表示させたいです。しかし、単純に「=IF(D5:D9=1,LEFT(C:C,2))」とするとエラーになってしまいます。どのようにすれば正しくネストできるのか教えてください。
  • また、もし関数単体ではなくVBAを使ったプログラムの組み合わせが必要な場合もあるのでしょうか?もしそうなら、具体的なネストの方法やプログラムについて教えてください。
回答を見る
  • ベストアンサー

Excelで関数同士のネストのやり方について

Excel2003で下記のようなことがしたいのですが インターネット等を見たりしていますが どうしても分からないので質問します。 -------------------------------------        B列    C列   D列 1行目  0.978205321 成功  97 2行目  0.886081752 成功   87 3行目  0.553482324 失敗  56 4行目  0.05331816 失敗    6 5行目  0.562187845 失敗  1 ------------------------------------- 上記表にて IF関数でD列、1~5行目の中に1がある場合、 1のあるセルの隣(左側) 左列のC列の"失敗"と表示させたい場合 「IF関数とレフト関数を組み合わせてネストすれば 良いのでしょうか? その場合入れ子のやり方はどうしたら良いのでしょうか? =IF(D5:D9=1,LEFT(C:C,2))だと計算式自体意味不明となってしまうので、 関数もしくはVBAを使うとどのようなネスト関数/プログラムになるのか 教えていただけませんか? なにとぞ説明不足なこんな愚かで無知な私どもに ご教授宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>その場合入れ子のやり方はどうしたら良いのでしょうか? 入れ子にする必要はありません。 =IF(D1=1,C1,"") C列の文字列から左側の2文字まで返す時は次のようにしてください。 =IF(D1=1,LEFT(C1,2),"") 尚、提示の数式は配列を含む数式であり、提示の模擬データと論理に合わない状態です。 =IF(D5:D9=1,LEFT(C:C,2))     ↓ =IF(D$1:D$5=1,LEFT(C$1:C$5,2),"")

その他の回答 (1)

noname#222556
noname#222556
回答No.3

D列の数値はどこから来たのですか? 小数点第3位で四捨五入したもの…でもなさそうですし、 例にするには変わった数字ですが。 B列を基にして算出したものだとしたら、それは小数点以下の無い整数でしょうか。 「=ROUNDDOWN(B1,2)*100」とか 「=ROUNDUP(B1,2)*100」とか 「=ROUND(B1,2)*100」とか? もし整数なら、C1に「=IF(D1=1,”失敗”,”成功”)」の数式を入力して オートフィルで下まで数式コピーするので事足りると思うのですが…。 「1のあるセル」ということは「”1”を含んだ数値」ということでしょうか。 だとしたら、「=IF(IFERROR(FIND("1",D1),"成功")<>"成功","失敗",IFERROR(FIND("1",D1),"成功"))」 をC1に数式入力してオートフィルで下まで数式コピーする、とか。

関連するQ&A

  • エクセルの関数でセルの合計を求めたい(条件付) 

    関数で   A B C  1 ○ 1 2 × × 3 ○ 3 4 × × 5 × × 6 ○ 2    ※ ×は空白です。 A行がが○だった時、B列の数字と一つ下の○の行のB列の数字の合計をC行に求めたいと思っています。 例えばC1には4、C3には5と言った感じです。 IF関数をネストしようと思ったのですが、×が10個以上続く場合がありネストできませんでした。 お知恵を拝借させてください。 よろしくお願いします。 関数では難しい場合はVBAでも結構です。

  • 関数のネスト 入っている関数の前にネストしたい

    Excel2003を使っています。 要領が悪いのか、関数を作ってから、ネストしたいなと思います。 しかし、ネストする場合、その関数の後にネストする場合は、そのセルをアクティブにしてから関数ボックスをクリックすれば、簡単にネスト出来ますが、前に入れたい場合‥‥一から作り直しています。 一生懸命作り上げた関数なのに‥‥ 手打ちで入力してもいいのですが、だんだんと式が崩れてわやくちゃになるケースが多いのです。 ネストで、前に入れる場合、何かいい方法はありますでしょうか?

  • Excel2003の関数のネストの入力方法

    Excel2007のテキストでExcelを学んでしまったので、Excel2003の使い方が分からないので質問させて頂きます。 例えば、セルA1に入力されているVLOOKUP関数にエラーの場合、空白にするIF関数をネストさせたいのですが、Excel2007のテキストでは、関数をネストさせるのに、数式バーの左端の関数ボックスの▼をクリックし、関数を選択して、関数の引数ダイアログボックスでネストすることができたのに、Excel2003では、同じ操作をするとVLOOKUP関数が消えてしまい、IF関数しか入力できないのですが、Excel2003では、ネストさせる関数は、直接入力しないといけないのでしょうか?

  • Excel関数のネストについて

    はじめまして =IF(COUNTIF(D1:D10,"未"),"未","済") まではできたのですが、もうひとつネストする方法を教えてください。 やりたいこととして、D1からD10に”済”という文字列があったら”取得済”と表示させ ”未”という文字列があったら未取得と表示、 ★ここまでは上述した関数でできました。 +”未所持”という文字列があったら”未所持”と表示させたいです。 よろしくお願いいたします。

  • 関数の中に関数を入れる事をネストを言うのでしょうか

    関数の中に関数を入れる事をネストを言うのでしょうか? ネストの意味がよくわからないので教えてください。 =IF(A1<>"",LEN(A1),"") のように、関数の中に関数を入れることをネストというのでしょうか? それはIF関数を使わない場合でもネストと言いますか? ネストをするときは、決まってIF関数を使いますか?

  • IF関数のネストについてどなたか教えてください。

    IF関数のネストについてどなたか教えてください。 ●の関数は手入力で入れたのですが、fxボタンでIFを呼び出して、名前ボックスからネストしていくと▲のような表示になってしまいエラーになってしまいます。 ● =IF(C23="","",IF(C23=10,"総務部",IF(C23=20,"経理部",IF(C23=30,"人事部","営業部")))) ▲ =IF(C23=IF(C23=IF(C23=IF(C24=30,"人事部","営業部")=20,"経理部")=10,"総務部")="","") ちなみに論理式、真の場合まではいいのですが、偽の場合の所で名前ボックスからIFを呼び出すと上記のような表示なってしまいおかしくなります。 どなたか助けていただけないでしょうか?

  • Excel関数(IF)のネストができません

    セルD1に「1.1締切」「2.2.2.2延長」などの文字が入っています。 「締切」や「延長」などの漢字の前部分をE1に抜き出したく、 以下のような、IFでの数式を作りました。 MIDで2文字以降の先頭文字を抜き出して、LENBで2バイトだったら LEFTでその前を抜き出す、という感じです。 =IF(LENB(MID(D1,2,1))=2,LEFT(D1,1), IF(LENB(MID(D1,3,1))=2,LEFT(D1,2), IF(LENB(MID(D1,4,1))=2,LEFT(D1,3), IF(LENB(MID(D1,5,1))=2,LEFT(D1,4), IF(LENB(MID(D1,6,1))=2,LEFT(D1,5), IF(LENB(MID(D1,7,1))=2,LEFT(D1,6),"数式を確認")))))) 「2.2.2.」など、漢字の前部分は最大7文字なので、最後に IF(LENB(MID(D1,8,1))=2,LEFT(D1,7)を もう一つ入れたいのですが、これを入れると数式が確定できなくなります。 IF関数のネストは7レベルまで(最初のIFを入れて8個までと認識してます)、 中にあるMIDやLENBも、追加しても7個になるはずなので 確定できると思ったのですが、出来なくて悩んでいます。 お分かりになる方いらっしゃいましたらご教授ください! Excel2003 SP3を使用です。よろしくお願いいたします。

  • エクセルの関数

    エクセルの関数についてですが。 1行目には見出しがあります 2行目から100行目までデータが入っています A列は店名B列は氏名  C列には、目標の数字  D列には成績 E列に関数を入れたいのです。D列の数字が5000を超えると☆、さらにC列よりD列が大きかったら ○ (目標を達成したら○が入るということです) さらに、C列よりD列が小さい場合は、D列の数字をそのまま入る)。。。目標を達成した場合は ○ 達成していない場合は そのままの数字を入れるということです どんな関数をいれたらいいか教えてください

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

    エクセルのIF関数について質問をさせて頂きます。 現在、下記のような条件で抽出できる式を考えているのですが、 中々思うような式が思い浮かびません。 例えば、     A列  B列  C列  D列 1行目  111 2行目  222 3行目  333 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999 上記のようなシートがあったとして、     A列  B列  C列  D列 1行目  111       999 2行目  222       333 3行目  333   ○   123   × 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999   ○ 上記のように、例として C列の1行目に「999」と入力した場合、A列の9行目に「999」の数字があるので、その横のB列に「○」 C列の2行目に「333」と入力した場合、A列の3行目に「333」の数字があるので、その横のB列に「○」 C列の3行目に「123」と入力した場合、どこにも該当番号がないので、入力したC列の横、即ちD列の3行目に「×」を表示 要は、A列のどこかに該当数字があった場合にはその数字の横(B列)に「○」、どこにも該当数字が無い時には、入力した数字の横、D列に「×」を表示するような数式を考えています。 IF関数を使えばできるような気がするのですが、色々と試してみても中々うまくいきません。 下手な説明で分かり辛いかもしれませんが、どなたかご存知の方がいましたら、ご教授の程頂ければ幸いです。 どうぞ宜しくお願い致します。

  • エクセル2003の、関数を教えてください。

    エクセルの関数で、三つの条件を満たし、なおかつその中の1つは除く数式を探しています。 たとえば、A列  B列  C列      担当 売上月 区分      山本 1月   市      田中 2月   町      鈴木 済    国 としますと、担当が山本で、区分が市 となっている 済を除いた数 がいくつなのか? を数えたい場合、どんな関数を使えばいいのでしょうか? ここで教えていただいた方に、下記の方法を教えていただきやってみたのですがうまくいきません・・・何かがいけないのでしょう・・・ 1.D列に[判定]などの項目で、以下の数式を記述。  =IF(A2="山本",IF(B2<>"済",IF(C2="市","対象",""),""),"")   ※2行目(D2)への記述例です。 2.1の数式をD2から下方向へコピー。   ※データ終了行まで 3.(例えば)E列の1行目などに、以下の数式を記述。  =COUNTIF(D2:D100,"対象")   ※データが100行存在する場合の記述例です。 これで、3.の  =COUNTIF(D2:D100,"対象")  を貼り付けましたが 0 と出てしまいます

専門家に質問してみよう