AIで研修の受講進捗を整理する方法|完了条件・未着手・記録不足を分ける

架空6人の教材完了・得点・着手・記録取得を照合し、状態と残条件を整理。確認不能と未受講、全体と判定可能者の割合を分けます。

AIものさし編集部

AIで研修の受講進捗を整理するときは、教材を開いたこと、小テストを受けたこと、必要条件をすべて満たしたことを分けます。記録が取得できていない人を未受講へ入れると、誤った案内や、実態と違う完了率につながります。

この記事では、架空の受講者6人から、完了確認・進行中・未着手・確認不能の一覧を作ります。成果物は、状態の根拠と次の確認先が分かる進捗表です。実際の受講記録、AI分類、LMS設定、受講者への連絡は検証していません。

教材単体の完了と、研修全体の完了を分ける

Moodleの公式資料では、活動ごとの完了条件に閲覧、評点、合格点などがあり、条件は設定に依存します。また、コース全体では指定した条件をすべて満たすのか、一つでもよいのかを選べます。教材の完了表示が一つあるだけで、コース全体も完了とは限りません。Moodle:活動の完了条件(新しいタブで開く)、コースの完了条件(新しいタブで開く)

今回の架空研修は、教材A完了、教材B完了、小テスト80点以上の3条件をすべて満たしたら「完了確認」とします。80点は独自例の条件で、一般の研修やMoodleの共通基準ではありません。活動アイコンや受験回数による製品側の完了判定を、そのまま再現した例でもありません。

最初に、研修ID、教材版、対象者一覧、判定条件の版、集計時点を固定します。以下は同じ研修・同じ教材版について、2026年10月20日15時、日本時間で整理した設定です。

不完全な記録と、未実施の記録を区別する

表は横にスクロールできます

受講者教材A教材B小テスト着手記録判定用記録
L01完了完了85点あり取得済み
L02完了未完了90点あり取得済み
L03未完了未完了未受験なし取得済み
L04完了未取得80点ありBの記録未取得
L05完了未完了70点あり取得済み
L06完了完了80点あり取得済み

この表は独自の架空データです。L03の「未受験」は、記録を確認して受験がない状態です。L04の「未取得」は、教材Bを完了したか判断する材料がない状態です。空欄という見た目だけで同じ値へ変換しません。

また、未完了は未着手と同義ではありません。教材を途中まで進めても、完了条件に届かなければ未完了です。今回、未着手と判定するには、取得済み記録で着手がないことも確認します。完了欄がすべて未完了だから、という理由だけでは決めません。

状態ごとに、残っていることを示す

表は横にスクロールできます

受講者今回の状態根拠・次の確認
L01完了確認A・B完了、85点で条件を満たす
L02進行中90点でもBが未完了。Bの完了が残る
L03未着手記録取得済みで着手なし、未受験
L04確認不能Bの記録を先に確認。未完了と決めない
L05進行中B未完了と、80点以上の条件が残る
L06完了確認A・B完了、80点で境界を満たす

L02は小テストに合格する値ですが、研修全体の条件は満たしていません。L06は80点以上という条件なので、80点ちょうどを除外しません。L04は80点でも、Bの記録がないため全条件の成立を確認できません。

この分類は研修事務の記録整理であり、受講者の能力や勤務評価を決めるものではありません。完了条件を満たしたことと、実務で知識を使いこなせることも別です。学習成果を測るなら、目的に合った評価を別に設計します。

確認不能を除く場合は、分母を示す

今回の状態は、完了確認2人、進行中2人、未着手1人、確認不能1人で、合計6人です。全対象6人のうち完了を確認できたのは2人なので、2 ÷ 6で約33.3%です。確認不能の1人の実際の完了状態は、この割合から決まりません。

判定できる5人だけを分母にすれば2 ÷ 5=40%ですが、それは「判定可能な5人内」の値です。40%を対象者6人全体の完了率として報告しません。人数、分母、記録の不足を一緒に残します。

表は横にスクロールできます

報告項目今回の値
対象者6人
完了確認2人/対象6人、約33.3%
進行中2人
未着手1人
確認不能1人
判定可能者に限定した値完了確認2人/判定可能5人、40%

任意教材や対象外の研修を分母へ混ぜず、対象者が追加された場合は、同じ名簿の進捗が変わったことと名簿自体の変更を区別します。未完了者だけを抽出した一覧から、全体の割合を逆算しないでください。

固定例の状態と人数を検算する

次のPythonは、上の架空条件を使います。取得済みかを最初に見て、記録不明を未完了へ変換しません。小テストのNoneは、この固定例では取得済み記録に受験がないことを表します。

from collections import Counter
from fractions import Fraction as F

# A complete, B complete, quiz score, started, records complete
rows = {
    "L01": (True, True, 85, True, True),
    "L02": (True, False, 90, True, True),
    "L03": (False, False, None, False, True),
    "L04": (True, None, 80, True, False),
    "L05": (True, False, 70, True, True),
    "L06": (True, True, 80, True, True),
}

def classify(row):
    a, b, score, started, records_complete = row
    if not records_complete:
        return "UNKNOWN"
    if a and b and score is not None and score >= 80:
        return "COMPLETE"
    return "IN_PROGRESS" if started else "NOT_STARTED"

status = {key: classify(row) for key, row in rows.items()}
assert status == {
    "L01": "COMPLETE", "L02": "IN_PROGRESS", "L03": "NOT_STARTED",
    "L04": "UNKNOWN", "L05": "IN_PROGRESS", "L06": "COMPLETE",
}
counts = Counter(status.values())
assert counts == {"COMPLETE": 2, "IN_PROGRESS": 2, "NOT_STARTED": 1, "UNKNOWN": 1}
assert sum(counts.values()) == len(rows) == 6
assert F(counts["COMPLETE"], len(rows)) == F(1, 3)
assert F(counts["COMPLETE"], len(rows) - counts["UNKNOWN"]) == F(2, 5)
print(status, counts)

これは条件を固定した例の計算で、LMSのログを取得する処理ではありません。ID重複、得点の範囲、型、完了と着手の矛盾、すべての欠損表現を検出する汎用検査も含みません。実記録では、同じ受講者の複数受験、採点待ち、免除、教材版の変更などを、正式な研修条件へ照らして確認します。

連絡が必要な人と、データ確認が必要な人を分ける

L04は、受講者へ未完了の案内をする前に、記録の取得元を確認する対象です。取得に遅延があるのか、別の教材IDで記録されたのか、そもそも完了していないのかは、この表から分かりません。

L02とL05も同じ内容を一律に案内せず、残っている条件を分けます。ただし、期限、免除、再受験の可否、送付先の確認がないため、今回の表だけで督促や再受験案内を確定しません。ここで作るのは確認候補で、実際に通知した結果ではありません。

担当者が記録を補ったら、元の確認不能を消して説明不能にするのではなく、集計版と更新理由を残します。完了確認の人数が増えても、新たに受講したのか、既存の記録が届いたのかを区別します。

AIへは、不足と根拠を返させる

架空の受講者L01~L06を、教材A・B完了かつ小テスト80点以上で整理してください。
判定用記録が取得できていない場合は確認不能とし、未完了や未着手へ置き換えないでください。
未着手には、取得済み記録で着手なしという根拠を使ってください。
各人の状態、根拠、残条件、先に確認することを分けて返してください。
全対象者数と確認不能を示し、分母を変えた割合を全体の値として使わないでください。
完了を理解度や勤務評価へ読み替えないでください。
出力:個別確認表、状態別人数、分母付きの割合、未確認事項。
この依頼ではLMS更新、証明書発行、受講者への連絡は行いません。

この依頼と分類は手製例で、AIの正答率を測った結果ではありません。報告前に、対象者6人が一つずつ状態へ対応するか、80点の境界、未取得と未実施、分母の説明を確認します。教材の一つの表示から全体を決めず、正式な条件と記録へ戻れる表として渡してください。

参考資料

公式資料の確認日:2026年10月20日。受講者、教材、得点、条件、進捗表は独自の架空例です。掲載Pythonと人数計算をローカルで検査しました。実受講、LMS設定・ログ取得、AI分類、学習成果、通知、証明書、画面表示は未検証です。

質問から自分に合うAIを探す