プロが教えるわが家の防犯対策術!

Excel詳しい方、わかる方どうか教えて下さいm(__)m

作業者名 班
あ A
い A
う A
か B
き B
さ C
し C
お A

A班 作業者名→自動で区別され表示される

B班 作業者名

C班 作業者名

作業者名と3つの班のデータを貼り付けるだけで、他の表に自動で判別されるようにしたいのですが、、

フィルターオプション等は複数のデータがあれば出来ることだと思うのですが、作業者名と班のデータしかないため、困っていますm(__)m

複雑な関数もわからないので、どうかお助け下さいませm(__)m

「至急! Excel データ貼り付けだけで」の質問画像

質問者からの補足コメント

  • 各班の人数、作業者の入れ替え等の変動もありますので、それにも対応できるものをお願いいたしますm(__)m

      補足日時:2015/12/05 21:27

A 回答 (1件)

関数だとめんどくさいので、マクロで



レイアウトは私の添付図通りとします。

すなわち
A1:作業者名、B1:班
A2~9:作業内容
B2~9:班
A13、B13:空セル
A14~A24:作業内容の転写先
B14~B24:班を転写し転写先
D1:A班
D2~J8:A班のテーブル内容
以下、1行スペースをあけて、A班と同サイズの表のB班、C班とする

転写先のセル内容に何か変化があると転写イベント発生。


シート上でAlt+F11を押し、Visual Basic Editorに以下の内容を転写
して完成

Private Sub Worksheet_Change(ByVal Target As Range)

'A14:B24に何か変化があれば実行される
If Target.Row > 13 And _
Target.Row < 25 And _
Target.Column < 3 Then

Dim i, j, k, a, b, c As Integer

'表の作業者の初期化
For i = 1 To 3
For j = 1 To 5
Cells(9 * i - 7, j + 5) = ""
Next
Next

'A14:B24に記載された作業者を表に振り分ける
If Cells(11, 1) <> "" Then

a = 6
b = 6
c = 6
For k = 14 To 24
Select Case Cells(k, 2)
Case "A"
Cells(2, a) = Cells(k, 1)
a = a + 1
Case "B"
Cells(11, b) = Cells(k, 1)
b = b + 1
Case "C"
Cells(20, c) = Cells(k, 1)
c = c + 1
End Select
Next
End If

End If
End Sub
「至急! Excel データ貼り付けだけで」の回答画像1
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!