• 締切済み

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

エクセル初心者です。毎月の支払出来高の表を作っています。A列に項目、B列に契約金額、C列に”済”と支払いが完了したら表示するように式が入ってます。D列以降は月々の累計支払いが入っています(例えば100万で契約して1月~12月で支払い)。D列 1月 E列 2月・・・・。 12月の次の列に残高計算する式が入っています。  そこで質問なのですが、C列に, IF(BR119=0,"済",IF(BR119<0,"NG","")),IF(D119<0,IF(BR119>D119,""))と入れたのですが、B列の金額の欄には値引き額があってマイナスの金額があるのです。契約金額を上回った時に”NG"と表示させたいのと、完了した時に”済”を表示させたいのですが、マイナスのところがうまくいきません。どうかアドバイスお願いします。

みんなの回答

回答No.3

#1です。 まだ、少しご説明の内容が腑に落ちてないのですが。 支払い残の式がちょっと変かな~。 IF(ISBLANK(E109),"",IF(E109<0,E109-(MIN(G109:BP109)),IF(E109>1,E109-(MAX(G109:BP109))))) (1)E列(金額)が空白の場合    空白 (2)E列(金額)が空白でなく、かつマイナス(値引)の場合    金額-値引き金額の累計 (3)E列(金額)が空白でなく、かつ1より大きい場合    金額-支払い金額の累計 2点、少し違和感がある部分がありますので ここを変えられたらいいんじゃないかと思います。 (2)の部分ですが、値引き金額の累計はマイナスであるのに    金額-(-マイナスの金額)でプラスになるから、おかしくなってしまうと。    これは金額-(値引き額の絶対値)になりますね。    単純に、金額+(値引き額の累計)としちゃっても良いと思いますが。後でなぜプラスにしたか分からなくなると困る場合は、絶対値に直してください。    300円の品を100円引きで買ったら、    300-(100)=200円と考えますよね。    イコール、300+(-100)=200です。    現在は値引き額がマイナス値であらわされているので、    金額の絶対値をマイナス、またはマイナス値をプラスしないと    正確な金額は計算できません。 (3)E(金額)が1より大きい の部分    現実にはないと思いますが、金額が1の場合が抜けてしまっているので、E>=0とした方が良いと思います。

noname#79209
noname#79209
回答No.2

申し訳ないですが、状況がキチンと書かれてないので、解りにくいです。 なんとか解読を試みたものの、構成が全く解りません。 1.最長66ヶ月の支払期間があるのか?(残高計算がBR列なのでD~BQで66列) 2.B列に契約金額と書いているのに、値引き(マイナス)もB列だとも書いている。  2行でワンセットか? 3.「D列以降は月々の累計支払い」と書いているが、月々の累計(積算)額でなく、  「累計」は言葉の綾で、個々の月での支払額を、支払があっ都度手入力していくのか? 4.式自体の表記がおかしい。(#1さんの指摘) 5.式でD列を参照しているが、D列は第一回目の支払額ではないのか?  それとも、値引きがあればB列でなくD列に入れるのか  (値引きをB列に入れるという記述そのものがミスタイプ?) 等、ツッコミどころが満載です。 できるだけ、言葉の表現でなく、エクセルの表を模した形式で具体例を書いて下さい。

helpme999
質問者

補足

説明不足ですみません。所々ミスタイプがありました。 1.残高がBR列なのは数量・金額(12月迄)、数量・金額(1月迄)・・・と2年ぐらいはあるので出来るだけ隅におきたかったのです。 2.    契約内容                    12月迄    1月迄・・・   項目  単位 数量  単価  金額  完了 数量 金額  数量 金額・・・   雑誌      100  1000  100000     ・    ・   値引き     -1  100000  -100000   合 計                20000000 3.月々の支払額ではなく累計を入れていきます。 4.作りかけの表を入力してしまいました。 5.列の表記が違ってました。 完了の列に"済""NG"を表示させる為にBR列には、IF(ISBLANK(E109),"",IF(E109<0,E109-(MIN(G109:BP109)),IF(E109>1,E109-(MAX(G109:BP109)))))が入ってます。 普通は完了の列は、IF(BR109=0,"済",IF(BR109<0,"NG",""))でいいのですが、契約金額(E列)が値引のマイナスの場合だと支払残が契約金よりだんだん大きくなっていくので、式がわからなかったのです。 よろしくお願いします。

回答No.1

IF関数を作る場合は、順番に考えていくといいですよ。 「場合分け」と一緒です。 今、作られている式は (1)BR=0の場合は「済」を表示    IF(BR119=0,"済", (2)BR≠0で、BR<0の場合は「NG」を表示 IF(BR119<0,"NG" (3)BR≠0で、BR≧0の場合は「""(空白)」を表示               ,"")) ここまででIFの場合分けが終わってしまうので、 余っている部分「,IF(D119<0,IF(BR119>D119,""))」が出てきてしまい、式としてエラーになります。 BRは何が入っているのかな?イマイチ数値の入り方がよく分からないですけど 考え方としてはこんな感じでいいんじゃないでしょうか =IF(残高=0,"済",IF(累計支払額>契約金額,"NG","")

helpme999
質問者

補足

見てくださいましてありがとうございます。 言葉足らずですみません。 BRの列には支払い残が入ってます。IF(ISBLANK(E116),"",IF(E116<0,E116-(MIN(G116:BP116)),IF(E116>1,E116-(MAX(G116:BP116))))) G列からBP列は月ごとの支払い累計が入ってます。 A    B   C   D   E   F    G   H  I   J ・・・   BR 項目  単位 数量 単価 金額 完了 数量 金額 数量 金額・・・   支払残 GとHは12月迄 IとJは1月迄・・・2年ぐらいの支払いなので余裕をもたせてBR列になってます。 F列にはIF(BR103=0,"済",IF(BR103<0,"NG",""))を入れています。 値引きのマイナスがなければこの式で問題ないのですが、値引きも月々発生します。通常、月が進むにつれて支払残は減っていきますが、値引きの場合は支払い残が契約の値引金額よりマイナスが減っていくので、大きくなってしまいます。それでF列にうまく式がいれられなく悩んでいます。(項目が100行ぐらいあり、最後の行に値引、合計となってます。)契約の値引が-100万だとして12月に-30万の値引、1月に-50万の値引・・・9月に-100万の値引で支払残が0になります。 説明下手ですみませんが、よろしくお願いします。

関連するQ&A

  • IF COUNTIF関数について教えて頂きたいです

    =IF(COUNTIF(A:A,B1)=0,"NG","") 上記の式の詳細について教えて頂きたいです。 私の理解としては、A列とB列を比較しB列にあるものを(B列にしかないもの)検索し、一致する値は0と表示、一致しない値はNGの表示といった解釈でいいでしょうか? =0,"NG","")   ←この式の意味が良くわからずにいます。 作業として行いたいことはA列とB列を比較しB列にしかない値をC列に表示したいです。この式の場合C列に一致しない値をNGと表示させる式だと理解しています。 また、上記の様な関数を説明しているサイトなどがあれば教えて頂きたいです。 宜しくお願いします。

  • エクセルのIF関数で数式をつなげたいのですが…

    エクセルのIF関数で A B C D E F 4月5月6月7月8月9月         田中 たとえばF列に名前が入っていれば、その列の月を表示させたいのですが、 =IF(A3<>"","4月","")+IF(B3<>"","5月","")+IF(…+IF(F3<>"""9月","") というような式を入れると#VALUE!と出てきてしまいます! 何か良い方法はないでしょうか? よろしくお願いいたします。

  • エクセル2007 IF関数について教えてください

    お世話になります。 どうしてもIF関数がうまくできず困りはてています。 下記のような項目を含むデータを2万件くらい抽出しています。 A列     B列  C列      D列 E列 状況    拒否理由       注文数   確認数 (1) 在庫不足   入力ミス  1     0 → キャンセル (2) 在庫不足       1      0 → 未処理 (3)                 5        0 → 未処理 (4)                 1       1 → 処理済 (5)   お客様キャンセル      10    0     →     キャンセル 未処理の件数を管理したいのですが、キャンセル扱いとなる条件を除く IF関数をうまく作成できません。 =IF(AND(D2>0,E5>0),"完了","未処理") といったように1個の条件についてはなんとかできるのですが、 B列が空欄or文字の入力有、C列が空欄、E列が0の数字の場合、D列の 数字を表示しなさい、といったようにまとめて、条件式をつくることができません。 何個かつなげると、TRUE、FALSEと表示され指定する列の(この場合D列)数字が表示 できません。 IF関数でなくてもよいのですが、未処理(キャンセル扱い除く)条件のみの数字を表示させる 方法をご教示お願いいたします。

  • エクセル IF関数の複合

    エクセル初心者です。よろしくお願いします。 売上比率の集計をしています。 B列:確定金額 C列:発生金額 D列:確定金額÷発生金額の割合を%表示してます I列に数式を入れて割合を集計しようとしています。算出したい数値は 「もしD列が100%以上になったら、一律100%に。且つもしD列が#DIV/0!のエラー値になったら60%にする」 エラーになってしまうのは、B・C列に0円のデータが含まれているためです。 IF関数を2つ使用するようなイメージなのですが、可能でしょうか?

  • エクセルの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関数を使えばできるような気がするのですが、色々と試してみても中々うまくいきません。 下手な説明で分かり辛いかもしれませんが、どなたかご存知の方がいましたら、ご教授の程頂ければ幸いです。 どうぞ宜しくお願い致します。

  • excel エクセルIF関数の作り方を教えて下さい

       A        B       C       D      E 1  発注納期  修正(1)   修正(2)     修正(3)    遅延日数    2  7/9      7/21     8/4               25 3  6/7       7/28     8/5       7/27     -1  4  6/22     7/28     8/7       8/9      47 <A列:発注納期)に対して、B・C・Dと修正し、<E列:遅延日数>を計算する式を E2=IF(B2="","",DAYS360(A2,MAX(B2:D2))) と入力していましたが、そうすると E3=58 となります。 列B~列Dのうち一番右側を選択して計算して、 E3=-1 とするためには、どのような式を作れば良いのか教えてください。

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

    IF関数について、皆様に質問です。 セルに入力された数値xがある数値yと同じか大きい場合は"NG"と表示し、数値aがある数値bと同じか小さい場合は"NG"と表示させたいと考えております。 IFを使って式を作成したのですが、『数式が多すぎる』というエラーになってしまいます。 具体的には、 セルB25に入力している数値が8.980の場合、 8.991と同じまたは大きい場合は"NG"と表示させたい。 同じセルB25で、8.969と同じまたは小さい場合は"NG"と表示させたい。 これをこのような式にしてみました。 =IF(B25<=9.991,"NG","",IF(B25>=9.969,"","NG")) これで『数式が多すぎる』というエラーになっています。 教えてgooで調べたのですが、解決には至っていません。 どなたかご教示いただけますでしょうか。

  • エクセル IF関数 初心者です。。

    A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 2  9:30 Cさん 11:00 3  10:00 Dさん 12:00 4  10:30 Eさん 9:00  1  9:00 A列氏名 B列時間 C列 B列IF関数 9:00からは1、10時からは2、 11からは3・・・ D列はC列のVLOOKUP関数 1=9:00、2=9:30、3=10:00・・・ そこでお聞きしたいのですが・・ A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 3  10:00 Cさん 11:00 4  10:30 Dさん 12:00 5  11:00 Eさん 9:00  2  9:30 IF関数を用いて IF(B1>=0.375),1,if(B1>=0.416666666666667),2,IF(B1>=0.458333333333333),3・・・ Eさんが2になるような数式がわかりません。 よろしくお願いします。。

  • IF関数について

    EXCELのIF関数について教えて下さい。 A列 B列  C列 D列 ○     ○  ○    ○  ×  × ×     ○  × AもしくはB列が○で、C列が○ならD列は○ AもしくはB列が×で、C列が○ならD列は× AもしくはB列が×で、C列が×ならD列は× AもしくはB列が空白で、C列が空白ならD列は空白 と言った条件式をD列のセルに記述しようと思っています。 試行錯誤してみたんですが、上手くいきません。 アドバイスでも構いませんので、教えて下さい。

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

    エクセルのD列に =IF(ISERROR(B5/C5),0.6,IF(B5/C5>=1,1,B5/C5)) 上記の数式を入力してあります。これに加え、B5/C5が0になるとき、60%になるようにはできますか?

専門家に質問してみよう