Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13113 / 13646 ツリー ←次へ | 前へ→

【6832】シートの比較 超初心者です。 03/8/5(火) 22:27 質問
【6836】Re:シートの比較 Jaka 03/8/6(水) 10:45 回答
【6838】Re:シートの比較 Jaka 03/8/6(水) 16:45 回答
【6842】Re:シートの比較 超初心者です。 03/8/6(水) 17:49 発言
【6865】Re:シートの比較 Jaka 03/8/8(金) 12:34 発言
【6884】Re:シートの比較 超初心者です。 03/8/8(金) 15:10 発言
【6899】Re:シートの比較 カド 03/8/9(土) 8:21 回答
【6910】Re:シートの比較 超初心者です。 03/8/11(月) 2:19 発言
【6966】Re:シートの比較 カド 03/8/17(日) 21:23 発言

【6832】シートの比較
質問  超初心者です。  - 03/8/5(火) 22:27 -

引用なし
パスワード
   はじめまして。ちーこといいます。
もしよろしければ、教えていただきたいのですが。

以下の様にシート1、シート2、シート3が埋められていたとします。
シート1
日付 予定
8/1  ○
8/2  ×
8/3  ○
.
.
.

シート2
日付 予定
8/1  ×
8/2  ×
8/3  ○
.
.
.

シート3
日付 予定
8/1  ○
8/2  ○
8/3  ○
.
.
.


で、左が日付で右が予定とします。
また、シート4が存在し、シート4には日付のみ記入されているとします。

まず、シート1とシート2を比較し、そのあと、シート1とシート3を比較します。
シート1とシート2ともに予定が○のとき、シート4の該当する日付に”シート2”と記入されていき、つぎにシート1とシート3を比較したときも同様にシート4に(シート2に記入されている列とは違う列に)記入されていきます。

こんなに複雑なプログラムは、やはり難しいのでしょうか?
エクセルとかでもっと地道にやった方がいいのでしょうか?

【6836】Re:シートの比較
回答  Jaka  - 03/8/6(水) 10:45 -

引用なし
パスワード
   こんにちは。
ただの関数ですが...。
シート4のレイアウトがこんな感じだとして、B2に1の関数を、C2に2の関数を入れ必要なところまで、フィルドラッグ。

シート4
  A   B   C
1 日付 予定 予定
2 8/1
3 8/2
4 8/3
5  ・
6  ・


=IF(AND(VLOOKUP(A2,Sheet1!A2:B4,2,TRUE)=VLOOKUP(A2,Sheet2!A2:B4,2,TRUE),VLOOKUP(A2,Sheet1!A2:B4,2,TRUE)="○"),"シート2","")


=IF(AND(VLOOKUP(A2,Sheet1!A2:B4,2,TRUE)=VLOOKUP(A2,Sheet3!A2:B4,2,TRUE),VLOOKUP(A2,Sheet1!A2:B4,2,TRUE)="○"),"シート3","")


>こんなに複雑なプログラムは、やはり難しいのでしょうか?
漠然とした内容だと難しいと言うより全く作れません。

【6838】Re:シートの比較
回答  Jaka  - 03/8/6(水) 16:45 -

引用なし
パスワード
   すみません。
絶対参照にするの忘れてました。

B2
=IF(AND(VLOOKUP(A2,Sheet1!$A$2:$B$4,2,TRUE)=VLOOKUP(A2,Sheet2!$A$2:$B$4,2,TRUE),VLOOKUP(A2,Sheet1!$A$2:$B$4,2,TRUE)="○"),"シート2","")

C2
=IF(AND(VLOOKUP(A2,Sheet1!$A$2:$B$4,2,TRUE)=VLOOKUP(A2,Sheet3!$A$2:$B$4,2,TRUE),VLOOKUP(A2,Sheet1!$A$2:$B$4,2,TRUE)="○"),"シート3","")

【6842】Re:シートの比較
発言  超初心者です。  - 03/8/6(水) 17:49 -

引用なし
パスワード
   返信ありがとうございます。

ぶっちゃけていっちゃいますと、
バイトのシフト表を自動で作成するというプログラムを考えています。
バイト予定日があって、そこにバイトAとバイトBとバイトC・・・が入ります。
で、バイトABCそれぞれに予定があります。それを考慮にいれながら、バイトのシフト表を埋めていく、という作業を自動化しようと思っているのですが。

【6865】Re:シートの比較
発言  Jaka  - 03/8/8(金) 12:34 -

引用なし
パスワード
   ▼超初心者です。 さん:
>ぶっちゃけていっちゃいますと、
>バイトのシフト表を自動で作成するというプログラムを考えています。
>バイト予定日があって、そこにバイトAとバイトBとバイトC・・・が入ります。
>で、バイトABCそれぞれに予定があります。それを考慮にいれながら、バイトのシフト表を埋めていく、という作業を自動化しようと思っているのですが。

ぶっちゃけた話、プログラム作った事がない人がシフトの法則、決まりの流れのアルゴリズムと言うかロジックと言うかを考えるのは難しいと思います。
ロジックなんて結局は、地道に手作業でやっている法則の流れを考えて。あーでもない、こうした方が良いかもなんてのも、途中から加わってきたりすると思いますから、やっぱし難しいと思います。
私なんか面倒くさいプログラム考えるの嫌いな人間ですから、プログラム作成に試行錯誤するより手作業でやっちゃう事の方が多いです。単純な作業で数がやたら多い時は別にして....。

【6884】Re:シートの比較
発言  超初心者です。  - 03/8/8(金) 15:10 -

引用なし
パスワード
   確かにjakaさんのおっしゃる通りだと思います。
しかし、明らかにプログラムを組んだ方が今後の事を考えれば早いと思いませんか。
今後、自分じゃないにしろ、手作業で時間を忙殺される人間があとを絶ちません。
その作業量を少なくしてやれれば、人的コストもそうですが、時間的コスト、金銭的コストの面でコストが削減できます。
確かにプログラムを組むのは容易でないにしろ、きっと組めれば、楽になるでしょう。
、、、という思いがあって作ろうと思ったのです。

で、既にシステムは考えたのです。
フローチャートは組んで、あとはプログラムするだけなんです。
ただ、相当複雑になると思いますが。。。
一応、ログに残しておきます。だれかの役に立つのかもしれませんから。

【ある個別塾のバイトのシフト表作成プログラム−フローチャート】
■設定■
生徒一人、一教科に対して一人の講師が付きます。
一人の講師は2人の生徒を同時に見ます。
あらかじめ、生徒と講師それぞれ予定を組む優先順位をつけておきます。

■フロー■
1.講師・生徒の予定を入力

2.講師と生徒の組み合わせを入力

3.入力された生徒との組み合わせにより、優先順位が高い講師から、
  優先順位の高い生徒と予定をマッチングさせる。

4.出力

5.2から4を繰り返す

という感じです。
はっきり言って難しいですね^^;

どうもありがとうございました。
ちょっと色々もっと簡略化、というか、作業が少し楽になるようなものを考えてみます。

【6899】Re:シートの比較
回答  カド  - 03/8/9(土) 8:21 -

引用なし
パスワード
   はっきりいってちょー簡単です。

1.シート1とシート2を比較
2.シート1とシート2ともに予定が○のとき
3.シート4の該当する日付に”シート2”と記入

をプログラムするだけです。

具体的に何がわからないか、おっしゃっていただければ
さらに回答できますが。。。

【6910】Re:シートの比較
発言  超初心者です。  - 03/8/11(月) 2:19 -

引用なし
パスワード
   ▼カド さん:
>はっきりいってちょー簡単です。
>
>1.シート1とシート2を比較
>2.シート1とシート2ともに予定が○のとき
>3.シート4の該当する日付に”シート2”と記入
>
>をプログラムするだけです。
>
>具体的に何がわからないか、おっしゃっていただければ
>さらに回答できますが。。。

回答ありがとうございます。
以上のプログラムはできるのですが、レスを見ていただければわかるように、実際にプログラムしていくものは、大変手間のかかる作業だと考えられます。
例えば、シート2のほかに、シート1と参照するものとしてシート3もあるときを考えます。
そのときに、例えば、シート1と記入があるときは、シート2は入らない。という条件がつきます。確かにこれは、if関数を使えばクリアできますよね。しかし、シート1と比較する対象が増えれば増えるほど作業が大変になってきます。
前のレスでも書いたように、一人の予定(xとします)に対して、例えば10人の予定を対象に検索していきます。そして、xに対して1日に2人までしか同時に予定をあわせてはいけないという条件がついたり。10人それぞれ、例えば1ヶ月当りに入れたい予定の数が違っていたりとか。状況が相当に複雑になっています。

答えていただいて本当にうれしいのですが、このプログラムを作っていくのはきっと難しいんだろうな、というのが私の実感です。

【6966】Re:シートの比較
発言  カド  - 03/8/17(日) 21:23 -

引用なし
パスワード
   ▼超初心者です。 さん:

>以上のプログラムはできるのですが、
プログラムが出来るのであれば、特に私から申し上げることは有りません。

#レスがあったらメールがくるように設定していたつもりですが、メールが来なかったので返事遅くなり申し訳ありません。

13113 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free