• 締切済み

カレンダー計算 エクセルで出来る?それともアクセスで?

外注先に一部作業を外注している製造業です。エクセルで算出できるのか、それともアクセスでやるものなのかお知恵を拝借できれば幸いです。 答え 当社から外注先A社へ発送した日[当社発送日]から 加算して[当社到着日]を求める 条件 [当社発送日]+1日(輸送日数)=[A社到着日]  [A社到着日]+[A社作業日]1日+1日(輸送日数)=[当社到着日] 各工程はが「休業日」ならば翌稼動日に実施される。 A社到着日がA社荷受部門カレンダーの休日にあたれば翌稼働日 となります 荷受されたものはA社作業部門カレンダーの稼働日で1日作業と なります 必ずしも土日が休業日ではありませんので、それぞれのカレンダーを 組み合わせて当社への到着日を求めなくてはなりません エクセルで当社発送日の横へ(手計算で)返却日を併記していけば良い のですが、1年分のカレンダーをにらめっこするのはどうも・・・ (=1 休日) 発送日 当社休 荷受休 作業休 3/1___________________________ 3/2___________________________ 3/3___________________________ 3/4___________________________1 3/5_________1_______1_________ 3/6___________________________ 3/7___________________________1 3/8___________________________ 3/9___________________________ 例えば、1日に発送したものは2日に荷受され3日に作業を行い4日にA社発送、5日に当社へ到着するのですが、5日は当社休なので実際には6日と いう解を得なくてはなりません。 4日発送だと5日の荷受休をはさんで6日荷受となり、7日は作業休なので 8日作業の9日A社発送で10日当社着となります 簡単にエクセルで、作成しておいてテーブルにインポートして・・・と 考えていたのですがなかなか解決しません。 エクセルで出来るのか、それともアクセスならできるのか、アドバイス 頂ければ助かります

みんなの回答

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

A_______B______C_______D______E_______F______G 発送日 荷受休 荷受着 作業休 作業日 当社休 到着日 として 荷受着 C2=A2+1+VLOOKUP(A2+1,$A2:$F100,2,TRUE) 作業日 E2=C2+1+VLOOKUP(C2+1,$A2:$F100,4,TRUE) 到着日 G2=E2+2+VLOOKUP(E2+2,$A2:$F100,6,TRUE)

yandenman
質問者

お礼

No.2の方の方式と比べて簡単ではありましたが、連休処理等で 少し正解が出ないケースがありました。参考にさせていただき、 改良してみたいと思います。ありがとうございました。

noname#262398
noname#262398
回答No.2

A列    B列  C列   D列   E列   F列   G列    H列   I列 発送日 返却日 当社休 荷受休 作業休 荷受(送り) 作業 荷受(戻り) 到着 作業列を作り、A・C~E列は入力済みで、A2が3/1だとして、 F2=IF($C2=1,"",MIN(IF(OFFSET(D2,1,,20)="",ROW($A$1:$A$20)))) G2=IF($C2=1,"",MIN(IF(OFFSET(E2,F2+1,,20)="",ROW($A$1:$A$20)))) H2=IF($C2=1,"",MIN(IF(OFFSET(D2,SUM(F2:G2,1),,20)="",ROW($A$1:$A$20)))) I2=IF($C2=1,"",MIN(IF(OFFSET(C2,SUM(F2:H2,1),,20)="",ROW($A$1:$A$20)))) 以上、配列数式 Ctrl + Shift + Enter B2=IF(C2=1,"",SUM(A2,F2:I2)) 20連休はさすがに無いだろうと勝手に想像しました。 OFFSETよりINDEXの方がいいのかな? アヤしいので精査して下さい。

yandenman
質問者

お礼

offset関数を利用して算出するとは想像もしませんでした。 いくつかサンプリングしながら正しく算出できているか確認して いますが問題なさそうです。例示くださった式を参考にして 運用してみます。実はもうひとつ先の工程にも外注先があるの でそちらにも計算式を用いてみようと思いますので、また別スレ にてお願いするやもしれません。ありがとうございました。 ちなみに、20連休する外注先だったら解約します!

noname#22222
noname#22222
回答No.1

結論:Excel、Access のどちらでもOKと思います。カレンダーを容易く生成できる点ではExcel が楽でしょうか? 検証: 外注先稼動日程表 自社稼動日程表 運送業者稼動日程表 と3つのテーブル(シート)が必要。 1、発送日を起点に[運送業者稼動日程表]より最初の稼働日を求める。->A日 2、A日を起点に[運送業者稼動日程表]より次の稼働日を求める。->B日 3、B日の翌日を起点に[外注先稼動日程表]より最初の稼働日を求める->C日 4、C日の翌日を起点に[運送業者稼動日程表]より最初の稼働日を求める。->D日 5、D日の翌日を起点に[自社稼動日程表]の最初の稼働日を求める。->E日 これで発送日と到着日が判ります。(ルーチンは、かなり怪しいので精査して下さい。) まあ、このようなコードをほとんでVBAで記述するとすれば、Access と Excel とかは関係ないのでは?と、私は、思います。 また、Excel に堪能であれば、A日、B日、C日、D日、E日を表示するセルを用意して Excel関数で求めることも可能ではと推察します。

yandenman
質問者

お礼

すばやいお答えありがとうございました。 Excelに堪能・・・ではありませんが、後々のメンテナンスのことを 考えてエクセルにて作成することにします。 ありがとうございました。

関連するQ&A