[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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)
D23-C23がマイナスならC24にマイナスの金額を表示。このような条件を付け足すことが出来ますか?
A18の数字によってD-CかC-Dになるんです。
(バンクーバー007)
えっと。。。A2に関しても って事ですか?
もしも、A2に「311以上361」が入力されたら? A10の場合は?
この表は、まだまだ下に続くと思いますが 何故急に A18 を限定した話しに成ってくるのでしょう?
あるセルに特有の数式を入れて行くのでなければ 全体を見て、数式をどうするか 決めていくのが良いと思いますが。
(HANA)
すべて別のシートから参照しています。
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)
もう一つ質問があるのですが、勘定科目シートの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)
12が得られません。以下10行目以降もおなじです。 何が原因でしょうか?
(バンクーバー007)
(バンクーバー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)
だから /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)
悪戦苦闘の結果 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.