ここから本文です

エクセルでの倉庫保管料の計算についてご教示下さい。

wak********さん

2014/3/516:53:48

エクセルでの倉庫保管料の計算についてご教示下さい。

例えば
入庫(仕入) 13年10月31日
出庫(売上) 13年11月21日 とします。

保管料は
1~15日 - 15円/1個
16~末日 - 15円/1個 かかります。

E31は
=IF(A31="","",SUM(IF(OR(AND(DAY($A$29)<=15,DAY(A31)<=15),AND(DAY($A$29)>=16,DAY(A31)>=16)),15,30),30*DATEDIF($A$29,A31,"M")))
という関数を入力しE37までコピーしています。

E33の演算結果は
10月31日 - 15円
11月1~15日 - 15円
11月16~21日 - 15円 となり、「45」になるはずなのですが、何故か「15」となってしまいます。

上記の関数では計算できないのでしょうか。
どなたかアドバイスをお願い致します。

補足回答・解説ありがとうございます。
回答頂きました関数で正しく演算されました。
しかし、入庫・出庫日が10月31日で同一の場合、「45」と演算されました。正しくは「15」になるはずなのですが、何故でしょうか・・・。

閲覧数:
1,496
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

set********さん

編集あり2014/3/521:26:07

E31に=IF(A31="","",SUM(IF(DAY($A$29)>15,15,30),IF(DAY(A31)<=15,15,30),IF(DATE(YEAR($A$29),MONTH($A$29)+1,1)>=DATE(YEAR(A31),MONTH(A31),1),0,DATEDIF(DATE(YEAR($A$29),MONTH($A$29)+1,1),DATE(YEAR(A31),MONTH(A31),1),"M")*30)))の式を入力するか、このままコピーして(貼り付け先の書式に合わせるで)貼り付けてみて下さい。

この式を分解して解説すると、
①IF(DAY($A$29)>15,15,30)・・
$A$29の日付が15日超の場合は15円、15日以下の場合は30円
②IF(DAY(A31)<=15,15,30)・・
A31の日付が15日以下の場合は15円、15日超の場合は30円
③IF(DATE(YEAR($A$29),MONTH($A$29)+1,1)>=DATE(YEAR(A31),MONTH(A31),1),0,DATEDIF(DATE(YEAR($A$29),MONTH($A$29)+1,1),DATE(YEAR(A31),MONTH(A31),1),"M")*30))・・
$A$29の翌月1日の日付がA31の月初の1日より大きいか同じ場合は0円、小さい場合は$A$29の翌月1日の日付とA31の月初の1日の間の月数に30円を掛ける
④以上、①と②と③をSUMする
ということになります。

追加
なお、貴殿の式では、DATEDIF($A$29,A31,"M")の部分で、10月31日から11月21日までは1ヶ月未満のため+30円されないことになります。
同じく10月31日から12月21日までは1ヶ月しかありませんので、やはり30円少なく計算されてしまいます。

先ず$A$29の日付からその月の末日まででいくらになるか、次にA31の月初の1日からA31の日付まででいくらになるか、そして$A$29の翌月1日からA31の月初の1日まで何ヶ月あっていくらになるか、と3つに区切って考えたほうが分かり易いと思います。

質問した人からのコメント

2014/3/6 08:48:54

降参 補足後、自分なりに色々とやってみたのですが改善されず・・・。
画像をつけて新たに質問を立てますのでよろしくお願いします(T_T)

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる