条件①・・・前期または後期の場合の月曜日~日曜日に対して、A1:AA68の表に6×6の31日分の表に"/"を出したい。AB1セルは前期、後期を選べるようになっています。
条件②・・・しかし、DK3:DP8に関数を直接埋め込むことはしない。私はなんとか出来ますが、このブック操作をする初心者にとっては理解不能だから。
条件③・・・そこで、B72:R114に"/"(テキストデータ)を直接埋め込む。これならだれでもできる。その
ルールに従ってDK3:DP8に関数を入れたい。ここからA1:AA68に数式コピーはVBAによってやっているので、問題ありません。DK3:DP8の関数部分(ピンクの部分)をお願いしたいです。ちなみに私は
DK3セルに「=IF(AND($AB$1="前期",$DH$6="月"),VLOOKUP($DJ3,$C$73:$R$78,DK$2+1),VLOOKUP($DJ3,$C$73:$R$78,DK$2+10))」
をいれましたが、火曜日から日曜日の部分まで入りきれません。たぶん、INDEX関数とか
MATCH関数、OFFSET関数などを組み合わせるのかな?と思うのですが、わたしには理解できません。
ですから、そういうページをお知らせするのではなく、具体的に教えてください。
今回の場合、OFFSET関数とMATCH関数(とIF関数)で実現可能かと思います。
下記の数式でいかがでしょうか?
=OFFSET($D$73,MATCH($DH$6,$B$73:$B$114,0)+$DJ3-2,DK$2-1+IF($AB$1="前期",0,9))
もしくは、こんな書き方も可能です。
=OFFSET($D$73,MATCH($DH$6,$B$73:$B$114,0)+$DJ3-2,DK$2-1+($AB$1="後期")*9)
蛇足ですが、VLOOKUP関数を使用される時は、最後の引数に0を指定した方が良いですよ。
DK3セルに「=IF(AND($AB$1="前期",$DH$6="月"),VLOOKUP($DJ3,$C$73:$R$78,DK$2+1),VLOOKUP($DJ3,$C$73:$R$78,DK$2+10))」
をいれましたが、火曜日から日曜日の部分まで入りきれません。
この数式は 月曜日のみ用ですね。
火曜日には どのような数式を入れていますか?
DHとDJの関係が よくわかりませんね。
$DH$6
$DJ3
これらを どのように 変化させたらいいのかを それぞれ曜日ごとに 提示してもらえたらいいと思います。
早速ありがとうございます。ご指摘の通り、月曜日のみなので、このIF関数の続きに火曜日から日曜日まで6日分コピペして所々直して、入れていくのが長すぎるという自分の判断です。
DH6は曜日が一つ分入っていて、それに対して6×6の36個のセルで/を出すか出さないかを決めるということ。その出方のルール例がB72:R114です。B72:R114の/はダミーです。要するにここにどのように設定しても、それがピンクの部分の数式に反映されて、赤いセルが火曜日になれば火曜日の出方になる、といったふうになってほしいということです。
補足します。ピンクの部分には月曜日でも火曜日でもどの曜日にも対応できるような関数を入れてほしいです。
これができたら、私はVBAで31日分、数式コピーをしているだけです。また、4月から3月はこのシートがコピーされることで、できることになります。
今回の場合、OFFSET関数とMATCH関数(とIF関数)で実現可能かと思います。
下記の数式でいかがでしょうか?
=OFFSET($D$73,MATCH($DH$6,$B$73:$B$114,0)+$DJ3-2,DK$2-1+IF($AB$1="前期",0,9))
もしくは、こんな書き方も可能です。
=OFFSET($D$73,MATCH($DH$6,$B$73:$B$114,0)+$DJ3-2,DK$2-1+($AB$1="後期")*9)
蛇足ですが、VLOOKUP関数を使用される時は、最後の引数に0を指定した方が良いですよ。
できました。関数の使い方も分かりました。最後のIF文をたし算するのが素晴らしかったです。ありがとうございました。
できました。関数の使い方も分かりました。最後のIF文をたし算するのが素晴らしかったです。ありがとうございました。
2012/08/28 18:13:51