[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『IF関数の追加について』(ふぅ)
連投失礼致します。
セルS4がAの場合は‥…Bの場合は…‥とIF関数をつなげたいのですが、 下記の数式だと、FALSEになってしまいます。 (関数を2つに分けると、結果は出ます) つなぎ方のどこが悪いのでしょうか‥
=IF(S4="",L4,IF(S4="A",IF(WEEKDAY(L4,2)=1,L4,IF(WEEKDAY(L4,2)=2,L4-1,IF(WEEKDAY(L4,2)=3,L4-2,IF(WEEKDAY(L4,2)=4,L4-1,IF(WEEKDAY(L4,2)=5,L4-2,IF(S4="B",IF(WEEKDAY(L4,2)=1,L4,IF(WEEKDAY(L4,2)=2,L4-1,IF(WEEKDAY(L4,2)=3,L4-1,IF(WEEKDAY(L4,2)=4,L4-2,IF(WEEKDAY(L4,2)=5,L4-3,0)))))))))))))
わかりにくい質問で申し訳ありませんが、よろしくお願いいたします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
こんな式でも良かったりしますかね?
=L4-INDEX(IF(S4="A",{0,1,2,1,2,0,0},IF(S4="B",{0,1,1,2,0,0,0},{0,0,0,0,0,0,0})),WEEKDAY(L4,2)) (???) 2020/08/05(水) 11:16
>つなぎ方のどこが悪いのでしょうか‥
S4="A" に対して、偽の場合が指定されてません。 カッコが足りないんでしょう。
・S4 が「A」「B」、空白以外ならどうなればいいのか? ・L4 が土日ならどうなればいいのか? といったところがよくわかりませんが
=IF(S4="",L4,L4-MID(IF(S4="A","0121200","0112300"),WEEKDAY(L4,2),1))
参考まで (笑) 2020/08/05(水) 11:43 数式1つ削除 12:34
下のVLOOKUP関数の3列の照合表を任意の位置に作成して仮に「VLL」という範囲名を
付けます。
WEEKDAY(L4,2) A B ←この行は不要(範囲名に含めない)
1 0 0 2 1 1 3 2 1 4 1 2 5 2 3 6 0 0 7 0 0
=IF(S4="",L4,L4-VLOOKUP(WEEKDAY(L4,2),VLL,IF(S4="A",2,3)))
(メジロ) 2020/08/05(水) 11:55
みなまさ 早々にご回答をありがとうございます。
???様の式を理解するのに時間が掛かってしまい、お礼が遅くなって申し訳ありません。 ???様の式をやっとうまく反映させることができ、思い通りの結果がでるようになりました。
笑様 ありがとうございます。 確かに偽の場合の設定ガされていませんでした。
そのような方法もあるのですね。 早速試してみます。
メジロ様 ありがとうございます。 関数は本当に奥が深いです… 理解に努めます。
貴重なお時間を割いていただき、ありがとうございます。 全て検証させていただきます。 ありがとうございました。
(ふぅ) 2020/08/05(水) 14:06
数式は、変数が使えない分、マクロより難しいと思っています。 使える関数も少ないですし。 だから、一旦思ったものそのままに式を書いた後、同じ計算をしている部分や、順番を変えて共通化できる部分が無いか、見直してみると良いですよ。(同じ計算が多いなら、変数の代わりに、作業列を用意してみるのも手です)
(???) 2020/08/05(水) 14:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.