Excelや関数について教えてください

このQ&Aのポイント
  • Excelや関数について教えてください。
  • 製造日から賞味期限までの期間の3分の1の時点や3分の2の時点、2分の1の時点を割り出す関数を教えてください。
  • ExcelのA列に製造年月日の日にちを入力し、B列に賞味期限の日数を入力すると、C列には1/3の日にちが表示され、D列には1/2の日にちが表示されるような表を作りたいです。
回答を見る
  • ベストアンサー

Excelや、ややこしい関数について教えて下さい。

Excelや関数にお詳しい方、教えて下さい。 製造日から賞味期限までの期間の3分の1の時点や3分の2の時点、2分の1の時点を割り出す関数を教えて下さい。 (例) (1)製造日:2011年4月15日で、 賞味期限は9ヶ月、なので来年の 1/15となる。 この場合で、3分の1の時点の月日を出すには、どのような関数を作ればいいのでしょうか? (2)上記の日にちで、3分の2の時と、2分の1の時は、どこを直せばいいでしょうか? 例えば、ExcelのA列に、製造年月日の日にちを入れて、B列に賞味期限の日数、9ヵ月とか12ヶ月と入力すると、C列には、1/3の日にちが出て、D列には1/2の日にちが出るような表を作りたいと思っています。 説明が下手ですみません。意味が不明など質問して下さい。 関数やExcel、納入期限設定などにお詳しい方、どうぞよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

B列は 「月数」を入力する C2セル 賞味期限 =DATE(YEAR(A2),MONTH(A2)+B2,DAY(A2)) D2セル 3分の1 比例計算 y=ax+b を思い浮かべる ただし、時間は切り捨て。 =INT(($C2-$A2)/3)+$A2 E2セルもD2セルと同様 =INT(($C2-$A2)/2)+$A2 E2セルもD2セルと同様 =INT(($C2-$A2)*2/3)+$A2

casper4723
質問者

お礼

ありがとうございます!!エクセル表を張り付けてくださって、とても分かりやすくて、助かりました。 本当にありがとうございました。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

既出の回答の式では A1に2011/2/12、 B1に2とすると、 C1は2011/2/12(式=IF($A1="","",DATE(YEAR($A1),MONTH($A1)+$B1/3,DAY($A1))) )   となるが D1に=IF($A1="","",DATE(YEAR($A1),MONTH($A1)+$B1,DAY($A1))))で2ヵ月後の日付を出し =A1+(D1-A1)/3 で期間日数の1/3を経線なして計算して足す で=A1+(D1-A1)/3で 2011/3/3 が良いのでは。つきを3などで割った値が整数化かされるのでは。 両者を一体化して1つの式に出来る。 =IF($A1="","",$A1+(DATE(YEAR($A1),MONTH($A1)+$B1,DAY($A1))-$A1)/3) 1/2の場合は/3を/2にする。 なお、Xヵ月後の賞味期限とは、X月後の応答月の当該の日が期限と理解する(慣行?法定?)。 B1はつき表示で入力されていること(1年ー>12月、2年ー>24月) EDATEを使う方が良いかと思うが、バージョンによっては、アドイン関数なので注意必要。

casper4723
質問者

お礼

ありがとうございます。バージョン情報もありがとうございました。

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

こんにちは! 一例です。 下の画像でB2セルに =A2+(EDATE(A2,D2)-A2)*B1 という数式を入れています。 尚、EDATE関数を使用するにあたって、当方使用のExcel2003以前のバージョンでは メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。 参考になれば良いのですが・・・m(__)m

casper4723
質問者

お礼

エクセル表の貼り付けありがとうございます。今日何時間もやって、へんてこなものしかできずに困っていました。助かりました。バージョンの確認とチェックの仕方も詳しく教えて下さってありがとうございました。

  • BuonGiorn
  • ベストアンサー率32% (8/25)
回答No.3

そのような関数はまだ無いようです。 製造日からEDATE(製造日日,月数)で賞味期限を算出します。 賞味期限日から製造日を引きます。(日付のままでok) 引いた値を1/3したものを、仮に賞味1/3と呼びます。 C列には、DATEVALUE(製造日)+賞味1/3。 D列には、1/2した値で計算します。 F1:EDATE(A1,B1) G1:(F1-A1)/3 C1:DATEVALUE(A1)+G1 F1,G1はC1にまとめることも出来ます。 1日以下の端数が問題ならROUND,ROUNDUP,ROUNDDOWNなどで 調整できます。

casper4723
質問者

お礼

ありがとうございました。ROUNDも教えて下さって、ありがとうございます。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

A1=製造日 B1=賞味期限(月数) C1=DATE(YEAR(A1),MONTH(A1)+B1/3,DAY(A1)) D1=DATE(YEAR(A1),MONTH(A1)+B1/2,DAY(A1)) E1=DATE(YEAR(A1),MONTH(A1)+B1*2/3,DAY(A1))

casper4723
質問者

お礼

ありがとうございました。助かりました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

C1セルには次の式を入力して下方にオートフィルドラッグします。 =IF($A1="","",DATE(YEAR($A1),MONTH($A1)+$B1/2,DAY($A1))) D1セルには次の式を入力して下方にオートフィルドラッグします。 =IF($A1="","",DATE(YEAR($A1),MONTH($A1)+$B1/3,DAY($A1)))

関連するQ&A

  • エクセルで、賞味期限を、製造年月日の「4か月半後」というように表示したいのです。

     エクセルで、表題のように、製造年月日の「○○か月半」後、のように表示したいのですが、わたしのようなエクセル初心者でもわかるようにできる方法はないですか?  仕事は商品管理をやっている者です。賞味期限の管理を製造年月日を入力すれば、自動的に○○か月後の、賞味期限が表示される表をつくりたいとおもいました。  いろいろ調べた結果、賞味期限管理には、edate関数がいいらしいというところまではわかりました。  ほとんどの表はそれで埋まったのですが、ところどころ、わたしの扱っている商品は、はんぱな賞味期限なものがあるのです。たとえば、製造年月日の、4か月半後、などです。  通常の賞味期限であれば、たとえば、一年後だと、 A   B 製造年月日  賞味期限 1 2009/12/5 =edate(A1,12) などでできますが、これをたとえば4か月「半」とかにはどうすればできるのでしょうか?=edate(A1,4.5)とかやってみてもできないようですし.........  edateは 「月」単位でしかやはりできないのでしょうか?  お手すきな方、お教えねがえませんか?お願いいたします。

  • DATEDIF関数について

    賞味期限表を作っています(A8:飲み物名/B8:賞味期限日/B1:日付(TODAY関数仕様) 賞味期限残日数という別の表に、=DATEDIF($B$1,B8,"D")の関数を入力して日数が出るようにしたのですが、本日もしくは賞味期限日を含む日数が出ます。できれば、それを含まない表示にしたいです。 例)本日:2008/12/17 賞味期限:2009/1/17ならば 残日数を30と出るようにしたいです。よきアドバイスお願いします。 ちなみにエクセル2007と2003では残日数に変化がありますか? 2007では、31 2003では、32とでるのですが、勘違いだったらすみません。

  • ExcelのVLOOKUP関数?IF関数?

    下記のようなExcelがシート1にあります。  A     B     C 11/1 11/2 11/3 11/4 11/5 11/6 A列には月日が1日から31日まで入っています。 別のシート2には下記のようなExcelがあります。  A     B     C 11/1   1000    2000 11/1   2000    3000 11/3   5000    10000 11/3   7000    4000 11/5   500     3000 11/6   5000    1000 A列には月日が飛び飛びの状態です。 シート1には結果として下記のように表示したいのです。  A     B     C 11/1   3000    5000 11/2    0      0 11/3   12000   14000 11/4    0      0 11/5   500    3000 11/6   5000    1000 シート1の月日とシート2の月日の同一のものを探し、その値の合計をB列C列に表示する。 シート1の月日とシート2の月日が同一でないものは"0"と表示する。 この場合、どういった関数を使えばよいでしょうか。 また、関数式も具体的にどういったものにすればよいでしょうか。

  • 雪の宿が好きで箱買いを・・

    賞味期限の説明は本・三幸製菓で読みましたが、製造年月日の記載がありませんので、賞味期限が近いと不安になります。 そこで・・ (1) ストーブなどの影響で特に温かかったり、湿度の高い室内などの悪条件下では、何ヶ月くらい美味しく食べられるものなのでしょうか。 この「雪の宿」の賞味期限と製造年月日の差(日数)を教えて頂けますと幸いです。 (2) あと、24枚と14枚とがありますが、14枚の方が口当たりが良く美味しい感じているのですが、テイストの差とかあるのでしょうか ?

  • Excelの関数で悩んでいます。

    Excel の関数で悩んでいます。 預かっている物があるとして、年間の管理簿において預かり日から経過日数は計算できています。 預かり日から経過日数が35日以内の預かり期間が月において何日あるか。また35日を超える預かり期間が月において何日あるかを計算したいです。 例えば9月分を集計する場合、A列は預かり日、B列はこれまでの経過日数、C列に9月の内35日以内の預かり期間が何日あるか、D列に9月の内35日を超える預かり日数が何日あるか表示したく、 A列  B列 C列 D列 6/2  121 0  30 8/3  59  6  24 9/1  30  30  0   上記となるようなC列、D列の関数がわかりません。良い方法をご存じの方、よろしくお願いいたします。

  • エクセルで残り日数を計算させる

    エクセルで関数を使用し10/1までの残り日数を表示させたいのですが どのような計算式を作成すれば宜しいでしょうか? A1に4月20日と記入した場合  A列に月日を記入しB列に残り日数を表示させたいです。   A列     B列 3 4月13日   7日 4 5 4月15日   5日     ・    ・     ・    ・  このようになる関数を教えて下さい。

  • エクセルの関数について質問

    次のような表を考えているのですが関数をどうすれば良いか教えてください エクセルのバージョンは2003です。 ・下記の4列目に2013年3月31日時点におけるに入社してからの年数を関数で計算させたい ・下記の5列目に4列目が10年以下の人は10、10年超20年以下の人には20、20年超30年以下の人には30と表示される関数を組みたい ・下記の6列目に2013年3月31日時点における年齢を関数で表示させたい 氏名 入社日付 生年月日  入社年数 区分 年齢 A 1999/4/1 1975/11/9  B 1988/4/1 1962/8/1 C 2007/6/3 D E F G ・ ・ ・ ・ 以上お手数をおかけしますが、宜しくお願いします。

  • エクセル関数で年月日を求める関数について質問です。

    エクセル関数で年月日を求める関数について質問です。 1行目に月、2行目に日をする際、1行目の月を変えるだけでその月の日数を2行目にオートフィルコピーで簡単に入力する関数を教えて下さい。

  • エクセル2000 の関数について

    お世話になります。 NETWORKDAYS関数を使って、土日・祝日を除く日数をカウントするのは、過去の質問から分かったのですが、 その他の条件として、土曜出勤の日が含まれている場合には、 プラスして計算したい場合は、どうすればよろしいでしょうか? エクセル2000のバージョンを使っています。 A列に開始日  B列に終了日  C列に日数 ※E列の日付が含まれていたら除く ※F列の日付が含まれていたら1日プラスする。  A列      B列      C列     E列      F列 1 開始日    終了日    日数    祝日      土曜出勤日 2 2006/08/01  2006/08/11  **     2006/07/17   2006/07/22 3 2006/08/11  2006/08/18  **     2006/08/14   2006/08/19 4 2006/08/14  2006/08/25  **     2006/08/15 5 2006/08/17  2006/08/25  **     2006/09/18 よろしくお願いします。

  • エクセルの関数で・・・

    エクセルで領収書の整理をしています。 同じ日にちが続くときに日にちの入力をせずにしたいのですが、例えば A4が空白の時には上のセル(A3)と同じ日にちを表示する。空白でない場合は何も表示せずに自分で入力する。それを列全体に設定する。 といったようにしたいのですが… 本を見ながらIF関数で言葉通りの式を作ったつもりなのですが、何も入力しない空白の時には”0”が入りました。 関数はほとんど分からないもので、出来ればわかりやすく教えてください。

専門家に質問してみよう