[[20091128090209]] 『IF関数でできますか?』(バンクーバー007) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『IF関数でできますか?』(バンクーバー007)
   
     A      C      D
 2   189
 7        270,000   230,000
 8         40,000

 @C8にA2が150以上324以下の時C7-D7、C7とD7が両方空白の時はB8は空白。
 AD8にA2が150以上324以下の時C7-D7、C7とD7が両方空白の時はB8は空白。
 BC8はC8-D8がマイナスの時は表示しない。D8はC8-D8がマイナスの時のみ表示させたい。
(おじゃまします。 この条件循環参照になりますよ。)
 CC4:D8をC12へコピー。以降C20、C28、C36と決まった行にコピーしなくてはならない。

 Bについて
     A      C      D
 2   189
 7        200,000   230,000
 8               -40,000  

 複雑なIF関数わかりませんで、どうか教えて下さい。
 よろしくお願いします。


 四番目のイメージがよく分かりませんが・・・
 コピーは関数では出来ないと思います。

 また、数式のまま(A2セルを参照したまま)コピーすると
 A2セルの値が変わると、計算結果も変わってくると思います。

 コピーの目的が「データの蓄積」と言う事ではなく
 数式が、A2セルと一つ上の行のセルを参照する物として作りたいと言う事であれば
 数式で出来ると思います。

 例えば、C8は
=IF(AND(C7="",D7=""),"",IF(AND(150<=$A$2,$A$2<=324),IF(C7-D7<0,"",C7-D7),"A2が150〜324以外"))

 (HANA)

 B番目のイメージは以下の通りです。
       AB        C             D
  2    111	現金		
  3    区分     借方	     貸方
  4    振替			
  5    現金    201,260	   239,350
  6    合計    201,260	   239,350
  7    累計    273,023	   239,350
  8    残高     33,673	

 10    121    当座預金		
 11    区分     借方	     貸方
 12    振替    10,000	
 13    現金   100,000	   150,000
 14    合計   110,000	   150,000
 15    累計   500,000	   400,000
 16    残高   100,000	

 18    311    支払手形		
 19    区分     借方	     貸方
 20    振替    50,000      100,000	
 21    現金   
 22    合計    50,000      100,000
 23    累計   200,000	   400,000
 24    残高                200,000

 C4:D7にはSUMPRODUCT関数が入っていて別のシートから金額を参照しています。
 C8:D8の計算は出来ました。それをC16:D16にもコピーしたいです。
 その場合ROW関数、OFFSET関数などを用いてできませんか?

 この掲示板は、名前を書く欄が有りませんので
 コメント(返信)を書いたときに、一緒に
 名前も書くようにして頂ければと思います。

 一つの区画の行数が決まっている
  残高の行から、6行上のA列と 1行上のC,D列を参照する
 のであれば、各セルの参照を相対参照にして
 普通にコピーすれば良いと思いますが。。。?

 私が載せた式だと「$A$2」の部分を「A2」に変更した式を入れておいて
 A2:D8をコピーして、A10〜貼り付け

 (HANA)

A18が125以上200以下の時は、D23-C23でD24に200,000、
 D23-C23がマイナスならC24にマイナスの金額を表示。このような条件を付け足すことが出来ますか?

 A18の数字によってD-CかC-Dになるんです。

 (バンクーバー007) 

 えっと。。。A2に関しても って事ですか?

 もしも、A2に「311以上361」が入力されたら?
 A10の場合は?

 この表は、まだまだ下に続くと思いますが
 何故急に A18 を限定した話しに成ってくるのでしょう?

 あるセルに特有の数式を入れて行くのでなければ
 全体を見て、数式をどうするか 決めていくのが良いと思いますが。

 (HANA)

A2の111 C2の現金、A10の121 C10の当座預金 以下同じ
 すべて別のシートから参照しています。

 Sheet(開始設定)
 現金	    111	現金
 当座預金	121	当座預金
 普通預金	131	普通預金
 受取手形	151	受取手形
 支払手形	311	支払手形
 以下たくさんで、増減有り。

 ですから、A18に限定しているわけではありません。説明不足でした。
 A2に=INDEX(開始設定!E:E,INT(ROW(A1)/8)+11)という設定をしています。
 A2,10,18,26にくる番号によって、C-DかD-Cという計算をしなければなりません。
 開始設定の番号は順番に並んでいて、1以上125以下ならC-D、126以上200以下なら
 D-Cを計算したいんです。

 (バンクーバー007) 


 こんな感じにしてみてはどうでしょう。
=IF(AND(C7="",D7=""),"",IF(AND(1<=A2,A2<=200),IF(A2<=125,IF(C7-D7<0,"",C7-D7),IF(D7-C7<0,"",D7-C7)),"1〜200以外"))

 まず、C7,D7共に入力が無い場合は ""
 次に、A2が 1〜200 の範囲内に有る時で
      125以下の時、C7-D7が0未満なら "" それ以外なら C7-D7
         125以下でない時、D7-C7が0未満なら "" それ以外なら D7-C7
    A2が 1〜200 の範囲内に無い時 "1〜200以外"
 を表示(計算)します。

 (HANA)

HANAさんありがとうございました。できました!感謝しています!
 もう一つ質問があるのですが、勘定科目シートのE1:E300に
 E1 現金
 E2 当座預金
 E3 普通預金
 以下複数あり、増減します。

 C2に=INDEX(開始設定!E:E,INT(ROW(A1)+10))で現金を表示
 C10に=INDEX(開始設定!E:E,INT(ROW(A1)+11))で当座預金と表示させています。
 これだと、C18、C26…にはその都度+??の数字を1ずつ増やしていかないとだめなんです。

 勘定科目シートE:Eに増減がなければ単純に=E1にしますが、
 不要な科目とは削除したり新たに追加します。
 なにか良い方法はありませんか?


 微妙な式を使って居られますね。。。

 2行目の時 11
 10行目の時 12
 18行目の時 13
 となる様な式が作成出来れば良いですね。

 ってことは。。。
=INT(ROW()/8)+11
 の戻り値を確認してみて下さい。

 。。。って、この式と違う!?
=INDEX(開始設定!E:E,INT(ROW(A1)/8)+11)
 「/8」って重要ですよ。
 その前に載せて居られた式を使ったのでは
 何か問題が有りましたか?

 (HANA)

=INDEX(開始設定!E:E,INT(ROW(A1)/8)+11)だと10行目にコピーしても
 12が得られません。以下10行目以降もおなじです。
 何が原因でしょうか?

 (バンクーバー007)

すみません/7にすればできました。お手数おかけしました。

 (バンクーバー007)


 もう一度確認して見て下さい。
 新しいシートの
 A2に =ROW(A1)
 B2に =A2/8
 C2に =INT(B2)
 D2に =C2+11
 A2:D2をコピーして、10,18行目に貼り付けると
 以下の様に成りませんか?
	[A]	[B]	[C]	[D]
[1]				
[2]	1	0.125	0	11
[3]				
 :				
[9]				
[10]	9	1.125	1	12
[11]				
 :				
[17]				
[18]	17	2.125	2	13
[19]				
 成らない場合はどのセルがどの様に成るのか
 教えて下さい。

 (HANA)

単純に貼り付ける行が、9行目、16行目、23行目…でした。
 だから /7でよかったんです。お騒がせしました。

 昨日HANAさんに教わったIF関数上手く動かない部分があります。
 まだちゃんと確かめてないので、また詳しく質問させて下さい!

  (バンクーバー007) 


 その@
    AB        C             D
  2    1	現金		
  3    区分     借方	     貸方
  4    振替			
  5    現金    201,260	   239,350
  6    合計    201,260	   239,350
  7    累計    273,023	   239,350
  8    残高     33,673

 そのA 
 18    97     支払手形		
 19    区分     借方	     貸方
 20    振替    50,000      100,000	
 21    現金   
 22    合計    50,000      100,000
 23    累計   200,000	   400,000
 24    残高                200,000

 その@、Aではまったく条件が反対でして、
 その@の基準は必ずC7-D7で、C8はA2が1以上125以下の時C7-D7、
 D8はA2が1以上125以下の時C7-D7で同じ
 しかし、
 C8はプラスの場合のみ表示その時はD8は表示しない。
 D8はマイナスの場合表示しその時はC8は表示しない。

 そのAの基準は必ずD23-C23、C24はA2が126以上200以下の時D23-C23、
 D24はA2が126以上200以下の時D23-C23
 しかし、D24はプラスの場合のみ表示でその時はC24は表示しない
 C24はマイナスの場合表示しその時はD24は表示しない。

 C2、C18…がどの科目が入るかわからないので(C-DかD-Cになるかわからない)
 A2:D2の表は下に増減する。だから、C8、D8にはその@とA両方の条件を入れておく必要がある。

 HANAさんに教えて頂いたIF〜ですとそのAの条件が来たときFALSEになってしまいます。
 自分でもやってみましたが、IFがいっぱいあって頭が壊れそうです。
 助けて下さい。よろしくお願いします。


 どの式を使っていますか?

 C8に
=IF(AND(C7="",D7=""),"",IF(AND(1<=A2,A2<=200),IF(A2<=125,IF(C7-D7<0,"",C7-D7),IF(D7-C7<0,"",D7-C7)),"1〜200以外"))
 の式を入れると「33,673」が表示され

 これをコピーしてC18に貼り付けると「""」が表示されると思いますが
  「D8用の式が作れない」
 と言う事ですか?

 それとも
  「その(1) と その(2) で
   A列のコード以外の要因で
   C7-D7 と D7-C7 二つの式を切り替える必要がある」
 と言う事ですか?
  (現在の式では、A列が125を境に切り替えていますが。)

 でしたら、何の要因で変えるのですか?

 (HANA)

A列のコード以外の要因はありません。
 悪戦苦闘の結果
 D8に=IF(AND(C7="",D7=""),"",IF(AND(1<=A2,A2<=200),IF(A2<=125,IF(D7-C7<0,"",C7-D7),IF(D7-C7>0,D7-C7,"")),"1〜200以外"))
 を入れることで解決しました。

 えっと。。。良く分からなくなってきました。

 >その@の基準は必ずC7-D7で、C8はA2が1以上125以下の時C7-D7、
 >D8はA2が1以上125以下の時C7-D7で同じ
 二行目は 126以上200以下 の書き間違えとしても
 A2の値に関わらず C7-D7 をするという事ですよね?

 >そのAの基準は必ずD23-C23、C24はA2が126以上200以下の時D23-C23、
 >D24はA2が126以上200以下の時D23-C23
 これも、A2(本当はA18ですが)の値に関わらず
 D23-C23 と言う事ですか?

 でも
 >A列のコード以外の要因はありません。
 ですよね?

 この辺りの整理が上手く付いていない様に思います。
 A列のコードに連動して変わる部分なのか
 入力するセル(C,D列)によって変わる部分なのか。

 A列のコードに関する部分は問題無いと思いますので
 今は、D列用の式を作る部分での問題だと思います。

 おそらく、以下の様な事で良いのではないかと思いますが。。。

 まず、関係ありそうな所を取り出します。
 C列とD列で違うところは
  引き算して、判定して、結果を表示
 の所ですから、数式の
IF(A2<=125,IF(C7-D7<0,"",C7-D7),IF(D7-C7<0,"",D7-C7))
 この部分に成ると思います。

 この部分は、先にも書きましたが
 >     125以下の時、C7-D7が0未満なら "" それ以外なら C7-D7
 >        125以下でない時、D7-C7が0未満なら "" それ以外なら D7-C7
 をしています。

 D列用に変更する場合、C列用の式と同じように言葉で書くと
       125以下の時、D7-C7が0未満なら "" それ以外なら D7-C7
          125以下でない時、C7-D7が0未満なら "" それ以外なら C7-D7
 と、C7とD7を入れ替えれば良いだけに成りますので
 数式も
IF(A2<=125,IF(D7-C7<0,"",D7-C7),IF(C7-D7<0,"",C7-D7))
 C7とD7を入れ替えることになります。

 これを、元の式の[取り出した部分]に戻しますと
 D8には
=IF(AND(C7="",D7=""),"",IF(AND(1<=A2,A2<=200),IF(A2<=125,IF(D7-C7<0,"",D7-C7),IF(C7-D7<0,"",C7-D7)),"1〜200以外"))
 の式が入ることに成ると思います。

 >その@、Aではまったく条件が反対でして、
 と書いて居られますが、反対なのは
 ●C列とD列とで、条件が反対
 なのでは無いでしょうか。

 これらの整理が付いていないので
 式の作成が困難に成っているように思います。

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.