『関数について』(きち) 関数のご指導をどなたか宜しくお願いします。 シート1に下記の様な1か月の日付がランダムに表示されてます。 A列に日付がC列に集計日を処理する場合にA列に日付を入力すれば 自動的にCの集計日列に5日毎の日付が表示される様な関数の入れ方をお教えください。 別シートに1日〜30日迄の日付を表示させてVLOOKUPを利用すれば処理は出来たのですが、月が変わる度に全ての日付が必要な為、同じシートに日付を表示させればと、考えました。どなたか、よろしくお教え下さい。 A日付 B C集計日 4月1日 4月5日 4月2日 4月5日 4月22日 4月25日 4月8日 4月10日 4月5日 4月5日 4月6日 4月10日 4月18日 4月20日 4月8日 4月10日 4月26日 4月30日 4月10日 4月10日 4月12日 4月15日 ---- ちょっとダラダラとした式ですが。。。   C2 =IF(A2="","",IF(DAY(A2)>IF(MONTH(A2)=2,25,30),DATE(YEAR(A2),MONTH(A2)+1,5),DATE(YEAR(A2),MONTH(A2),CEILING(DAY(A2),5))))   1行目はタイトルが入っているものとして考えています。   (キリキ)(〃⌒o⌒)b ---- (キリキ)様  凄い!出来ました。有難うございます。  因みにもうもうひとつ質問させて下さい。  最後の日付が31日になればどうすれば良いですか? 31日でも、末でもどちらでも良いです。 (きち) ---- (キリキ)様 何度もすみません。計算式の意味も一緒に教えて頂けますか?       (きち) ---- ごめんなさい。   >最後の日付が31日になればどうすれば良いですか? ここの仰ってる意味がよくわかりませんw   どういった場合に、どうなればいいのでしょう?   >計算式の意味も一緒に教えて頂けますか? こちらは、折角ですからヘルプを見ていただいて 何処がわかって、何処がわからなかったかを一緒に考えて解決してみませんか?   (キリキ)(〃⌒o⌒)b ---- (キリキ)様  ご丁寧に有難うございます。    >31日になればどうすれば良いですか?  月末が30日の月と31日の月がある場合に分ける為です。  因みに計算式の日付欄を変更して31日にしてみたのですが、翌月5日になりました。  例)5月31日の場合6月5日に。   >(MONTH(A2)=2,25,30),  単純に上記の30日を31日にしてみましたが、30日のままでした。すみません(−−〆)   > =IF(A2="","",IF(DAY(A2)>IF(MONTH(A2)=2,25,30),DATE(YEAR(A2),MONTH(A2)+1,5),DATE(YEAR(A2),MONTH(A2),CEILING(DAY(A2),5))))   >一緒に考えて解決してみませんか?  との返答して頂き、本当にありがとうございます。    上記、計算式は若し、A2に入力される数値が、日付よりも月、=2,25,30←単純に日と思いましたが、 MONTHなので、そうでは無いのですね? DATE(週、月等 >1,5←この、数字の内容が解りません。  若しかして5とう日毎なので1日の5倍ですか?  最後の),CEILING←の意味が解りません。(−−〆)      意味を理解すれば、今度同じ様な問題にぶつかった時に何かしら出来る様な気がしたんdすが・・  知識不足でお手数をおかけします。    お時間がありましたら、ご教示宜しくお願い致します。    (きち)       ---- こんにちわっ   >月末が30日の月と31日の月がある場合に分ける為です。  当初の例題に、31日の例が無かった為、 31日の場合は、翌月の5日を表示するように計算式に組込んだのですが、 31日の場合は、31日と表示したかったのでしょうか? そうすると、2月も月末表示でしょうか?    まず、この式の計算式を作るにあたって、考えた項目が ・入力されている日付を確認して、5日毎に表示する ・月末は、28日と30日と31日がある ・2月に関しては、閏年も存在する ・A列には入力していないセルも存在する 等を考えて作りました。   私用した関数は ・IF関数 ・DATE関数 ・YEAR関数 ・MONTH関数 ・DAY関数 ・CEILING関数 です。   各々のヘルプを見て、何処まで理解できました?   時間が無くなったので、またきますね〜♪ (キリキ)(〃⌒o⌒)b ---- (キリキ)様  早速、有難うございます。  上記の関数CEILING以外はある程度理解出来ます。  ただ、それを上手くつなぐ事が私には出来ません。お恥ずかしいです。(−−〆)    キリキ様仰る通り、月末も28日も閏年もあります。  30日さえ出来れば、自分でも出来るのでは無いかと思い、敢えて30日と致しました。  2度デマをおかけし大変申し訳ありません。  出来れば(キリキ)様、ご理解の通り、月末を含めもう一度、ご教示宜しくお願い申し上げます。           (きち)   ---- >上記の関数CEILING以外はある程度理解出来ます。  では、CEILING関数のヘルプから抜粋してみましょう〜♪   '' CEILING(数値,基準値)'' ''' 指定された基準値の倍数のうち、最も近い値に数値を切り上げます。''' ''' たとえば、原価 442 円の部品に値段を付ける場合に、1 円単位の端数を出さないようにするには、''' ''' 数式 =CEILING(442,10) を使って、値を最も近い 10 円単位の値に丸めることができます。''' こんな風に書いてありましたb   どうやら、数値を基準値の倍数に丸めてくれるらしいですね〜 似たような関数で、FLOOR関数ってのもありますので、後で確認してみてください。 (最初、間違えてこっちで考えちゃったんですがw)   今回の場合、5の倍数で切り上げるのが目的ですから、、、 1〜5 ⇒ 5 6〜10 ⇒ 10 11〜15 ⇒ 15 16〜20 ⇒ 20 21〜25 ⇒ 25 26〜30 ⇒ 30 ※31など、月末の最大の5の倍数の場合は、翌月だろうと思って関数を考えちゃいましたが・・・   こんな感じにしたいわけですb そこで、CEILING関数で丸めちゃったわけですね〜   その部分が DATE(YEAR(A8),MONTH(A8),CEILING(DAY(A8),5)) ここですb   日付を返すわけですから、DATE関数、YEAR関数、MONTH関数、DAY関数を使用するのはわかりますね? ただし、上記条件で丸める必要があるために、DAY関数の所でCEILING関数を組込んだわけですb   IF関数で色々な条件を分岐させてますが、そこはわかるのかな? わからなかったら、また書き込みしてくださいな^^   >出来れば(キリキ)様、ご理解の通り、月末を含めもう一度、ご教示宜しくお願い申し上げます。 月末を表示するのでしたら、真中あたりにある DATE(YEAR(A2),MONTH(A2)+1,5) ~~ を、 DATE(YEAR(A2),MONTH(A2)+1,0) ~~ に、変更してみてください〜♪ (キリキ)(〃⌒o⌒)b 「様」は苦手・・・ ---- ◆これでいかがでしょう A B C 1 日付 集計日 2 4月1日 4月5日 3 4月2日 4月5日 4 4月22日 4月25日 5 4月8日 4月10日 6 4月5日 4月5日 7 4月6日 4月10日 8 4月18日 4月20日 9 4月8日 4月10日 10 4月26日 4月30日 11 4月10日 4月10日 12 4月12日 4月15日 13 5月26日 5月31日 14 2月26日 2月28日 C2=IF(A2="","",IF(DAY(A2)>25,DATE(YEAR(A2),MONTH(A2)+1,0),A2+CEILING(DAY(A2),5)-DAY(A2))) ★下にコピー (Maron) ---- (キリキ)様(Maron)様 有難うございます。 (キリキ)様 5を0に変えるだけなんですね。 私は5を単純に31にしました。 浅はかでした。(;一_一) ご丁寧な説明で解り易かったです。    (Maron)様も具体的に計算式を表示してくださり、有難うございます。    (キリキ)様 又、ご教示宜しくお願いします。 ご丁寧な説明、単純にサイト間だけとは思われず、 キリキ様のお人柄が解る様で嬉しかったです。 本当に有難うございました。            (きち) ---- とんでもない! リアルは嫌な奴で通ってますwww   そうそう、月末の日数を出すためには、 DATE関数で「月」の部分を翌月に 「日」の部分を「0」にすると、前月の末日が出るので便利ですb   試しに、下記計算式をコピーして下にフィルコピーしてみるとわかるかな?   =2000+ROW(A1)&"年の2月の月末は、"&TEXT(DATE(2000+ROW(A1),3,0),"d日です")   (キリキ)(〃⌒o⌒)b