従業員データを参照し、別シートに年齢ごと性別に振り分け、
更に職種を各セルに抽出したいのですが、
検索をしてもなかなかヒットせず、みなさまにお力添えを頂ければと思い質問します。
成果物
下記のシートより「年齢」「職種」「性別」を参照し、
下記シートにそれぞれの条件ごとセルに「職種」を振り分けしたいです。
イメージは下記のとおりとなります。
各年齢性別ごとに最大21人の想定としています。
参考になるページだけでも構いませんので、
どうかご教授お願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
https://teratail.com/help/avoid-asking
https://teratail.com/help/question-tips
回答2件
0
ベストアンサー
シート名が「職員」と「振り分け」として
vba
1Public Sub sample() 2 Dim data 3 data = Worksheets("職員").Range("A1").CurrentRegion.Value 4 5 Dim tbl(19 To 64, -1 To 0) 6 Dim i As Long 7 For i = 2 To UBound(data) 8 Dim sex As Long: sex = (data(i, 4) = "男性") 9 tbl(data(i, 6), sex) = tbl(data(i, 6), sex) & "," & Left(data(i, 2), 1) 10 Next 11 12 With Worksheets("振り分け") 13 For i = 5 To 50 14 Dim ary, s As String 15 s = Mid(tbl(.Cells(i, "V"), -1), 2) 16 If s <> "" Then 17 ary = Split(StrReverse(s), ",") 18 .Cells(i, "U").Offset(, -UBound(ary)).Resize(, UBound(ary) + 1).Value = ary 19 End If 20 s = Mid(tbl(.Cells(i, "V"), 0), 2) 21 If s <> "" Then 22 ary = Split(s, ",") 23 .Cells(i, "W").Resize(, UBound(ary) + 1).Value = ary 24 End If 25 Next 26 End With 27End Sub
投稿2021/12/07 02:08
総合スコア34075
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
振り分け後の職種がまとまってなくていいのであればこんな感じでしょうか
VBA
1Sub test() 2 3 Dim i As Long, j As Long, k As Long 4 Dim rng As Range, tempRng As Range 5 6 j = 21 7 k = 23 8 9 For i = 19 To 64 10 11 Set rng = Range("F:F").Find(What:=i) 12 13 If Not rng Is Nothing Then 14 15 Set tempRng = rng 16 17 Do 18 If Cells(rng.Row, "D").Value = "男性" Then 19 20 Sheets("別シート").Cells(69 - i, j) = Left(Cells(rng.Row, "B").Value, 1) 21 j = j - 1 22 23 ElseIf Cells(rng.Row, "D").Value = "女性" Then 24 25 Sheets("別シート").Cells(69 - i, k) = Left(Cells(rng.Row, "B").Value, 1) 26 k = k + 1 27 28 End If 29 30 Set rng = Range("F:F").FindNext(rng) 31 32 If rng.Address = tempRng.Address Then 33 Exit Do 34 End If 35 Loop 36 End If 37 38 j = 21 39 k = 23 40 Next 41 42End Sub 43
投稿2021/12/07 01:16
総合スコア513
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。