Excel VBA 質問スレッド №2115 (解決済)

グループ数割り出し

投稿者 : まるがめ     投稿日時 : 2025/05/16(Fri) 00:24:43     OS : 未指定     EXCEL : 未指定
リスト表:https://ibb.co/s9KvrMHL

予約者リストとスタッフリストがあります。
それぞれのリストの出勤状況からグループ数を割り出したいです。

予約者リストは3人で1グループ。
ただし、Oさん、Pさん、Qさんの3人は0.5グループとしてカウント。
0.5グループ対象の人はC23~E23で設定。
D列の休みや、E列の出勤時刻が空欄の場合はカウントなし。

スタッフリストはL列に時刻入力あった場合、出勤とみなし、2人で1グループ。

割り出した結果を、A25の日付と一致した場合、C25に表示する。

以上のようなことをしたいのですが可能でしょうか?
わかりづらくすいませんが、マクロ案を教えていただきたいです。
やりたいことは両方のリストの出勤状況で、何グループあるか割り出したいです。
別の考え方や、指摘あればぜひいただきたいです。
よろしくお願いします。

スポンサーリンク
[返信 1] Re : グループ数割り出し
投稿者 : さんこう     投稿日時 : 2025/05/16(Fri) 08:24:29
>わかりづらく

Pさんとかが休みで「0.5グループ」ができないときにどうなるのかわからないので、てきとうです。

参考になれば。


Sub わからないのでてきとう()
    n = Int(WorksheetFunction.CountIfs(Range("D4:D21"), "=", Range("E4:E21"), "<>") / 3)
    
    m = 0
    For Each r In Range("C23:E23")
        If WorksheetFunction.CountIf(Range("C4:C21"), r.Value) Then m = m + 1
    Next
    If m = 3 Then n = n - 0.5
    
    s = Int(WorksheetFunction.CountIf(Range("L4:L21"), "<>") / 2)
    
    Range("C25") = "予約グループ" & n & "-スタッフグループ" & s
    
End Sub

[返信 2] Re : グループ数割り出し
投稿者 : さんこう     投稿日時 : 2025/06/11(Wed) 16:36:35
さんこうでした。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-07-04 13:54:45 )
タイトルとURLをコピーしました