Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : 指定なし)
ローテーション表について
投稿日時: 17/12/04 02:19:31
投稿者: まさ77

こんばんは
 
お世話になっております。
以前ローテーション表についてご教授頂いて
運用しているのですが
仕様が増え別バージョンを作成することとなりました。
以前ご教授頂いた物を自分なりに変更してみましたが
どうもうまく行きません。
どこがおかしいかご教授頂きたく。
 
以前は数班、8名を2名毎に任意の日で入れ替えるという物でしたが
今回は班は3班3名と2班1名か2名とバラバラ、人数も1名と2名とバラバラであやふやです。
不明確な事が多いですがほ教示頂きたく。
 
まずは以前お教え頂いた物です。
結合等無く左からA列、行も同じくです。
氏名の横数字は日付です。
○を入力すると切り替わる仕様になっています。

	4	5月	○	
	班名	氏名	1	2
1+1i	A	あ	1	4
1+2i		い	1	1
1+3i		う	2	1
1+4i		え	2	2
1+5i		お	3	2
1+6i		か	3	3
1+7i		き	4	3
1+8i		く	4	4
2+1i	B	け	5	8
2+2i		こ	5	5
2+3i		さ	6	5
2+4i		し	6	6
2+5i		す	7	6
2+6i		せ	7	7
2+7i		そ	8	7
2+8i		た	8	8

 
A3(1+1i)に入っている関数が
=IF(OR(B3<>"",AND(C2<>"",C3="")),IMREAL(A2)+1&"+1i",IMREAL(A2)&"+"&IMAGINARY(A2)+1&"i")
 
D5から下に入っている関すが
=IF(C5="","",IF(B5="",D3,D4)+1)
その他関数が(例としてE4)
=IF($C3="","",IF(E$1="○",INDEX($D:$D,MATCH(MOD(IMREAL($A3)-COUNTIF($C$1:E$1,"○"),$B$1)+1&"+"&IMAGINARY($A3)&"i",$A:$A,0)),IF($B3="",D2,INDEX(D:D,MATCH(IMREAL($A3)+1&"+*",$A:$A,0)-1))))
 
D5に入っている関数のD3,D4を減らすだけで数字の切り替わりが変化すると思い
してみましたが
 
 
 
	3	5月	○				
	班名	氏名	1	2	3	4	5
1+1i	A	あ	1	3	2	1	3
1+2i		い	2	1	3	2	1
1+3i		う	3	2	1	3	2
2+1i	B	え	1	3	2	1	3
2+2i		お	2	1	3	2	1
2+3i		か	3	2	1	3	2
3+1i	C	き	1	3	2	4	3
3+2i		く	2	4	3	5	4
3+3i		け	3	5	4	6	5

上記のように上手く切り替えできません。
 
やりたい事は
	3	5月	○			○
	班名	氏名	1	2	3	4
1+1i	A	あ	1	1	1	9
1+2i		い	2	2	2	1
1+3i		う	3	3	3	2
2+1i	B	え	4	4	4	3
2+2i		お	5	5	5	4
2+3i		か	6	6	6	5
3+1i	C	き	7	7	7	6
3+2i		く	8	8	8	7
3+3i		け	9	9	9	8

○の位置で1名スライドさせる
	3	5月	○			○
	班名	氏名	1	2	3	4
1+1i	A	あ	1	1	1	6
1+2i		い	2	2	2	7
1+3i		う	3	3	3	8
2+1i	B	え	4	4	4	1
2+2i		お	5	5	5	2
2+3i		か	6	6	6	3
3+1i	C	き	7	7	7	4
3+2i		く	8	8	8	5
3+3i		け	9	9	9	6

○の位置で班を変更すると言う事です。
3班3名を例に出しましが
2名2班等もあります。
以前お教え頂いた数式の修正だけでは対応しきれない案件なんでしょうか?
 
フォーム等問いませんので
お教えいただけないでしょうか
 

回答
投稿日時: 17/12/04 08:47:12
投稿者: んなっと

前回の2人組縛りとは異なるのですね。
それなら最初から具体的に内容を書いてください。
 
3名ずつ3班の場合
 
    A   B   C  D E F G  H I  J
 1      3 5月 ○      ○   ○
 2    班名 氏名  1 2 3 4  5 6  7
 3 1+1i   A  あ  1 3 2 1  7 9  4
 4 1+2i     い  2 1 3 2  8 7  5
 5 1+3i     う  3 2 1 3  9 8  6
 6 2+1i   B  え  4 6 5 4  1 3  7
 7 2+2i     お  5 4 6 5  2 1  8
 8 2+3i     か  6 5 4 6  3 2  9
 9 3+1i   C  き  7 9 8 7  4 6  1
10 3+2i     く  8 7 9 8  5 4  2
11 3+3i     け  9 8 7 9  6 5  3
12 4+1i                  
 
A3
=IF(OR(B3<>"",AND(C2<>"",C3="")),IMREAL(A2)+1&"+1i",IMREAL(A2)&"+"&IMAGINARY(A2)+1&"i")
下方向・↓ 少しだけ多めに
B1
=COUNTA(B3:B10000)
D4
=IF(C4="","",D3+1)
下方向・↓
E3
=IF($C3="","",IF(E$1="○",INDEX($D:$D,MATCH(MOD(IMREAL($A3)-COUNTIF($D$1:E$1,"○"),$B$1)+1&"+"&IMAGINARY($A3)&"i",$A:$A,0)),IF($B3="",D2,INDEX(D:D,MATCH(IMREAL($A3)+1&"+*",$A:$A,0)-1))))
右方向・→下方向・↓
 
 
3名,2名,2名のような異なる人数の3班に分けるのは、仕事の入れ替え(2個目の○)の際に矛盾が生まれるのはおわかりですね。
欠員の部分に(欠)を挿入するなどして、班の人数をそろえるようにしてださい。
仕事の数と人数の違いで実際に生じる不都合は、現場に対応させましょう。

トピックに返信