エクセル関数で自動発注



 ◇-?エクセル関数で自動発注-madonna-07/26-23:07(1607)-No.509764
   ┗?!Re:エクセル関数で自動発注...-ZONE-07/27-07:56(1598)-No.509767
     ┗?!-Re:エクセル関数で自動発注...-madonna-07/27-23:29(1583)-No.509772
       ┗?!-!Re:エクセル関数で自動発注...-ZONE-07/28-07:54(1574)-No.509774
         ┗?!-!-Re:エクセル関数で自動発注...-madonna-07/28-22:07(1560)-No.509776
           ┗?!-!-!Re:エクセル関数で自動発注...-ZONE-07/29-00:08(1558)-No.509777
             ┗?!-!-!【解決】Re:エクセル関数で...-madonna-07/29-01:40(1557)-No.509778
               ┗?!-!-!K!Re:エクセル関数で自動発...-ZONE-07/29-08:33(1550)-No.509779
                 ┗?!-!-!K!-Re:エクセル関数で自動発...-madonna-07/29-10:12(1548)-No.509780
                   ┗?!-!-!K!-!Re:エクセル関数で自動...-ZONE-07/29-10:38(1548)-No.509781
                     ┗?!-!-!K!-!【解決】Re:エクセル関...-madonna-07/29-21:20(1537)-No.509784

▲このページのトップに戻る
509764エクセル関数で自動発注madonna 2012/07/26-23:07

メーカー名:SONY ソニー
OS名:WindowsXp HomeEdition
パソコン名:VGN-FS33B
ソフト関連:表計算Excel
使用回線:光
--
在庫数を入力すると発注点の数量以上の場合は空白で以下の場合は
発注数単位で当日発注数が自動で表示されるようにしたい。
そしてリードタイムを考慮して自動で納期日付が表示される様にしたい。

例えば、7/26に在庫数に2400と入力すると発注点が3000なので、当日発注を
かけなければならない。
その時、発注数の単位が600なので当日発注のところに600と表示される様に
し、納期のところもリードタイムの4日を考慮し土日を除いた稼働日から算出
されるように自動表示したい。


発注日 7/26

整番コード LT  在庫数  発注点  発注数単位 当日発注 納期
HD011 4   2400   3000 600

詳しい方、宜しくお願いします。

▲このページのトップに戻る
509767Re:エクセル関数で自動発注ZONE 2012/07/27-07:56

記事番号509764へのコメント
madonnaさんは No.509764「エクセル関数で自動発注」で書きました。

在庫数が発注点未満時の当日発注数計算式。
 当日発注=(((発注点−在庫数−1)÷発注数単位)少数以下切り捨て+1)×発注数単位

納期計算は↓を参照。
・3分でわかる!仕事に役立つExcelテクニック - “土日を除いた5営業日後”の日付を自動で表示する【WORKDAY...:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20080118/291424/

上手くできない場合は、それぞれのセルの式を書き出してください。

追記
madonna = マドンナ(↓のスレッド)ですね。
http://pasokoma.jp/50/lg509571
・初めての方へ パソコン困りごと相談
http://pasokoma.jp/hajimete
名前の変更は禁止されています。

▲このページのトップに戻る
509772Re:エクセル関数で自動発注madonna 2012/07/27-23:29

記事番号509767へのコメント
ZONEさんは No.509767「Re:エクセル関数で自動発注」で書きました。

ZONEさんありがとうございます。

早速、やってみましたが上手くいきません。
そこで、わたしが途中までやってみた計算式を書いてみます。

 D5に製品名 F5にリードタイム Q5に在庫数 T5に発注点 U5に発注数(単位)
 そして在庫数を入力すると自動で表示されるようにV5に当日発注 W5に納期
 を表示させたい。
 
 V5=IF($Q5="","",IF($T5-$Q5<=$U5,"",IF($T5-$Q5>=$U5,$U5,
   IF($T5-$Q5<=$U5*2,$U5*2))))

ですが、最後のIFの式が間違っているのではないかと思うのですが。
こんな説明で分かりますか?
宜しくお願いします。

▲このページのトップに戻る
509774Re:エクセル関数で自動発注ZONE 2012/07/28-07:54

記事番号509772へのコメント
madonnaさんは No.509772「Re:エクセル関数で自動発注」で書きました。

発注点:3000
発注数単位:600
※発注単位:1〜5
当日発注:
・在庫数が  0〜 599 時、3000 (発注数単位×発注単位(5))
・在庫数が 600〜1199 時、2400 (発注数単位×発注単位(4))
・在庫数が 1200〜1799 時、1800 (発注数単位×発注単位(3))
・在庫数が 1800〜2399 時、1200 (発注数単位×発注単位(2))
・在庫数が 2400〜2999 時、 600 (発注数単位×発注単位(1))
という結果を得たいんですよね?
であれば私が示した計算式で得られますが、何か問題があるのでしょうか?
#発注単位を求めて、それに発注数単位を掛け合わせるだけです。
#少数以下切り捨ては、ROUNDDOWN関数を使います。

> V5=IF($Q5="","",IF($T5-$Q5<=$U5,"",IF($T5-$Q5>=$U5,$U5,
>   IF($T5-$Q5<=$U5*2,$U5*2))))
>ですが、最後のIFの式が間違っているのではないかと思うのですが。

↑を実現したいのなら、完全に的外れな計算式です。
「IF($T5-$Q5<=$U5,"",」の式で偽と判定された場合「IF($T5-$Q5>=$U5,$U5,」の式が
常に実行されるので「IF($T5-$Q5<=$U5*2,$U5*2」が実行されることは絶対ありません。

納期の算出は示した参考サイトで解説されている「WORKDAY」関数で簡単に得られます。
祝日判定が不要なら省略できます。
ex) WORKDAY(発注日,リードタイム)

▲このページのトップに戻る
509776Re:エクセル関数で自動発注madonna 2012/07/28-22:07

記事番号509774へのコメント
ZONEさんは No.509774「Re:エクセル関数で自動発注」で書きました。


ZONEさんありがとうございます。
初歩的なミスで発注単位をIF関数で求めてから
計算しますと、発注数が分かりました。
ありがとうございました。

▲このページのトップに戻る
509777Re:エクセル関数で自動発注ZONE 2012/07/29-00:08

記事番号509776へのコメント
madonnaさんは No.509776「Re:エクセル関数で自動発注」で書きました。

>初歩的なミスで発注単位をIF関数で求めてから
>計算しますと、発注数が分かりました。

在庫数が発注点未満時の当日発注数計算式。
 当日発注=(((発注点−在庫数−1)÷発注数単位)少数以下切り捨て+1)×発注数単位

エラー処理を除き、発注点切れ判定以外にIF関数は使用しませんが、どのような計算式に
されたのでしょうか?
私の示した計算式で疑問を投げかけられるとしたら、「-1」「+1」の部分かなと予想して
いたのですが。
私の計算式が完全に理解できて、それをIF関数で実現できたのなら凄いことです。

▲このページのトップに戻る
509778Re:エクセル関数で自動発注madonna 2012/07/29-01:40

記事番号509777へのコメント
ZONEさんは No.509777「Re:エクセル関数で自動発注」で書きました。

ZONEさんお世話になっております。
=IF($Q5="","",IF($Q5>=$T5,"",ROUNDDOWN(((($T5-$Q5-1)/$U5)+1*$U5),0)))
でいけました。
ありがとうございます。

かなり苦戦してしまいました。
下記のやり方でもやってみましたが、ZONEさんの教えてくださった
やり方の方が簡単でした。
感謝しております。


V列に発注単位を

V5=IF(Q5<=U5-1,5,IF(Q5<=U5*2-1,4,IF(Q5<=U5*3-1,3,IF(Q5<=U5*4-1,2,
IF(Q5<U5,1,"")))))

W列に当日発注を

W5=IF(V5="","",U5*V5)

X列に納期を入れましたが
AC1に本日の日付とF5にリードタイムが入力されています。

X5=IF(W5="","",WORKDAY($AC$1,$F5))


▲このページのトップに戻る
509779Re:エクセル関数で自動発注ZONE 2012/07/29-08:33

記事番号509778へのコメント
madonnaさんは No.509778「Re:エクセル関数で自動発注」で書きました。

>=IF($Q5="","",IF($Q5>=$T5,"",ROUNDDOWN(((($T5-$Q5-1)/$U5)+1*$U5),0)))

ROUNDDOWNの切り捨て位置を示す「,0」の記述場所が間違っています。
それと括弧の閉じる位置も違っています。
#四則演算子と括弧の優先順位を思い出してください。
また、在庫数のセルが空白であるか判断するのではなく、数字以外のものが入力
されていないか判断するようにしてください。
エラーチェックは以下を行うこと。(セルの書式設定で省略できるものも含む)
・在庫数に数字以外が入力されている場合はエラー。
・在庫数がマイナスのときはエラー。(実在庫に0未満は無いが、計算在庫ではあり得る)
・発注点に数字以外が入力されている場合はエラー。
・発注数単位に数字以外が入力されている場合はエラー。
・発注数単位が0以下の場合はエラー。(除算の分母として使用するため)
以上を踏まえた式。
V5=IF(NOT(ISNUMBER($Q5)),"在庫数数値外",IF($Q5<0,"在庫数マイナス",IF(NOT(ISNUMBER($T5)),"発注点数値外",IF(NOT(ISNUMBER($U5)),"発注数単位数値外",IF($U5<=0,"発注数単位未入力",IF($Q5>=$T5,"在庫あり",(ROUNDDOWN(($T5-$Q5-1)/$U5,0)+1)*$U5))))))

納期は、発注日のセル($AC$1)の書式を「日付」に設定したうえで下記式に。
W5=IF(NOT(ISNUMBER($V5)),"当日発注無し",IF(NOT(ISNUMBER($AC$1)),"発注日数値外",IF(ISERROR(WORKDAY($AC$1,$F5)),"発注日日付外",WORKDAY($AC$1,$F5))))
但し、発注日に0や1が入力された場合は通過してしまいますので、必要に応じて厳密な
チェックを行うように手を加えてください。
#厳密なチェックを行うにはマクロを使用することになります。

▲このページのトップに戻る
509780Re:エクセル関数で自動発注madonna 2012/07/29-10:12

記事番号509779へのコメント
ZONEさんは No.509779「Re:エクセル関数で自動発注」で書きました。

ZONEさんありがとうございます。
教えていただいた計算式を入れてみましたが
結果がFALSEになり、困っています。

V5=IF(NOT(ISNUMBER($Q5)),IF($Q5<0,IF(NOT(ISNUMBER($T5)),IF(NOT(ISNUMBER($U5)),
IF($U5<=0,IF($Q5>=$T5,(ROUNDDOWN(($T5-$Q5-1)/$U5,0)+1)*$U5))))))

どこが合ってないか分からなくなってしまいました。

▲このページのトップに戻る
509781Re:エクセル関数で自動発注ZONE 2012/07/29-10:38

記事番号509780へのコメント
madonnaさんは No.509780「Re:エクセル関数で自動発注」で書きました。

もう気づかれていると思いますが、IF関数の真のときのダブルコーテイションで
囲った部分が全て削除されているのが原因です。
リテラルだけを削除しましょう。
ex) 「"在庫数数値外"」→「""」

▲このページのトップに戻る
509784Re:エクセル関数で自動発注madonna 2012/07/29-21:20

記事番号509781へのコメント
ZONEさんは No.509781「Re:エクセル関数で自動発注」で書きました。

ZONEさん完全解決しました。
下記の式で完璧です。

当日発注
=IF(NOT(ISNUMBER($Q5)),"",IF($Q5<0,"",IF(NOT(ISNUMBER($T5)),"",
IF(NOT(ISNUMBER($U5)),"",IF($U5<=0,"",IF($Q5>=$T5,"",(ROUNDDOWN
(($T5-$Q5-1)/$U5,0)+1)*$U5))))))

納期も
=IF(NOT(ISNUMBER($W5)),"",IF(NOT(ISNUMBER($AC$1)),"",IF(ISERROR
(WORKDAY($AC$1,$F5)),"",WORKDAY($AC$1,$F5))))

上記で間違いありません。

最後まで丁寧に教えてくださり、お世話になりました。
また、宜しくお願いします。

A1.本ページは参考になりましたか? 又はアドバイスがありますか?
解決 参考になった 参考にならなかった アドバイスする

A2.何度目の訪問ですか?
初めて来た   数度目(2〜4) 5回以上来ている   管理人:

A3.何か一言どうぞ(アドレスは書くことができません)

A4.アドレスがあればどうぞ(1つまで)


↑↑↑↑よろしければ押してください↑↑↑↑

何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり

参考回数投稿日時何か一言