• 締切済み

Excel2003日付指定で数値を返す

    A       B       C       D      E 1   コード    日付   枚数   金額     締め 2   1525     7/05      3     4800     5 3   2555     7/11      5     3900     15 4  1524      7/16      2    2980      20 日付で1日~5日は締め5日 6日~10日は締め10日 11日~15日は締め15日 16日~20日は締め20日 21日~25日は締め25日 26日~31日は締め末日 と 日付によって締めが変わってきます、入力された日付で締め日を自動入力出来ればと IF関数を使ってやってみたのですがうまく行きません、どうぞ宜しくお願いいたします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.8

E2に =IF(B2="","",IF(DAY(B2)<26,CEILING(DAY(B2),5),DAY(DATE(YEAR(B2),MONTH(B2)+1,0)))) ぐらいでいいです。

回答No.7

まず先に「EOMONTH」という関数を使いますので「ツール」→「アドイン」→「分析ツール」にチェックを入れて「OK」で閉じます IF関数を使って値を返す場合の数式は次の通り セルE2=IF(DAY(B2)>=26,TEXT(DAY(EOMONTH(B2,0)),"D")*1,IF(DAY(B2)>=21,25,IF(DAY(B2)>=16,20,IF(DAY(B2)>=11,15,IF(DAY(B2)>=6,10,IF(DAY(B2)>=1,5,"")))))) 「EOMONTH」葉そのまま使うと日付で値を返してきますので「TEXT」関数をを使い更に数値化してあげます 更にその月の最終日も出力することが出来ますので閏年、その他も特に心配する必要はありません 一応、画像を添付しておきます <(_ _)>

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.6

=IF(DAY(B2) >25,DAY(DATE(YEAR(B2),MONTH(B2)+1,0)),INT((DAY(B2)-1)/5+1)*5) とか?

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.3・4です! 何度もごめんなさい。 No.3で誤記がありました。 >メニュー → ツール → オプション → 「分析ツール」に・・・ は >メニュー → ツール → アドイン → 「分析ツール」に・・・ が正解です。 どうも失礼しました。m(_ _)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.3です! たびたびごめんなさい。 前回の数式内 Match関数で余計なものが入っていました。 (そのままでも問題ないと思いますが) 数式を =IF(B2="","",IF(DAY(B2)>=26,DAY(EOMONTH(B2,0)),CHOOSE(MATCH(DAY(B2),{1,6,11,16,21},1),5,10,15,20,25))) に訂正してください。m(_ _)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! No.1さんとほぼ同じやり方になりますが・・・ E2セルに =IF(B2="","",IF(DAY(B2)>=26,DAY(EOMONTH(B2,0)),CHOOSE(MATCH(DAY(B2),{1,6,11,16,21,26},1),5,10,15,20,25))) という数式を入れオートフィルで下へコピーではどうでしょうか? ※ Excel2003というコトですので、EOMONTH関数を使用するにあたり メニュー → ツール → オプション → 「分析ツール」にチェックを入れておく必要があります。 ※ E列セルの表示形式は ユーザー定義から 0日 としておきます。 参考になりますかね?m(_ _)m

noname#204879
noname#204879
回答No.2

》 26日~31日は締め末日 単に「末」あるいは「末日」と表示させるのですか?それとも… 1月、2月、4月はそれぞれ 31、28(または 29)、30 と表示させるのですか? ソコントコ明確にしなきゃ~!

paruru6364
質問者

補足

そこまで厳密に考えて質問をしていませんでした。mike_gさんの指摘どおりですね、暦によって末日は変わります。ありがとうございます。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

=CHOOSE(DAY(B2),5,5,5,5,5,10,10,10,10,10,15,15,15,15,15,20,20,20,20,20,25,25,25,25,25,DAY(EOMONTH(B2,0)),DAY(EOMONTH(B2,0)),DAY(EOMONTH(B2,0)),DAY(EOMONTH(B2,0)),DAY(EOMONTH(B2,0)),DAY(EOMONTH(B2,0)))

関連するQ&A

  • Excel2003指定の列削除

        A B C D E 1   コード    日付   枚数   金額     締め 2   1525     7/10      3      4800     5 3   2555     7/11      5      3900     10 4  1524     7/11      2      2980     5 E 締め が 5 10 15 20 25 末 と 5,10日ごとにあり請求を起こしています、この 5 10 ・・・・の締め請求が終わったら列を削除して行きたいと思います。5の請求が終われば5の列(複数あります)を削除。どうぞよろしくおねがいいたします。

  • エクセルでの勤怠管理

    出勤簿を作成するのですが、人により、開始日、締日が異なります。(末日、20日、15日締めなど) 「平成18年9月」分などと指定された場所に入力すると、 末日締 9/1~9/30 20日締 8/25~9/24 15日締 8/15~9/14 といった日付が自動入力されるようにしたいのですが、どうぞご指導ください。

  • エクセル 指定した期間の表示

    エクセル2000で簡単な勤務表を作っています。 20日が締め日なので  ・A1に日付を手入力するとC1には自動で翌月の20日が表示される方法 ・A2~A**にはC1に表示された日にちが自動で入力(表示)される方法 を教えていただきたいです。  A   B   C   D  1 4/21 ~ 5/20 2 日付 曜日 出社時間  3 4/21 4 4/22 *省略* **5/19 **5/20 マクロは、始めたばかりなので自動記録しか分かりません。 関数で出来るようであれば、そちらでお願いします。

  • Excelで特定の日付以降の非表示

     閲覧有難うございます。 Excelを使用してシフト表を作りたいのですが、開始日を各月の11日、締め日を10日とした場合 10日以降の日付を表示しない方法を教えていただきたいです。 日付の自動入力を使っているのですが、月末日が変動する月 (2月や9月など、30日までしかないまたは30日以前に終わってしまう月) はオートフィルで自動入力の関数文を指定した場合 10日以降の日付まで表示されてしまうのです。 11日から10日まで限定で表示したい場合はどうすればいいでしょうか。 IF文を使えばいいのか、それとももっと別の関数を使うべきなのかわかりません。 教えていただければ幸いです。 以下自分が書いている状態です。 C2に年数(2013) D2に月(今でしたら9) D3に=DETA(C2,D2,11)  E3に=(D3+1)とし、F3・・=(E3+1)となっております。以下右に同じようにオートフィルで関数文が指定されてます。

  • EXCELで、締日を出す方法

    A1 入社日 A2 工場名 A3 締日 A5 6ヵ月後の締日 A6 1年後の締日 A7 1年6ヵ月後 ・   ~ A24 10年後の締日 A2の工場名は、データ→入力規制→リストで選択予定 A3の締日は、工場を選択すると、20日、25日、末日の3種類から  選ばれる。(VLOOKUP等で…) A5~A24に、半年ごとの日付を表示させたい。                                 希望:A3で選ばれた締日によって、半年ごとの日付が変わる様にした    い。(A5~A24の同じセル内で)    締日までに入社した月を、1ヶ月とします。    2006/11/10入社なら、    半年後は、25日締なら2007/4/25。末日締なら、2007/4/30。    1年後は、25日締なら2007/10/25。末日締なら、2007/10/31。 お分かりいただけるでしょうか? よろしくお願いします。

  • excel関数について

    現在、EXCELで会社の注文書を作成しています。合計金額が入力されると同時に合計金額入力して日を発行日として表示したいのですが、その発行日が次の日になると変わってしまいます。良い方法はないでしょうか?日付が入るセルには以下の関数を入れています。 =IF(C15,TODAY()," ") できれば関数で教えてください。よろしく お願いします。

  • Excel2003で元号から西暦に変換

    E2に 平成21年4月分 というデータが入っています。 B11に日付を入力したとき、 C11に曜日を自動的に入れたいと思っていますが、 C11に私がいれた関数は、元号から西暦に変換する関数が分からず、 =IF(C11="","",TEXT(DATE(2009,MID($E$2,6,1),C11),"aaa")) と入れました。 本当はDATE関数の2009の所に、E2の平成21年を西暦に変換して入れたいのですが、関数が分かりません。 教えてください。

  • Excel:11日締の場合の日付自動挿入

    こんにちは! また質問させていただきます。 現在、Excelにて給料管理シートを製作しているのですが、 うちの会社には末締めと10日締めの2通りあります。 末締めの場合の業務日報などの日付は、 C4に日付(2007/2/1)手入力 A5:=IF(C4="","",C4) B5:=IF(A5="","",DAY(A5)) C5:=IF(C5="","",TEXT(A5,"aaa")) にして、日付と曜日が自動で入るようにしています。 また、2月や30日しかない月(9月など)は、ない日付を非表示にするため、 B33からB35まで、=IF(A33="","",IF(DAY(A33)<10,"",DAY(A33))) と入れています。 ここからが質問なのですが、単純にA4に+10にすると、1月11日開始にはなるのですが、 これだと2月8日以降が表示されません。 月が変わっても、翌月10日まで表示させるにはどのような関数を使えばいいのでしょうか? どなたか教えていただけませんでしょうか? よろしくお願いします。 Excelバージョン:2003 OS WindowsXP PRO です。

  • 得意先の締日により該当月を変更するには

    得意先により25日締め、27日締め、月末締めがあります。25日締めはA社のみ、27日締めはB社、C社の2社、後は全部月末締めです。 会社コードがA社で注文日付の日付数字が25以下なら当月、25以上なら翌月、27日締めの2社も同様にコードから27以下なら当月、27以上なら翌月、それ以外はすべて当月とする関数文が作れればと考えています。 そこでAR1からAV1まで上記条件を満たすために必要と思われる、注文日付、会社コード、日数、当月、翌月を求める関数をいれてみました。 A社コード:10090 B社コード:10097 C社コード:10098 AR1に注文日付が入ります。(例: 2018/12/23)  AS1に会社のコードが入ります。AT1には=DAY(AR1)の関数が入り日付の数字が入ります。 AU1には該当月を求める関数=MONTH(AR1)、AV1には翌月を求める関数=EDATE(AR1,1)が入ります。 その結果を求める関数をAW1当たりに入れたいと考えています。 あくまでも締日による該当月が求められれば良いので、もっとセルを使っても問題ありません。 もしこれが無理であれば、日付マスタ(シート名)を使う事は可能でしょうか。日付マスタはA列のA2からA150まで得意先名、K列のK2からK150まで該当締月が自動で入る関数が入っています。途中E列には会社コードが入っています。 月末締めは=EOMONTH(TODAY(),0)、25日締めは=EOMONTH(TODAY(),-1)+25が入っています。27日締めは同様に=EOMONTH(TODAY(),-1)+27が入っています。 このマスタにうまく締日による該当月の数字列を加えることはできないでしょうか。

  • Access97で月末と照合して入力できますか?

    使用ソフトはAccess97です。 例えばアクセスのテーブルに フィールド1に今月の末日を入力します。(年と月を入れれば自動で末日が記されれば、なお有り難いです) フィールド2にある日の日付を入力します。 フィールド3にある日の日付が月末になってなければ数値1を、月末を越えて来月になっていれば0が自動入力される フィールド3のこのような関数はありますか?エクセルではIF関数を用いればできることなのですが、アクセスではわからないのです。 どなたかお詳しい方、よろしくお願いします。

専門家に質問してみよう