はじめに
第1部で見えたもの、見えなかったもの
探索的分析で明確になったこと
第1部では、Excel Agent Modeを使って探索的データ分析を体験しました。その過程で、以下のようなことが明確になったはずです。
本当に改善したい課題が見えた
- 「なんとなく成績が心配」→「単元3の図形領域でつまずく生徒が多い」
- 「欠席が増えている気がする」→「月曜日と長期休み明けに欠席が集中している」
- 「授業がうまくいっていない」→「説明のわかりやすさと課題の難易度に課題がある」
漠然とした問題意識が、データとの対話を通じて具体的な課題に変わりました。
どのデータをどう見れば示唆が得られるかがわかった
- 単なる平均ではなく、分布と外れ値を見る
- ある時点の数値ではなく、時系列の推移を追う
- 単一指標ではなく、複数指標の関連を見る
- 全体傾向と個別パターンの両方を確認する
効果的なデータの見方が体験的に理解できました。
必要な指標(KPI)が定まった
- 単元別平均点と標準偏差
- 出席率・欠席率の推移
- アンケート項目別の平均と分散
- 目標値に対する達成率
継続的にモニタリングすべき指標が明確になりました。
しかし、残された課題もある
一方で、第1部の探索的分析では解決できなかった課題も見えてきたはずです。
課題1: 毎回データを準備するのが大変
Agent Modeでの分析は強力ですが、毎回以下の作業が必要でした。
- 校務支援システムからCSVをエクスポート
- 複数のExcelファイルからデータをコピー&ペースト
- 手作業でデータを統合・整形
- 欠損値や表記揺れを修正
月次や学期ごとに分析したい場合、この準備作業を毎回繰り返すのは現実的ではありません。
課題2: 欲しいデータが手元にない
探索的分析を進める中で、以下のような壁に直面したかもしれません。
- 「単元別に分析したいが、テストデータに単元情報がない」
- 「学級別に見たいが、データが学年単位でしか集計されていない」
- 「時系列で追いたいが、過去データが残っていない」
- 「アンケート結果と成績を紐付けたいが、個人IDが一致しない」
欲しいデータが、適切な形で取得できていないという根本的な問題があります。
課題3: データの品質にバラつきがある
実際にデータと向き合うと、品質の問題に気づきます。
- 氏名の全角・半角が混在している
- 学年・クラスの表記が統一されていない(「1年1組」「1-1」「1年A組」)
- 欠損値の扱いがバラバラ(空欄、「-」、「0」、「不明」)
- 日付形式が不統一(和暦、西暦、YYYY/MM/DD、YYYY-MM-DD)
このようなデータをそのまま分析すると、誤った示唆を導いてしまう危険があります。
課題4: 継続的なモニタリングができない
第1部で明確にした「継続的にモニタリングすべきKPI」は、定期的な更新が前提です。
しかし、データ準備に毎回1〜2時間かかるなら、現実的には継続できません。忙しい教育現場で、手作業による定期的なデータ更新は破綻します。
課題5: 他の教員と共有しづらい
せっかく良い分析ができても、それが個人のPCの中にあるだけでは、組織的な改善につながりません。
- 学年会で共有したい
- 管理職に報告したい
- 次年度に引き継ぎたい
そのためには、データが整理され、いつでもアクセスできる状態である必要があります。
なぜデータ収集の仕組み化が必要なのか
探索から運用へのシフト
第1部の探索的分析で「何をどう見れば良いか」が明確になったら、次のステップは仕組み化です。
探索フェーズと運用フェーズでは、求められることが異なります。
| 観点 | 探索フェーズ(第1部) | 運用フェーズ(第2部以降) |
|---|---|---|
| 目的 | 問いを見つける、試行錯誤する | 定まった指標を継続的にモニタリングする |
| 頻度 | 不定期、必要な時に | 定期的(月次、学期ごと等) |
| データ準備 | 手作業でも許容範囲 | 自動化・半自動化が必須 |
| データ品質 | 多少のノイズは許容 | 高品質、一貫性が必要 |
| 共有 | 個人で完結してもOK | 組織で共有が前提 |
| ツール | Excel Agent Mode | Agent Mode + Power BI |
探索で得た知見を組織の資産にするには、データ収集と管理を仕組み化する必要があります。
仕組み化しないとどうなるか
データ収集の仕組み化を怠ると、以下のような「データ利活用の挫折パターン」に陥ります。
パターン1: 属人化して継続しない
- 最初は熱心な担当者が頑張るが、異動や多忙で更新が止まる
- データ更新の手順が文書化されておらず、引き継げない
- 担当者が変わると、ゼロから作り直しになる
パターン2: データ品質が劣化する
- 手作業での統合ミスが発生
- 表記揺れやマスタ不整合が蓄積
- 気づかぬうちに誤ったデータで意思決定してしまう
パターン3: 工数が膨れ上がり破綻する
- データ量が増えると手作業では処理しきれない
- 更新に半日かかるようになり、誰もやりたがらない
- 結局、古いデータのまま放置される
パターン4: 組織展開できない
- 個人のノウハウに依存し、他の教員が使えない
- 「あの先生に頼まないとデータが見られない」状態
- 組織的なPDCAサイクルに組み込めない
これらを避けるには、段階的にデータ収集を仕組み化していく必要があります。
仕組み化の3つのレベル
この記事では、学校の規模・リソース・スキルに応じて選べる、3つのレベルのデータ収集方法を紹介します。
レベル1: 手動収集(今すぐ始められる)
- Excelでのコピー&ペースト、CSVインポート
- Power Queryでの簡易統合
- 特別なスキル不要、低コスト
- 小規模・頻度が低い場合に適している
レベル2: 半自動収集(効率化を図る)
- Power Automateでのフロー自動化
- Excel VBAでのマクロ
- Google Apps Scriptでのデータ取得
- 初期設定は必要だが、大幅に工数削減
- 中規模・定期的な更新が必要な場合に適している
レベル3: 自動収集(本格的なデータ基盤)
- APIを使ったシステム連携
- データベース直接接続
- データレイク(Azure、AWS等)の構築
- 専門知識と投資が必要だが、完全自動化可能
- 大規模・リアルタイム要求がある場合に適している
重要なのは、いきなりレベル3を目指さないことです。
まずはレベル1で小さく始め、課題を洗い出し、必要に応じてレベル2、レベル3へステップアップしていく。この段階的アプローチが成功の鍵です。
この記事で学べること
第2部では、以下のスキルと知識を身につけることができます。
1. 教育現場のデータソースを理解する
どこにどんなデータがあるか
- 校務支援システム(成績、出席、保健記録等)
- 学習系システム(eポートフォリオ、CBT、Google Classroom、Microsoft Teams等)
- アンケート・調査データ
- 手動で記録されているデータ(Excel、紙)
データの現状を把握する方法
- データ棚卸しのやり方
- データ品質の評価観点
- 第1部で明確にした要件との突合
2. 段階的なデータ収集方法
レベル1: 手動収集
- Excelでのデータ統合
- Power Queryでの簡易統合
- CSVエクスポート・インポート
- 手順書の作成
レベル2: 半自動収集
- Power Automateでのフロー作成
- Excel VBAでの自動化
- Google Apps Scriptの活用
- スケジュール実行の設定
レベル3: 自動収集
- APIを使ったシステム連携
- データベース直接接続
- データレイクの構築
- セキュリティ考慮事項
段階的ステップアップ戦略
- レベル1から始める判断基準
- レベル2への移行タイミング
- レベル3への移行判断
3. データクレンジングとマスタ整備
よくあるデータ品質の問題
- 表記揺れ、欠損値、異常値、日付形式の不統一
データクレンジングの実践
- Excelでのクレンジング
- Power Queryでのクレンジング
- ルールの文書化
マスタデータの整備
- 必要なマスタ(学年・クラス・科目・生徒等)
- 統一コード体系の設計
- マスタとトランザクションの紐付け
4. データの統合と保管
データ統合の基本
- 垂直統合(時系列でのデータ追加)
- 水平統合(異なるデータソースの結合)
- Power Queryでの実践
データの保管場所
- Excelファイル
- SharePointリスト
- OneDrive/SharePoint
- データベース(Access、SQL Server、Azure SQL)
- 重要: 収集元はGoogle Workspace等も可、保存は必ずMicrosoft製品を使用
データ更新の運用
- 更新頻度の設定
- 手順書の作成
- 自動化とエラー通知
5. プライバシーとセキュリティ
個人情報保護の基本
- 教育データに含まれる個人情報
- 法的根拠と遵守すべき規則
データの匿名化
- 匿名化の手法(仮名化、一般化等)
- k-匿名性の考え方
- 小規模校での配慮
アクセス制御とセキュリティ
- ロールベースのアクセス制御
- OneDrive/SharePointのセキュリティ設定
- データ転送時のセキュリティ
データ保持期間と廃棄
- 保持期間の設定
- 安全なデータ廃棄
6. 実践ケーススタディ
ケース1: 小学校(単学級)での手動収集
- 全校150名、レベル1の手動収集
- 月次CSVエクスポート→Excel統合
- 所要時間と継続のコツ
ケース2: 中学校(複数学級)での半自動収集
- 全校450名、レベル2の半自動収集
- Power Automateでの自動統合
- 週次自動更新の設定とトラブルシューティング
ケース3: 高校(大規模校)での自動収集
- 全校1200名、レベル3の自動収集
- API連携とデータレイク
- 要件定義から構築、運用体制まで
データ収集・保存の基本方針
重要な原則
この記事で紹介するデータ収集方法では、以下の基本方針に従います。
【データ収集元】
- Microsoft 365(Microsoft Forms、Teams等)
- Google Workspace(Google Forms、Google Classroom、Google Sheets等)
- 校務支援システム
- 学習系システム
- その他のサービス
→ 収集元は問いません。現場で使っているサービスから自由にデータを取得できます。
【データ保存先】
- Microsoft Excel(OneDrive/SharePoint上)
- SharePointリスト
- Microsoft Access
- SQL Server / Azure SQL Database
- Azure Data Lake
【なぜこの方針なのか】
第3部で扱うPower BIは、Microsoft製品/サービスとのシームレスな連携が最大の強みです。
- OneDrive/SharePoint上のExcelファイルへの直接接続
- Azure SQL Databaseへのダイレクトクエリ
- SharePointリストへの接続
- Power Automateとの統合
データをMicrosoft基盤に集約しておくことで、Power BIでのダッシュボード構築がスムーズになります。
一方、データ収集元は限定しません。Google Workspaceを使っている学校も多いため、Google Formsのアンケート結果やGoogle Classroomの課題データを活用できます。
重要なのは、「収集したデータを最終的にMicrosoft製品に保存する」という点だけです。
この記事の対象読者
この記事は、以下のような方を対象としています。
前提知識
-
第1部を読んだ方、またはExcel Agent Modeを体験した方
- 探索的分析で「何を知りたいか」が明確になっている
- 必要なデータと指標がイメージできている
-
Excelの基本操作ができる方
- データの並べ替え、フィルタ
- 簡単な関数(SUM、AVERAGE等)
- コピー&ペースト
-
データ収集の仕組み化を検討している方
- 学級担任、学年主任、教務主任、情報担当教員
- 教育委員会の指導主事
- 学校管理職
ITスキルレベル別の読み方
初級者(Excel基本操作レベル)
- 第2章「レベル1: 手動収集」を中心に読む
- Power Queryの基本を学ぶ
- 小規模から始めて成功体験を積む
中級者(Power Automate・VBA経験あり)
- 第2章「レベル2: 半自動収集」を実践
- 既存の自動化スキルを教育データに応用
- 段階的にレベルアップ
上級者(API・データベース経験あり)
- 第2章「レベル3: 自動収集」で本格的なデータ基盤構築
- セキュリティやガバナンスも含めた設計
- 組織全体での展開を視野に
どのレベルから始めても構いません。 重要なのは、現状のスキルとリソースに合った方法を選び、小さく始めて段階的に拡張していくことです。
この記事を読み進める前に
第1部の成果を整理しよう
第2部に進む前に、第1部で明確になったことを整理しておきましょう。
以下の質問に答えられますか?
-
本当に改善したい課題は何ですか?
- 例: 「算数の図形領域でのつまずきを減らしたい」
-
そのために、どのデータが必要ですか?
- 例: 「単元別テスト結果、児童別の正答率、設問ごとの正答率」
-
どの指標を継続的にモニタリングしますか?
- 例: 「単元別平均点、標準偏差、60点未満の児童数」
-
どのくらいの頻度で分析しますか?
- 例: 「単元テスト実施後(月1〜2回)」
-
誰がこのデータを見ますか?
- 例: 「学年担任団、教科担当、管理職」
これらが明確であれば、データ収集の仕組み化はスムーズに進みます。
まだ整理できていない場合は、第1部に戻って探索的分析を深めることをお勧めします。
読み方のヒント
この記事は、以下のような読み方ができます。
体系的に学ぶ場合:
- 第1章から順に読み、データソースの理解から始める
- 第2章で3つのレベルを理解し、自分に合った方法を選ぶ
- 第3章〜第5章で実践的なスキルを身につける
- 第6章のケーススタディで全体像を確認
すぐに実践したい場合:
- 第2章の該当レベル(レベル1/2/3)に直接ジャンプ
- 第6章のケーススタディから近い規模の事例を読む
- 必要に応じて第3章〜第5章を参照
特定のトピックだけ知りたい場合:
- 第3章: データクレンジング
- 第4章: データ統合と保管
- 第5章: プライバシーとセキュリティ
- 目次から該当箇所に直接アクセス
それでは、データ収集の実践を始めましょう。
まずは第1章で、教育現場にどんなデータがあり、それをどう把握すればよいかを理解していきます。
第1章 教育現場のデータソースを理解する
データ収集の仕組み化を始める前に、まず「どこにどんなデータがあるのか」を理解する必要があります。この章では、教育現場に存在するデータソースを体系的に整理し、現状を把握する方法を学びます。
1.1 どこにどんなデータがあるか
教育現場には、想像以上に多様なデータソースが存在します。それぞれの特徴と、どんなデータが取得できるかを理解しましょう。
1.1.1 校務支援システム
概要
校務支援システムは、教育現場における最も重要なデータソースの一つです。多くの学校で導入が進んでおり、日常的な校務処理を支援しています。
主なデータ
成績データ
- 定期テスト・単元テストの結果
- 教科別・科目別の評定
- 観点別評価
- 通知表データ
- 学期ごと・年間の成績推移
出席・遅刻・早退データ
- 日別の出欠記録
- 遅刻・早退の時刻と理由
- 欠席理由の分類(病気、事故、忌引等)
- 長期欠席者の記録
- 出席率の集計
保健室記録
- 来室日時と症状
- 処置内容
- 身体測定データ(身長、体重、視力等)
- 健康診断結果
- 予防接種記録
指導要録データ
- 学習の記録
- 行動の記録
- 総合所見
- 進路指導の記録
特徴
- ✅ データが構造化されている
- ✅ 継続的に蓄積されている
- ✅ 一定の品質が保たれている
- ❌ システム間でデータ形式が異なる場合がある
- ❌ エクスポート機能に制限がある場合がある
データ取得方法
- CSVエクスポート機能(多くのシステムで提供)
- Excel形式での出力
- 一部のシステムではAPI連携が可能
- 印刷→PDF→OCR(最終手段)
1.1.2 学習系システム
概要
GIGAスクール構想以降、様々な学習系システムが教育現場に導入されています。これらのシステムには、学習活動に関する豊富なデータが蓄積されています。
主なデータ
学習eポートフォリオ
- 学習成果物(レポート、作品等)
- 振り返り記録
- 学習目標と達成度
- 教員からのフィードバック
CBT(Computer Based Testing)
- テスト結果(得点、正答率)
- 設問ごとの正誤データ
- 解答時間
- 受験日時
- 学習履歴との紐付け
デジタル教材の学習履歴
- 教材へのアクセス履歴
- 学習時間
- 問題演習の正答率
- 進捗状況
- つまずきポイント
オンライン課題提出システム
- 課題の提出状況
- 提出日時
- 評価・採点結果
- 再提出の記録
Microsoft 365 Education
- Microsoft Teams: チャネル活動、課題提出、出席記録
- Microsoft Forms: アンケート回答、クイズ結果
- OneNote Class Notebook: 学習ノート、教員フィードバック
- Assignments: 課題管理、評価
- SharePoint: 提出物、共同編集履歴
- OneDrive for Business: 個人ファイル管理
Google Workspace for Education(参考)
- Google Classroom: 課題提出状況、成績
- Google Forms: アンケート回答、小テスト結果
- Google Drive: 提出物、共同編集履歴
- ※ データ保存はMicrosoft製品を使用すること
特徴
- ✅ リアルタイムでデータが蓄積される
- ✅ 学習プロセスの詳細なデータが取得できる
- ✅ Microsoft 365は連携機能が充実(Power Automate、Power BI等)
- ❌ システムごとにデータ形式が大きく異なる
- ❌ データ量が膨大になりがち
- ❌ 個人情報保護の観点で制約がある場合がある
データ取得方法
- Microsoft: Power Automate、Microsoft Graph API、Power Query
- Google(参考): Google Apps Script → データはExcel/SharePointに保存
- CBTシステム: CSVエクスポート、API
- デジタル教材: ベンダー提供の管理画面からエクスポート
1.1.3 アンケート・調査データ
概要
教育現場では、様々な目的でアンケートや調査が実施されます。これらは、数値データだけでは見えない児童生徒の意識や感情を把握するための重要なデータソースです。
主なデータ
授業評価アンケート
- 授業の分かりやすさ
- 課題の難易度
- 授業の進度
- 教員の説明・対応
- 学習環境の満足度
学校評価アンケート
- 学校生活の満足度
- 安全・安心への評価
- 教育活動への評価
- 施設・設備への評価
- 保護者・児童生徒・教員の三者評価
生活実態調査
- 生活習慣(起床・就寝時刻、朝食等)
- 学習時間(家庭学習、塾等)
- メディア利用時間(ゲーム、SNS等)
- 運動・読書習慣
- 悩みや不安
いじめアンケート
- いじめの認知
- いじめの内容・態様
- 相談状況
- 学校の対応への評価
その他の調査
- 進路希望調査
- 部活動・委員会活動の満足度
- 学校行事の振り返り
- ICT活用状況調査
特徴
- ✅ 児童生徒の主観的データが取得できる
- ✅ Microsoft Formsで簡単に実施・集計可能
- ✅ 自由記述で深い示唆が得られることがある
- ❌ 回答の信頼性にバラつきがある
- ❌ 自由記述の分析には工夫が必要
- ❌ 匿名性とデータ紐付けのバランスが難しい
データ取得方法
- Microsoft Forms: Excelエクスポート、Power Automate連携、SharePoint統合
- Google Forms(参考): データはExcel/SharePointに転送して保存
- 紙のアンケート: 手入力、またはOCR読み取り
- 校務支援システム内のアンケート機能
1.1.4 手動で記録されているデータ
概要
システム化されていないデータも、教育現場には数多く存在します。これらは個別性が高く、現場の実態を反映した貴重なデータです。
主なデータ
Excelでの個別記録
- 学級担任による個人記録
- 教科担当による単元別評価メモ
- 面談記録
- 指導記録
- 保護者対応記録
紙ベースの記録
- 学級日誌
- 生徒指導記録
- 部活動記録
- 行事の振り返りシート
- 手書きのメモ・観察記録
学級日誌・連絡帳
- 日々の出来事
- 気になる児童生徒の様子
- 保護者とのやり取り
- 特記事項
面談記録
- 教育相談の内容
- 進路面談の記録
- 保護者面談の要約
- 支援が必要な事項
特徴
- ✅ 現場の実態を最もよく反映している
- ✅ 柔軟に記録できる
- ✅ 暗黙知が含まれている
- ❌ 属人化している
- ❌ 形式がバラバラ
- ❌ 検索・集計が困難
- ❌ 引き継ぎが難しい
データ取得方法
- Excelファイル: そのまま活用、または統合
- 紙の記録: 必要に応じてデジタル化(入力、スキャン)
- 暗黙知: 定型フォーマットを作成して記録を促進
1.2 データの現状把握
データソースが分かったら、次は現状を正確に把握します。この作業を「データ棚卸し」と呼びます。
1.2.1 データ棚卸しのやり方
データ棚卸しは、以下の4つのステップで進めます。
ステップ1: データソースのリストアップ
学校内に存在するすべてのデータソースをリストアップします。
リストアップシート(例)
| No | データソース名 | 種類 | 管理部署/担当者 | 主なデータ内容 |
|---|---|---|---|---|
| 1 | 校務支援システムA | システム | 教務部 | 成績、出席、指導要録 |
| 2 | Microsoft Teams | システム | 各教員 | 課題提出、成績、出席 |
| 3 | 授業評価アンケート(Forms) | アンケート | 教務部 | 授業満足度、理解度 |
| 4 | 学級担任記録 | Excel | 各学級担任 | 個人観察記録 |
| ... | ... | ... | ... | ... |
リストアップのコツ
- 学年会・教科会で聞き取りを行う
- 「データ」という言葉にとらわれず、「記録」「メモ」も含める
- 使われていないデータソースも記録しておく(活用可能性がある)
ステップ2: データ項目の確認
各データソースに、具体的にどんな項目が含まれているかを確認します。
データ項目確認シート(例)
| データソース名 | 項目名 | データ型 | 例 | 備考 |
|---|---|---|---|---|
| 校務支援システムA | 生徒ID | 文字列 | S20240001 | ユニークキー |
| 校務支援システムA | 氏名 | 文字列 | 山田太郎 | 個人情報 |
| 校務支援システムA | 学年 | 数値 | 1 | 1〜3 |
| 校務支援システムA | クラス | 数値 | 1 | 1〜4 |
| 校務支援システムA | テスト名 | 文字列 | 第1回定期テスト | |
| 校務支援システムA | 教科 | 文字列 | 数学 | 表記揺れあり |
| 校務支援システムA | 得点 | 数値 | 85 | 0〜100 |
| ... | ... | ... | ... | ... |
確認のコツ
- 実際のデータをサンプルとして出力して確認する
- 個人を特定できるキー項目を明確にする
- データ型の不整合(数値なのに文字列等)に注意
ステップ3: データ量と更新頻度の把握
データの規模感と更新のタイミングを把握します。
データ量・更新頻度シート(例)
| データソース名 | レコード数 | 更新頻度 | 更新タイミング | データ保持期間 |
|---|---|---|---|---|
| 校務支援システムA | 約1,500件/年 | 随時 | テスト実施後 | 卒業後5年 |
| Microsoft Teams(課題) | 約3,000件/年 | 毎日 | 課題提出時 | 年度末まで |
| 授業評価アンケート(Forms) | 約450件/回 | 学期ごと | 学期末 | 3年間 |
| 学級担任記録 | 約150件/年 | 週次 | 週末 | 年度末まで |
| ... | ... | ... | ... | ... |
把握のコツ
- 「レコード数」は、データの行数を指す
- 更新頻度は、データ収集計画に直結する重要情報
- データ保持期間は、個人情報保護の観点で重要
ステップ4: アクセス権限と取得方法の確認
誰がデータにアクセスでき、どうやって取得できるかを確認します。
アクセス権限・取得方法シート(例)
| データソース名 | アクセス権限 | 取得方法 | 取得所要時間 | 制約事項 |
|---|---|---|---|---|
| 校務支援システムA | 教務主任、管理職 | CSVエクスポート | 5分 | 個人情報のため取扱注意 |
| Microsoft Teams(課題) | 各教員(自クラスのみ) | Power Automate / Graph API | 10分(初回設定) | Microsoft 365管理者の承認必要 |
| 授業評価アンケート(Forms) | 教務部 | Excelエクスポート | 即時 | なし |
| 学級担任記録 | 各学級担任 | OneDrive/SharePoint共有 | - | フォーマット不統一 |
| ... | ... | ... | ... | ... |
確認のコツ
- アクセス権限がない場合、誰に依頼すれば取得できるかも記録
- 実際にデータ取得を試して、所要時間を測る
- 個人情報保護や利用規約上の制約も確認
1.2.2 データ品質の評価
データ棚卸しと並行して、データの品質を評価します。品質が低いデータは、分析前にクレンジング(第3章で詳述)が必要です。
評価観点1: 完全性(欠損値の有無)
チェック項目
- 必須項目に空欄がないか
- 「未入力」「不明」「-」などの表現がどの程度あるか
- 部分的にデータが欠けているレコードの割合
評価例
| データソース名 | 必須項目の欠損率 | 任意項目の欠損率 | 評価 |
|---|---|---|---|
| 校務支援システムA | 0% | 5% | ◎ 良好 |
| Microsoft Teams(課題) | 2% | 15% | ○ 概ね良好 |
| 授業評価アンケート(Forms) | 8% | 30% | △ 要改善 |
| 学級担任記録 | 20% | 50% | × 問題あり |
対応方針
- ◎: そのまま利用可能
- ○: 軽微なクレンジングで対応
- △: 入力促進策が必要
- ×: データソースとして利用困難、代替手段を検討
評価観点2: 正確性(入力ミスの傾向)
チェック項目
- 明らかに異常な値(得点が150点、出席率が120%等)
- 範囲外の値(学年が0や5等)
- データ型の不一致(数値項目に文字列)
評価方法
サンプルデータを抽出し、以下をチェック:
// Excel数式での異常値チェック例
=IF(OR(得点<0, 得点>100), "異常", "正常")
よくある入力ミスのパターン
- 全角・半角の混在
- 単位の記入漏れ(85点 → 85)
- 桁の間違い(850と入力すべきところを85)
- コピー&ペーストミス
評価観点3: 一貫性(表記揺れ、コード体系)
チェック項目
- 同じ概念に対する表記の統一性
- 例: 「1年1組」「1-1」「1年A組」
- 例: 「数学」「math」「算数」
- マスタデータとの整合性
- 時系列での表記変更の有無
表記揺れチェックの方法
Excelのピボットテーブルで、ユニーク値を確認:
- データ全体を選択
- 挿入 → ピボットテーブル
- 「値」に確認したい項目を配置
- ユニーク値の一覧を確認
評価例
| 項目名 | ユニーク値の数 | 期待値 | 評価 |
|---|---|---|---|
| 学年 | 3(1, 2, 3) | 3 | ◎ 統一されている |
| クラス | 12(1〜4 × 3学年) | 12 | ◎ 統一されている |
| 教科 | 8(国語、数学、...) | 5 | △ 表記揺れあり |
教科の例: 「数学」「Math」「算数」が混在している場合
評価観点4: 適時性(更新タイミング)
チェック項目
- データの最終更新日時
- 更新の遅延がないか
- リアルタイム性が必要なデータで、適切に更新されているか
評価例
| データソース名 | 想定更新タイミング | 実際の更新タイミング | 評価 |
|---|---|---|---|
| 出席データ | 毎日 | 毎日(当日中) | ◎ 適時 |
| 成績データ | テスト後3日以内 | テスト後1週間程度 | △ やや遅延 |
| アンケート結果 | 学期末 | 学期末(即日) | ◎ 適時 |
対応方針
- 遅延が許容範囲内: そのまま運用
- 遅延が問題: データ入力の仕組みを見直す
1.3 第1部で明確にした要件との突合
データ棚卸しとデータ品質評価が完了したら、第1部で明確にした「本当に必要なデータ」との突合を行います。
1.3.1 必要なデータが揃っているか
ステップ1: Agent Modeでの探索で必要だったデータをリストアップ
第1部で行った探索的分析を振り返り、「どのデータを使って示唆を得たか」を整理します。
必要データのリストアップ例
ユースケース: 「算数の単元別つまずき分析」
| 必要なデータ | 用途 | 重要度 |
|---|---|---|
| 単元別テスト結果 | つまずき単元の特定 | 必須 |
| 児童別の単元別得点 | 個別支援対象の特定 | 必須 |
| 設問ごとの正答率 | つまずきポイントの詳細分析 | 重要 |
| 前年度同時期の結果 | 経年比較 | あると良い |
| 授業時数 | 指導時間との関連分析 | あると良い |
ステップ2: 現状取得可能なデータとのギャップ確認
データ棚卸しの結果と照合し、ギャップを明確にします。
ギャップ分析シート(例)
| 必要なデータ | 重要度 | 現状 | ギャップ | 対応方針 |
|---|---|---|---|---|
| 単元別テスト結果 | 必須 | ✅ 校務支援システムにあり | なし | そのまま利用 |
| 児童別の単元別得点 | 必須 | ✅ 取得可能(個人情報に注意) | なし | 匿名化して利用 |
| 設問ごとの正答率 | 重要 | ❌ システムに記録なし | ギャップあり | Excel手入力で対応 |
| 前年度同時期の結果 | あると良い | △ 紙の記録が残っている | ギャップあり | 可能な範囲でデジタル化 |
| 授業時数 | あると良い | ✅ 週案にあり | なし | 手動集計 |
ステップ3: 優先順位の設定
ギャップが見つかった場合、すべてを埋めるのは現実的ではありません。優先順位を設定します。
優先順位の判断基準
| 基準 | 考え方 |
|---|---|
| 必要性 | 「必須」「重要」「あると良い」の分類 |
| 取得コスト | データ取得にかかる時間・労力 |
| 代替手段 | 他のデータで代用可能か |
| 即効性 | すぐに効果が見込めるか |
優先順位付けの例
| ギャップ項目 | 必要性 | 取得コスト | 優先度 | 対応 |
|---|---|---|---|---|
| 設問ごとの正答率 | 重要 | 中(手入力) | 高 | 今学期から記録開始 |
| 前年度同時期の結果 | あると良い | 高(デジタル化が大変) | 低 | 今年度データ蓄積を優先 |
1.3.2 データの粒度は適切か
データの「粒度」とは、データの細かさのレベルを指します。分析目的に応じて、適切な粒度でデータを保持する必要があります。
粒度の考え方1: 集計済みデータ vs 明細データ
集計済みデータの例
- 学級平均点
- 学年別出席率
- 月別の平均値
明細データの例
- 児童生徒一人ひとりのテスト得点
- 日別の個人の出欠記録
- 設問ごとの正誤データ
どちらが必要か?
| 分析目的 | 必要な粒度 | 理由 |
|---|---|---|
| 全体傾向を把握 | 集計済みでOK | 学校全体・学年全体の傾向が見えればよい |
| 個別支援対象の特定 | 明細データ必須 | 一人ひとりを特定する必要がある |
| 詳細なつまずき分析 | 明細データ必須 | どの問題でつまずいたかを見る |
重要な原則
「明細データがあれば、集計はいつでもできる。しかし、集計済みデータから明細には戻せない。」
迷ったら、より細かい粒度(明細データ)で保持するのが原則です。
粒度の考え方2: 時系列の粒度(日次、週次、月次)
日次データ
- 出欠記録
- 保健室来室記録
- 日々の学習履歴
週次データ
- 週ごとの振り返り
- 週案の実施状況
月次データ
- 月別の集計値
- 月次レポート
どの粒度が必要か?
| 分析目的 | 必要な粒度 | 理由 |
|---|---|---|
| 欠席の傾向分析(曜日別) | 日次必須 | 「月曜日に多い」等を見るため |
| 季節変動の分析 | 月次でOK | 大まかな傾向が見えればよい |
| 学習時間の推移 | 週次が適切 | 日次だとブレが大きい、月次だと粗い |
ギャップがある場合の対応
現状のデータ粒度と必要な粒度にギャップがある場合:
| 現状 | 必要 | ギャップ | 対応方針 |
|---|---|---|---|
| 月次集計値のみ | 日次データ | ギャップあり | 今後は日次で記録、過去データは諦める |
| 日次データ | 月次集計 | ギャップなし | 日次データを集計すればOK |
| 学年別集計 | 学級別分析が必要 | ギャップあり | 記録方法を見直す |
粒度判断のワークシート
第1部で明確にした分析要件に対して、必要な粒度を整理します。
粒度要件整理シート(例)
| 分析要件 | 必要な粒度(集計 or 明細) | 必要な粒度(時系列) | 現状の粒度 | ギャップ | 対応 |
|---|---|---|---|---|---|
| 単元別つまずき分析 | 明細(児童別) | テストごと | ✅ 明細あり | なし | - |
| 欠席の曜日別傾向 | 明細(日別) | 日次 | ✅ 日次データあり | なし | - |
| 学習時間の推移 | 集計(学級平均) | 週次 | ❌ 記録なし | ギャップあり | アンケート追加 |
| 授業評価の変化 | 明細(生徒別) | 学期ごと | △ 学級平均のみ | ギャップあり | 個人別データ取得 |
第1章のまとめ
この章では、教育現場のデータソースを理解し、現状を把握する方法を学びました。
学んだこと
-
データソースの種類
- 校務支援システム
- 学習系システム(Microsoft 365 Education中心)
- アンケート・調査データ
- 手動記録データ
-
データ棚卸しの4ステップ
- データソースのリストアップ
- データ項目の確認
- データ量と更新頻度の把握
- アクセス権限と取得方法の確認
-
データ品質の評価観点
- 完全性(欠損値)
- 正確性(入力ミス)
- 一貫性(表記揺れ)
- 適時性(更新タイミング)
-
要件との突合
- 必要なデータが揃っているか
- データの粒度は適切か
- ギャップの特定と優先順位付け
次の章への準備
現状のデータソースと品質、そして第1部で明確にした要件とのギャップが明確になりました。
次の第2章では、これらのデータを実際にどう収集するか、3つのレベル(手動・半自動・自動)の具体的な方法を学びます。
第2章 データ収集方法の3つのレベル
第1章でデータソースと現状を把握したら、次は「どうやってデータを収集するか」を決めます。この章では、学校の規模・リソース・スキルに応じて選べる3つのレベルのデータ収集方法を紹介します。
3つのレベル
- レベル1: 手動収集 - 今すぐ始められる
- レベル2: 半自動収集 - 効率化を図る
- レベル3: 自動収集 - 本格的なデータ基盤
重要な原則: 段階的アプローチ
いきなりレベル3を目指す必要はありません。まずはレベル1で小さく始め、課題を洗い出し、必要に応じてレベル2、レベル3へステップアップしていく。この段階的アプローチが成功の鍵です。
2.1 レベル1: 手動収集(今すぐ始められる)
レベル1の概要
手動収集は、特別なシステムやプログラミングスキルなしで、今すぐ始められる方法です。ExcelとOneDrive/SharePointがあれば実践できます。
こんな学校に適しています
- 小規模校(全校児童生徒数が数百人程度)
- データ収集の頻度が低い(月次、学期ごと等)
- まずは試してみたい段階
- ITリソースが限られている
2.1.1 Excelでのデータ統合
最もシンプルな方法は、複数のExcelファイルを手作業で統合することです。
方法1: コピー&ペースト
手順
- 各データソースからExcelファイルを開く
- 必要なデータ範囲を選択してコピー
- 統合先のExcelファイルにペースト
- 列の並びを揃える
- 重複チェック
- OneDrive/SharePointに保存
メリット
- ✅ すぐに始められる
- ✅ 特別なスキル不要
- ✅ 柔軟に調整できる
デメリット
- ❌ 時間がかかる
- ❌ コピー&ペーストミスが起きやすい
- ❌ 毎回同じ作業の繰り返し
適した場面
- データソースが2〜3個程度
- 月1回程度の更新
- 試行段階でデータ要件が固まっていない
方法2: Power Queryでの簡易統合
Power Queryを使うと、Excelでのデータ統合を半自動化できます。
Power Queryとは
Excelに組み込まれたデータ取得・変換ツールです。一度設定すれば、「更新」ボタンを押すだけでデータを再取得・統合できます。
基本的な使い方
ステップ1: データソースへの接続
- Excel を開く
- 「データ」タブ → 「データの取得」
- データソースの種類を選択:
- Excelブック: 他のExcelファイルから取得
- フォルダー: 複数のExcelファイルを一括取得
- CSV: CSVファイルから取得
- SharePointリスト: SharePointリストから取得
ステップ2: データの変換
Power Query エディターで以下の操作が可能:
- 列の選択・削除
- 列名の変更
- データ型の変更
- フィルタ
- 重複の削除
- 列の分割・結合
ステップ3: データの読み込み
変換が完了したら、「閉じて読み込む」をクリック。データがExcelシートに読み込まれます。
ステップ4: データの更新
データソースが更新されたら:
- 「データ」タブ → 「すべて更新」
- 自動的に最新データを取得・変換
実践例: 複数の学級担任記録Excelファイルを統合
状況
- 各学級担任が個別のExcelファイルで記録
- 同じフォーマット(生徒ID、氏名、観察内容、日付)
- OneDriveの共有フォルダに保存
Power Queryでの統合手順
-
フォルダーへの接続
- 「データ」→「データの取得」→「ファイルから」→「フォルダーから」
- OneDrive上の共有フォルダのパスを指定
-
ファイルの結合
- 「結合」→「ファイルの結合と変換」
- サンプルファイルを選択して列を確認
- 「OK」をクリック
-
不要な列の削除
- 「Source.Name」(ファイル名)は残す(どの担任の記録かわかるように)
- 「Content」「Extension」等の不要な列は削除
-
列名の統一
- 必要に応じて列名を変更
-
データ型の設定
- 日付列を「日付」型に
- 生徒ID列を「テキスト」型に
-
読み込み
- 「閉じて読み込む」をクリック
結果
すべての学級担任記録が1つのExcelシートに統合されます。新しいファイルが追加されたら、「すべて更新」で自動的に取り込まれます。
方法3: テンプレートファイルの作成
データ統合を継続的に行う場合、テンプレートファイルを作成しておくと便利です。
テンプレートファイルの構成
- データシート: 統合されたデータを格納
- 参照シート: 元データ(Power Query使用時は不要)
- 分析シート: 第1部で確立した分析を実施
- 手順書シート: データ更新の手順を記載
テンプレート作成のポイント
- 列の順序・名称を統一
- データ型を明記
- 更新手順を詳しく記載(スクリーンショット付き)
- OneDrive/SharePointで共有
2.1.2 CSVエクスポートとインポート
多くのシステムはCSV形式でのデータエクスポートに対応しています。
CSVエクスポートの一般的な手順
校務支援システムの例
- システムにログイン
- 必要なデータの画面に移動(成績一覧、出席一覧等)
- 「エクスポート」または「CSV出力」ボタンをクリック
- 出力範囲・項目を選択
- ダウンロード
注意点
- 個人情報を含むため、ダウンロード後は速やかにOneDrive/SharePointの適切なフォルダに移動
- ローカルPCのダウンロードフォルダに放置しない
- エクスポート後、システム上でダウンロード履歴が残る場合がある
ExcelでのCSVインポート
方法1: 直接開く
CSVファイルをダブルクリックしてExcelで開く。
注意: この方法だと、文字コードの問題や日付形式の自動変換で問題が起きることがあります。
方法2: Power Queryでインポート(推奨)
- Excel を開く
- 「データ」→「データの取得」→「ファイルから」→「テキストまたはCSVから」
- CSVファイルを選択
- プレビューでデータを確認
- 必要に応じて:
- 文字コードの変更(UTF-8, Shift_JIS等)
- 区切り文字の指定(カンマ、タブ等)
- データ型の設定
- 「読み込み」または「変換」
よくある問題と対処法
| 問題 | 原因 | 対処法 |
|---|---|---|
| 文字化け | 文字コードの不一致 | Power Queryで文字コードを指定 |
| 先頭の0が消える(例: 001 → 1) | 自動で数値変換される | 該当列を「テキスト」型に設定 |
| 日付が意図しない形式 | Excelが自動変換 | Power Queryで形式を明示的に指定 |
定型作業の手順書作成
手動収集を継続的に行うには、手順書が不可欠です。
手順書に含めるべき内容
- 目的: なぜこのデータ収集を行うのか
- 頻度: いつ実施するのか(毎月5日、学期末等)
- データソース: どこからデータを取得するか
- エクスポート手順: スクリーンショット付き
- インポート・統合手順: 詳細な操作手順
- 保存先: OneDrive/SharePointの具体的なパス
- チェック項目: データ件数、欠損値確認等
- トラブルシューティング: よくある問題と対処法
- 担当者: 主担当と副担当
手順書のテンプレート例
# データ収集手順書: 月次出席データ統合
## 目的
月次での出席傾向分析のため、校務支援システムから出席データを取得し統合する
## 実施頻度
毎月5日(前月分データを集計)
## 所要時間
約15分
## 手順
### 1. 校務支援システムからCSVエクスポート
1. 校務支援システムにログイン
- URL: https://xxxxx
- ユーザー名: 教務主任アカウント
2. 「出席管理」→「月次集計」メニューを開く
3. 対象月を選択(例: 2024年4月)
4. 「CSVエクスポート」ボタンをクリック
5. ダウンロードされたファイルを確認
- ファイル名: attendance_YYYYMM.csv
### 2. OneDriveへの保存
1. ダウンロードしたCSVファイルを以下に移動:
OneDrive/学校共有/データ収集/出席データ/元データ/
2. ローカルのダウンロードフォルダからは削除
### 3. Power Queryでの統合
1. 統合用Excelファイルを開く:
OneDrive/学校共有/データ収集/出席データ/出席データ統合.xlsx
2. 「データ」タブ→「すべて更新」をクリック
3. 更新完了を待つ(約30秒)
4. データ件数を確認
- 期待値: 約450件(全校生徒数×出席日数)
- 実際の件数: _____ 件
### 4. データ品質チェック
- [ ] データ件数が期待値の範囲内
- [ ] 欠損値がないことを確認
- [ ] 日付範囲が正しい(前月1日〜末日)
### 5. 保存と共有
1. Excelファイルを保存
2. 更新日時をファイル名に追記(任意)
3. 分析担当者に完了を通知
## トラブルシューティング
### Q: CSVエクスポートボタンが表示されない
A: アクセス権限の問題。管理職に権限確認を依頼
### Q: データ件数が期待値より大幅に少ない
A: エクスポート時の対象月選択ミスの可能性。手順1を再実行
### Q: 文字化けが発生
A: Power Query で文字コードを「Shift_JIS」に変更
## 担当者
- 主担当: 教務主任 山田先生
- 副担当: 情報担当 佐藤先生
2.1.3 手動収集のメリットとデメリット
メリット
1. 低コスト
- 追加のシステム導入不要
- Microsoft 365のライセンスがあれば実践可能
2. 柔軟性が高い
- データ要件が変わってもすぐに対応できる
- 試行錯誤しながら調整可能
3. すぐ始められる
- 特別なスキル不要
- 承認プロセス不要
- 今日から実践可能
4. データの内容を理解できる
- 手作業で触ることで、データの特性や問題点に気づきやすい
デメリット
1. 時間がかかる
- 毎回同じ作業の繰り返し
- データ量が増えると処理時間が増大
2. ミスが起きやすい
- コピー&ペーストミス
- ファイル選択ミス
- 更新忘れ
3. 継続が難しい
- 担当者の負担が大きい
- 異動・休職で作業が止まる
- モチベーション維持が困難
4. スケールしない
- データソースが増えると破綻する
- 複数校での展開が困難
適した場面
| 観点 | 条件 |
|---|---|
| 規模 | 小規模(全校数百人程度) |
| 頻度 | 月次、学期ごと等、低頻度 |
| データソース数 | 2〜5個程度 |
| フェーズ | 試行段階、要件が固まっていない |
| スキル | Excel基本操作レベル |
| 期間 | 短期間(数ヶ月)の試行 |
判断基準
以下のすべてに該当する場合は、レベル1で十分です。
- ✅ データ収集頻度が月1回以下
- ✅ データソースが5個以下
- ✅ 1回の作業時間が30分以内
- ✅ まだ試行段階で要件が流動的
一方、以下のいずれかに該当する場合は、レベル2への移行を検討してください:
- ❌ 週次以上の高頻度更新が必要
- ❌ 1回の作業時間が1時間以上かかる
- ❌ ミスが頻発している
- ❌ 継続的なモニタリングが定着した
2.2 レベル2: 半自動収集(効率化を図る)
レベル2の概要
半自動収集は、初期設定は必要ですが、その後は自動またはボタン一つでデータ収集できる方法です。
こんな学校に適しています
- 中規模校(全校数百〜千人程度)
- 週次〜月次の定期的な更新が必要
- ある程度のITスキルがある(または学べる)
- レベル1で課題が明確になった
2.2.1 Power Automateでのデータ取得
Power Automateは、Microsoft 365に含まれるワークフロー自動化ツールです。
Power Automateでできること
- Microsoft Formsの回答を自動的にExcelに保存
- SharePointリストのデータを定期的にExcelに出力
- OneDriveの特定フォルダに新しいファイルが追加されたら自動処理
- メール添付ファイルを自動的にOneDriveに保存
- 定期的にデータを取得してSharePointに蓄積
実践例1: Microsoft Formsの回答を自動的にExcelに蓄積
状況
授業評価アンケートをMicrosoft Formsで実施。回答を自動的にOneDrive上のExcelファイルに蓄積したい。
フローの作成手順
ステップ1: トリガーの設定
- Power Automate (https://make.powerautomate.com) にアクセス
- 「作成」→「自動化したクラウドフロー」
- トリガーを選択: 「Microsoft Forms - When a new response is submitted」(新しい応答が送信されるとき)
- 対象のFormsを選択
ステップ2: 応答の詳細を取得
- 「新しいステップ」をクリック
- アクション検索: 「Forms」
- 「Get response details」(応答の詳細を取得)を選択
- Form Id: 自動入力される
- Response Id: 動的なコンテンツから「Response Id」を選択
ステップ3: Excelに行を追加
- 「新しいステップ」
- アクション検索: 「Excel Online (Business)」
- 「Add a row into a table」(表に行を追加)を選択
- Location: OneDrive for Business
- Document Library: OneDrive
- File: 保存先Excelファイルのパスを指定
- Table: Excelファイル内のテーブル名を選択
- 各列に対応する値を設定:
- 動的なコンテンツから質問の回答を選択
- 「Responder's Email」「Submission time」等も取得可能
ステップ4: フローの保存とテスト
- フロー名をわかりやすく設定(例: 「授業評価アンケート自動保存」)
- 「保存」をクリック
- テスト実行:
- Formsに実際に回答して動作確認
- Excelファイルに行が追加されることを確認
結果
Formsに回答が送信されるたびに、自動的にExcelに1行追加されます。手作業でのコピー&ペーストは不要になります。
実践例2: OneDriveフォルダ監視と自動処理
状況
各教員がOneDriveの特定フォルダにテスト結果のExcelファイルをアップロード。それを自動的に統合Excelファイルに追記したい。
フローの作成手順
ステップ1: トリガーの設定
- トリガー: 「OneDrive for Business - ファイルが作成されたとき」
- フォルダー: 監視対象フォルダのパスを指定
ステップ2: ファイル内容の取得
- アクション: 「Excel Online (Business) - List rows present in a table」(表内に存在する行を一覧表示)
- File: 動的なコンテンツから「File identifier」を使用
- Table: テーブル名を指定
ステップ3: 統合ファイルに行を追加
- 「Apply to each」コントロールを追加(複数行を処理するため)
- その中に「Excel Online (Business) - Add a row into a table」(表に行を追加)アクションを配置
- 統合先のExcelファイルとテーブルを指定
- 各列の値を動的なコンテンツから設定
ステップ4: 元ファイルの移動(任意)
- アクション: 「OneDrive for Business - ファイルの移動」
- 移動先: 「処理済み」フォルダ等に移動
- 重複処理を防ぐため
注意点
- Excelファイルはテーブル形式にしておく必要がある
- 列の構造が統一されている必要がある
- エラー処理を追加推奨(ファイル形式不正時等)
実践例3: 定期実行によるデータ収集
状況
SharePointリストに蓄積されているデータを、毎週月曜9時にExcelファイルに出力したい。
フローの作成手順
ステップ1: トリガーの設定
- トリガー: 「スケジュール - 繰り返し」
- 間隔: 1
- 頻度: 週
- 曜日: 月曜日
- 時刻: 9:00
ステップ2: SharePointリストの取得
- アクション: 「SharePoint - Get items」(複数の項目を取得)
- Site Address: SharePointサイトのURL
- List Name: 対象リストを選択
- Filter Query: 必要に応じて期間絞り込み
例:Created ge '2024-04-01'(2024年4月1日以降)
ステップ3: Excelファイルのクリアと書き込み
- アクション: 「Excel Online (Business) - Delete a row」(表内の行を削除)で既存データをクリア
- アクション: 「Apply to each」
- その中に「Excel Online (Business) - Add a row into a table」(表に行を追加)
- SharePointリストの各項目を行として追加
ステップ4: 完了通知(任意)
- アクション: 「Office 365 Outlook - メールの送信(V2)」
- 宛先: 担当者のメールアドレス
- 件名: 「週次データ更新完了」
- 本文: 「SharePointリストのデータをExcelに出力しました」
結果
毎週月曜9時に自動的にデータが更新されます。担当者は何もする必要がありません。
Power Automateのベストプラクティス
1. エラー処理を追加
「Configure run after」機能で、エラー発生時の処理を設定:
- エラー通知メールの送信
- ログの記録
- 代替処理の実行
2. フロー名をわかりやすく
- ❌ 「マイフロー1」
- ✅ 「授業評価アンケート_Forms→Excel自動保存」
3. 説明を記載
フローの説明欄に、目的・担当者・作成日・変更履歴を記載
4. テストを十分に
- 本番データで試す前に、テストデータで動作確認
- エラーパターンも確認(ファイルがない、形式不正等)
5. 共有と権限管理
- フローを組織で共有(自分だけのフローにしない)
- 接続の認証は継続的にメンテナンス
2.2.2 Excelマクロ(VBA)での自動化
VBA(Visual Basic for Applications)を使うと、Excel内で複雑な処理を自動化できます。
VBAでできること
- 複数のExcelファイルを自動的に開いて統合
- データクレンジング(表記揺れ修正、欠損値処理)の自動化
- 定型レポートの自動生成
- ボタン一つで一連の処理を実行
実践例: 複数ファイルの自動統合マクロ
状況
OneDrive上の特定フォルダ内にある複数のExcelファイル(各学級の担任記録)を統合したい。
VBAコード例
Sub 学級記録統合()
Dim フォルダパス As String
Dim ファイル名 As String
Dim 統合シート As Worksheet
Dim 次行 As Long
Dim 対象ブック As Workbook
Dim 対象シート As Worksheet
' 統合先シートを設定
Set 統合シート = ThisWorkbook.Worksheets("統合データ")
' フォルダパスを設定(OneDrive同期フォルダ)
フォルダパス = Environ("OneDrive") & "\学校共有\学級記録\"
' 既存データをクリア(ヘッダー行は残す)
次行 = 2
統合シート.Rows("2:" & 統合シート.Rows.Count).ClearContents
' フォルダ内のExcelファイルを順次処理
ファイル名 = Dir(フォルダパス & "*.xlsx")
Do While ファイル名 <> ""
' 自分自身のファイルはスキップ
If ファイル名 <> ThisWorkbook.Name Then
' ファイルを開く
Set 対象ブック = Workbooks.Open(フォルダパス & ファイル名, ReadOnly:=True)
Set 対象シート = 対象ブック.Worksheets(1)
' データ行を統合(ヘッダー行を除く)
Dim 最終行 As Long
最終行 = 対象シート.Cells(対象シート.Rows.Count, 1).End(xlUp).Row
If 最終行 > 1 Then
対象シート.Range("A2:E" & 最終行).Copy
統合シート.Cells(次行, 1).PasteSpecial xlPasteValues
次行 = 次行 + (最終行 - 1)
End If
' ファイルを閉じる
対象ブック.Close SaveChanges:=False
End If
' 次のファイルへ
ファイル名 = Dir()
Loop
MsgBox "統合完了: " & (次行 - 2) & " 件のデータを統合しました", vbInformation
End Sub
使い方
- 上記コードをVBAエディタ(Alt + F11)に貼り付け
- 統合用Excelファイルに「実行」ボタンを配置
- ボタンに上記マクロを割り当て
- ボタンをクリックするだけで統合完了
実践例: データクレンジングの自動化
状況
学年・クラスの表記揺れ(「1年1組」「1-1」「1年A組」)を自動的に統一したい。
VBAコード例
Sub 表記揺れ統一()
Dim 対象シート As Worksheet
Dim 最終行 As Long
Dim i As Long
Dim 学年クラス As String
Set 対象シート = ThisWorkbook.Worksheets("統合データ")
最終行 = 対象シート.Cells(対象シート.Rows.Count, 1).End(xlUp).Row
' 学年・クラス列(C列と仮定)を処理
For i = 2 To 最終行
学年クラス = 対象シート.Cells(i, 3).Value
' 表記を統一(例: すべて「1年1組」形式に)
学年クラス = Replace(学年クラス, "-", "年")
学年クラス = Replace(学年クラス, "A組", "1組")
学年クラス = Replace(学年クラス, "B組", "2組")
学年クラス = Replace(学年クラス, "C組", "3組")
学年クラス = Replace(学年クラス, "D組", "4組")
' 統一した表記で上書き
対象シート.Cells(i, 3).Value = 学年クラス
Next i
MsgBox "表記統一完了", vbInformation
End Sub
VBAのメリットとデメリット
メリット
- ✅ Excel内で完結(追加ツール不要)
- ✅ 複雑な処理が可能
- ✅ 既存の資産(古いマクロ)を活用できる
デメリット
- ❌ プログラミングスキルが必要
- ❌ OneDrive/SharePointでのマクロ実行には制約あり
- ❌ セキュリティ設定でマクロが無効化される場合がある
- ❌ 保守性が低い(属人化しやすい)
推奨
- 可能であれば、Power AutomateやPower Queryを優先
- VBAは既存資産の活用や、どうしても必要な複雑処理のみに使用
2.2.3 Google Apps Scriptの活用(参考)
重要な注意事項
Google Workspace for Educationを使用している学校もありますが、取得したデータは必ずMicrosoft製品(Excel、OneDrive、SharePoint等)に保存してください。
Google Apps Scriptは、Google Workspaceの自動化ツールです。
できること
- Google Formsの回答を自動的に処理
- Google Sheetsのデータを定期的に取得
- Google Classroomの課題データを収集
基本的な流れ
- Google Apps Scriptでデータを取得
- データをJSON形式またはCSVで出力
- Power AutomateでOneDrive/SharePointに転送
- ExcelまたはSharePointリストに保存
実践例: Google FormsデータをMicrosoft Excelに転送
ステップ1: Google Apps Scriptでデータを取得
function sendToMicrosoft() {
// Google Formsのスプレッドシートを開く
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("フォームの回答 1");
var data = sheet.getDataRange().getValues();
// CSVデータに変換
var csv = "";
for (var i = 0; i < data.length; i++) {
csv += data[i].join(",") + "\n";
}
// Power AutomateのHTTPトリガーにPOST
var url = "https://prod-XX.japaneast.logic.azure.com:443/workflows/..."; // Power AutomateのURL
var options = {
"method": "post",
"contentType": "text/csv",
"payload": csv
};
UrlFetchApp.fetch(url, options);
}
ステップ2: トリガー設定
Google Apps Scriptのトリガーで、毎日または毎時実行
ステップ3: Power Automateで受信
- トリガー: 「HTTP要求の受信時」
- CSVデータを解析
- Excel Onlineに行を追加
注意事項
- Google Apps ScriptとPower Automateの連携には技術的な知識が必要
- 可能であれば、Microsoft Formsを使用することを推奨
- セキュリティとプライバシーに十分注意
2.2.4 半自動収集のメリットとデメリット
メリット
1. 作業時間の大幅削減
- 初回設定後は、ほぼ自動またはボタン一つで完了
- 月次30分の作業が5分に短縮、といった効果
2. ミスの減少
- 人的ミスが大幅に削減
- 毎回同じ手順で処理されるため品質が安定
3. 定期実行可能
- スケジュール設定で自動実行
- 担当者が休んでもデータ更新が止まらない
4. スケールする
- データ量が増えても処理時間はほぼ一定
- データソースが追加されても対応可能
デメリット
1. 初期設定に時間がかかる
- Power Automateのフロー作成に数時間
- VBAマクロの開発に数日(複雑な場合)
2. 保守が必要
- データ構造が変わると修正必要
- エラー発生時の対応が必要
3. 一部手動作業が残る
- 完全自動化ではない場合がある
- 実行ボタンを押す、確認作業等
4. スキル要件
- Power Automate、VBA等の学習が必要
- トラブル時の対応スキル
適した場面
| 観点 | 条件 |
|---|---|
| 規模 | 中規模(全校数百〜千人程度) |
| 頻度 | 週次〜月次の定期更新 |
| データソース数 | 5〜15個程度 |
| フェーズ | 要件が固まり、継続的に運用する段階 |
| スキル | Power Automate、VBA等の学習可能 |
| 期間 | 中長期(1年以上)の運用 |
判断基準: レベル2への移行タイミング
以下のいずれかに該当したら、レベル2への移行を検討:
- ✅ 同じデータ収集作業を月3回以上実施している
- ✅ 1回の作業に30分以上かかっている
- ✅ データ収集作業が定着し、要件が固まった
- ✅ 担当者の異動・休職リスクに備えたい
- ✅ Power AutomateやVBAを学ぶ意欲とリソースがある
2.3 レベル3: 自動収集(本格的なデータ基盤)
レベル3の概要
レベル3は、完全自動化された本格的なデータ基盤です。システム間連携、データベース、データレイクを活用します。
こんな学校・自治体に適しています
- 大規模校または複数校での運用
- リアルタイムまたは日次の高頻度更新が必要
- 組織全体でのデータ利活用を推進
- 専門的なITリソース(または外部委託)が利用可能
注意事項
レベル3は、専門的な知識と投資が必要です。多くの学校では、レベル2で十分です。安易にレベル3を目指すと、過剰投資やプロジェクト破綻のリスクがあります。
2.3.1 APIを使ったシステム連携
API(Application Programming Interface)を使うと、システム間でデータを直接やり取りできます。
API連携の基本概念
APIとは
システムが外部に公開している「データ取得・操作の窓口」です。
REST APIの基本
- エンドポイント: データ取得先のURL
- HTTPメソッド: GET(取得)、POST(作成)、PUT(更新)、DELETE(削除)
- 認証: APIキー、OAuth等
- レスポンス: JSON形式でデータが返される
校務支援システムのAPI活用
一般的なAPI提供状況
- 大手校務支援システム: API提供あり(有償オプションの場合が多い)
- 自治体独自システム: API未提供の場合が多い
API利用の手順
- ベンダーにAPI仕様書を入手
- APIキーまたはOAuth認証の設定
- Power AutomateまたはAzure Logic Appsでエンドポイントに接続
- 取得したJSONデータをExcelまたはSharePointに保存
実践例: 校務支援システムから成績データを自動取得
ステップ1: API仕様の確認
ベンダーから提供されるAPI仕様書を確認:
- エンドポイントURL:
https://api.koumu-system.example.com/v1/grades - 認証方式: Bearer Token
- パラメータ:
year,semester,grade
ステップ2: Power AutomateでHTTPリクエスト
- トリガー: 「スケジュール - 繰り返し」(毎日深夜2時等)
- アクション: 「HTTP」
- 設定:
- 方法: GET
- URI:
https://api.koumu-system.example.com/v1/grades?year=2024&semester=1 - ヘッダー:
Authorization: Bearer [APIキー]Content-Type: application/json
ステップ3: JSONデータの解析
- アクション: 「JSONの解析」
- スキーマ: サンプルペイロードから自動生成
ステップ4: Excelまたはデータベースに保存
- アクション: 「Excel Online - 表に行を追加」または「SQL Server - 行の挿入」
- 取得したデータを各列に設定
学習系システムとの連携
Microsoft Graph API
Microsoft 365のデータにアクセスするAPI:
- Teams: チャネル、課題、メッセージ
- OneNote: ノートブックの内容
- Outlook: メール、予定表
利用例: Teamsの課題提出状況を自動取得
Power AutomateまたはAzure Logic Appsで、Microsoft Graph APIを呼び出し:
エンドポイント:
GET https://graph.microsoft.com/v1.0/education/classes/{id}/assignments
必要な権限:
- 委譲権限:
EduAssignments.ReadBasic(最小権限) - アプリケーション権限:
EduAssignments.ReadBasic.All(最小権限)
注意:
-
{id}はクラスIDに置き換える - 教師は全課題を表示可能、学生は割り当てられた課題のみ表示可能
取得したJSONデータをExcelに保存し、提出状況をモニタリング。
2.3.2 データベース直接接続
Excelではなく、データベースでデータを管理する方法です。
データベースの選択肢
Microsoft Access
- 小〜中規模向け
- Excelに似た操作感
- ファイル共有での運用
- OneDriveでの共有は非推奨(破損リスク)
SQL Server Express
- 無料版のSQL Server
- 中規模向け
- オンプレミスまたはAzure VM上で稼働
- Power BIとの親和性が高い
Azure SQL Database
- クラウド型のSQL Server
- 大規模向け
- 自動バックアップ、高可用性
- 従量課金
データベース活用の流れ
ステップ1: データベース設計
テーブル設計(正規化):
- 生徒マスタ
- 学年クラスマスタ
- 成績トランザクション
- 出席トランザクション
ステップ2: データ投入
- Power Automateからデータベースに直接挿入
- または、定期的にExcelからインポート
ステップ3: Power BIでの可視化
- Power BIから直接SQL Serverに接続
- リアルタイムまたはスケジュール更新
ODBCドライバの利用
Excelから直接データベースに接続する方法:
- ODBCドライバのインストール
- Excelの「データ」→「データの取得」→「データベースから」→「SQL Serverデータベースから」
- 接続情報を入力
- SQLクエリまたはテーブル選択
- Power Queryで整形
セキュリティ考慮事項
アクセス制御
- ユーザーごとにアクセス権限を設定
- 個人情報を含むテーブルは、管理職のみアクセス可能
通信の暗号化
- SSL/TLS接続を必須化
バックアップ
- 定期的な自動バックアップ
- リストア手順のテスト
2.3.3 データレイクの構築
データレイクは、あらゆるデータを元の形式のまま保存する仕組みです。
Azure Data Lakeの活用
Azure Data Lake Storage (ADLS)
- あらゆる形式のデータを保存(Excel、CSV、JSON、画像等)
- 大容量・低コスト
- Power BIとシームレスに連携
データレイク構築の流れ
ステップ1: Azure Data Lake Storageの作成
- Azureポータルにアクセス
- 「ストレージアカウント」を作成
- 「階層型名前空間」を有効化(Data Lake機能)
ステップ2: データの投入
- Power AutomateからBlobストレージにファイルアップロード
- Azure Data Factoryで定期的にデータパイプライン実行
- 各システムから直接アップロード
ステップ3: データの整形(オプション)
- Azure Databricksでデータクレンジング・統合
- Azure Synapse Analyticsでデータウェアハウス構築
ステップ4: Power BIでの可視化
- Power BIから直接ADLS Gen2に接続
- または、Synapse経由でクエリ
データレイクのメリット
- ✅ あらゆる形式のデータを一元管理
- ✅ スケーラビリティが非常に高い
- ✅ 低コスト
- ✅ 高度な分析(機械学習等)が可能
データレイクのデメリット
- ❌ 高度な専門知識が必要
- ❌ 初期構築コストが高い
- ❌ 運用・保守体制が必要
- ❌ 小規模校には過剰スペック
判断基準
以下のすべてに該当する場合のみ、データレイクを検討:
- ✅ 複数校(10校以上)または教育委員会全体での利用
- ✅ データ量が膨大(数十万〜数百万レコード)
- ✅ 専門的なITスタッフまたは外部委託が利用可能
- ✅ 予算が確保されている(年間数十万〜数百万円)
2.3.4 自動収集のメリットとデメリット
メリット
1. 完全自動化
- 人手をかけずにデータ収集
- リアルタイムまたは高頻度更新が可能
2. リアルタイム性
- 常に最新のデータで分析可能
- 迅速な意思決定が可能
3. 拡張性
- データ量が増えても対応可能
- 複数校への展開が容易
4. 高度な分析が可能
- 機械学習、AI活用
- 大規模データでのトレンド分析
デメリット
1. 高コスト
- システム構築費用(数百万〜数千万円)
- 運用保守費用(年間数十万〜数百万円)
2. 専門知識必要
- データベース、API、クラウドの知識
- 外部委託が必要な場合が多い
3. システム依存
- ベンダーロックインのリスク
- システム障害時の影響が大きい
4. 過剰投資のリスク
- 小規模校には不要な機能
- 投資対効果が見合わない可能性
適した場面
| 観点 | 条件 |
|---|---|
| 規模 | 大規模校、複数校、教育委員会全体 |
| 頻度 | リアルタイム〜日次の高頻度更新 |
| データ量 | 数十万〜数百万レコード |
| フェーズ | 組織全体での本格運用 |
| スキル | 専門的ITスタッフまたは外部委託 |
| 予算 | 年間数十万〜数百万円の投資可能 |
2.4 段階的なステップアップ戦略
2.4.1 レベル1から始める
小さく始めて成功体験を積む
いきなり完璧なデータ基盤を目指さず、レベル1から始めることを強く推奨します。
レベル1で得られるもの
- データの特性理解: 実際に触ることで、データの問題点や特性が見える
- 要件の明確化: どのデータが本当に必要か、どの粒度が適切かがわかる
- 成功体験: 小さな成果を早期に出せる
- 次のステップの判断材料: 自動化すべき箇所が明確になる
レベル1での実践項目
- 第1章のデータ棚卸しを完了
- 最も重要なデータソース1〜2個で手動収集を開始
- テンプレートファイルを作成
- 手順書を作成
- 1〜2ヶ月継続して運用
- 課題を洗い出す
課題の洗い出し項目
| 課題 | チェック |
|---|---|
| 作業時間が1回30分以上かかる | □ |
| 週3回以上実施している | □ |
| ミスが頻発している | □ |
| 担当者の負担が大きい | □ |
| データソースが5個以上ある | □ |
3つ以上チェックがついたら、レベル2への移行を検討してください。
2.4.2 レベル2への移行タイミング
判断基準: 投資対効果の見極め
レベル2への移行には、初期投資(時間・学習コスト)が必要です。投資対効果を見極めましょう。
ROI(投資対効果)の計算例
現状(レベル1)
- 作業時間: 1回30分
- 頻度: 週1回
- 年間作業時間: 30分 × 52週 = 26時間
レベル2移行後
- 初期設定時間: 8時間
- 作業時間: 1回5分
- 頻度: 週1回
- 年間作業時間: 5分 × 52週 = 4.3時間
削減効果
- 年間削減時間: 26 - 4.3 = 21.7時間
- 初期投資回収: 8時間 ÷ 21.7時間/年 = 約4ヶ月で回収
→ 4ヶ月以上継続する見込みがあれば、レベル2への移行を推奨
移行の準備
- スキル習得: Power AutomateまたはVBAの学習(Microsoft Learn活用)
- テスト環境: 本番データとは別に、テストデータで動作確認
- 段階的移行: すべてを一度に自動化せず、1つずつ移行
- 並行運用: 最初の1〜2ヶ月は、手動とPower Automateを並行して動作確認
2.4.3 レベル3への移行判断
慎重な判断が必要
レベル3への移行は、大きな投資とリスクを伴います。以下の判断基準をすべて満たす場合のみ検討してください。
移行判断チェックリスト
| 判断基準 | チェック |
|---|---|
| 規模: 複数校または全校1000人以上 | □ |
| データ量: 年間10万レコード以上 | □ |
| 頻度: 日次以上の高頻度更新が必要 | □ |
| 組織的: 教育委員会全体での利用 | □ |
| 予算: 年間数十万円以上の投資可能 | □ |
| スキル: 専門ITスタッフまたは外部委託可能 | □ |
| レベル2での限界: レベル2では対応困難 | □ |
7つすべてにチェック: レベル3を検討可能
5〜6個チェック: レベル2の拡張で対応できないか再検討
4個以下: レベル2で十分、レベル3は過剰投資
外部専門家の活用検討
レベル3は、多くの場合、外部の専門家や ITベンダーへの委託が必要です。
委託時の注意点
- 要件定義: レベル1・2での経験をもとに、具体的な要件を明示
- 段階的構築: 一度にすべてを作らず、フェーズを分けて構築
- 内製化の検討: できる限り、運用は内製化(ベンダー依存を避ける)
- 知識移転: ベンダーから技術・知識を移転してもらう契約
第2章のまとめ
この章では、データ収集方法の3つのレベルと、段階的なステップアップ戦略を学びました。
3つのレベルの特徴
| レベル | 適した規模 | 頻度 | スキル | コスト | 推奨度 |
|---|---|---|---|---|---|
| レベル1: 手動 | 小規模 | 月次以下 | Excel基本 | 低 | ★★★ まず試す |
| レベル2: 半自動 | 中規模 | 週次〜月次 | Power Automate等 | 中 | ★★★ 次のステップ |
| レベル3: 自動 | 大規模 | 日次以上 | 専門知識 | 高 | ★ 慎重に判断 |
段階的アプローチの重要性
「完璧を目指さず、小さく始めて段階的に成長させる」
- まずはレベル1で成功体験を積む
- 課題が明確になったらレベル2へ
- レベル3は、本当に必要な場合のみ
次の章への準備
データ収集方法が決まったら、次はデータの品質を高める「データクレンジングとマスタ整備」(第3章)に進みます。
どんなに優れた収集方法でも、データが汚れていたら正しい分析はできません。第3章では、データ品質を高める実践的な方法を学びます。
第3章 データクレンジングとマスタ整備
第2章でデータ収集の方法を学びました。しかし、収集したデータがそのまま分析に使えるとは限りません。データ品質の問題があると、誤った示唆を導いてしまう危険があります。
この章では、データクレンジング(データの洗浄・整形)とマスタデータ整備の実践的な方法を学びます。
3.1 よくあるデータ品質の問題
教育現場のデータには、様々な品質問題が潜んでいます。まずは、典型的な問題パターンを理解しましょう。
3.1.1 表記揺れ
表記揺れとは、同じ意味の情報が異なる表記で記録されている状態です。
問題例1: 氏名の全角・半角混在
データサンプル:
| 生徒ID | 氏名 |
|---|---|
| S001 | 山田太郎 |
| S002 | 佐藤花子 |
| S003 | 田中タロウ |
| S004 | 鈴木 次郎 |
問題点:
- S003は半角カナ(タロウ)
- S004は氏名の間にスペース
- データベースでの検索・照合が困難
- 統計処理で別人として扱われる可能性
影響:
- 個人の特定ができない
- 出席データと成績データの紐付けエラー
- 集計ミス
問題例2: 学年・クラスの表記パターン
データサンプル:
| データソース | 学年クラス表記 |
|---|---|
| 校務支援システム | 1年1組 |
| Microsoft Teams | 1-1 |
| 手動記録Excel | 1年A組 |
| アンケート | G1C1 |
問題点:
- 同じクラスなのに4種類の表記
- データ統合時に別クラスとして扱われる
- 学級別分析が不可能
影響:
- 学級別の集計ができない
- データ結合時の不整合
- 分析の信頼性低下
問題例3: 科目名の略称バリエーション
データサンプル:
| 教員 | 科目表記 |
|---|---|
| A先生 | 数学 |
| B先生 | Math |
| C先生 | 算数 |
| D先生 | mathematics |
問題点:
- 同じ科目(または類似科目)の表記が統一されていない
- 小学校では「算数」、中学校では「数学」
- 英語表記の混在
影響:
- 教科別集計が正しくできない
- 時系列分析が困難
3.1.2 欠損値
欠損値とは、データが入力されていない状態です。
問題例1: 未入力項目の扱い
データサンプル:
| 生徒ID | 氏名 | 出席日数 | 欠席日数 | 遅刻回数 |
|---|---|---|---|---|
| S001 | 山田太郎 | 180 | 5 | 2 |
| S002 | 佐藤花子 | 175 | 10 | |
| S003 | 田中次郎 | |||
| S004 | 鈴木一郎 | 185 | 0 | 0 |
問題点:
- S002の遅刻回数が空欄(未入力なのか、本当に0なのか不明)
- S003は全項目が空欄(転校?データ未入力?)
- 空欄の意味が不明確
影響:
- 平均値計算時に誤差
- 欠損値を0として扱うと過小評価
- 欠損値を除外すると母数が減少
問題例2: 「不明」「未回答」の統一
データサンプル(アンケート):
| 質問 | 回答パターン |
|---|---|
| 学習時間 | 「未回答」「-」「N/A」「無回答」(空欄) |
| 部活動 | 「なし」「帰宅部」「-」(空欄) |
問題点:
- 同じ意味(未回答)が複数の表記で記録
- 集計時にどれを「未回答」として扱うか判断が必要
欠損値の補完方法
欠損値が見つかった場合の対応方法:
| 補完方法 | 説明 | 適用場面 |
|---|---|---|
| 削除 | 欠損値を含む行を削除 | 欠損率が低い(5%未満)場合 |
| ゼロ補完 | 欠損値を0で埋める | 欠席日数、遅刻回数など、0が妥当な場合 |
| 平均値補完 | 全体平均で埋める | 連続値データで、影響が小さい場合 |
| 前方補完 | 直前の値で埋める | 時系列データで変化が少ない場合 |
| 「不明」として扱う | 欠損値を独立したカテゴリとして扱う | カテゴリカルデータ |
| 元データ確認 | 元データを確認して正しい値を入力 | 最も推奨 |
重要な原則:
安易に補完せず、まずは元データの確認を試みる。補完する場合は、その方法と理由を記録する。
3.1.3 異常値
異常値とは、通常ではあり得ない値が入力されている状態です。
問題例1: 入力ミスの検出
データサンプル:
| 生徒ID | 氏名 | テスト得点 | 出席率 |
|---|---|---|---|
| S001 | 山田太郎 | 85 | 95% |
| S002 | 佐藤花子 | 920 | 105% |
| S003 | 田中次郎 | -10 | 0.98 |
| S004 | 鈴木一郎 | 78 | 92% |
問題点:
- S002のテスト得点が920点(100点満点のはず)→ 桁の入力ミス(92点?)
- S002の出席率が105%(100%を超えることはない)
- S003のテスト得点が-10点(負の値はあり得ない)
- S003の出席率が0.98(98%の意図だが、単位が不統一)
検出方法:
Excelで異常値を検出:
// テスト得点の異常値チェック(0〜100点の範囲外)
=IF(OR(B2<0, B2>100), "異常", "正常")
// 出席率の異常値チェック(0〜1の範囲外、または0〜100%)
=IF(OR(C2<0, C2>1), "異常", "正常")
Power Queryでのフィルタ:
- 該当列を選択
- 「数値フィルター」→「次の値より大きい」「次の値より小さい」
- 範囲外の値を抽出
問題例2: 範囲外データの処理
判断フロー:
異常値を発見
↓
入力ミスか? → Yes → 正しい値を確認・修正
↓ No
本当に異常な値か? → Yes → 外れ値として別途分析
↓ No
データ定義の確認 → 単位や基準の誤解を修正
問題例3: 外れ値の判断基準
外れ値(outlier)とは、統計的に極端に大きいまたは小さい値です。
外れ値の検出方法:
方法1: 箱ひげ図(Box Plot)
- 四分位範囲(IQR)を使った判定
- IQR = Q3(第3四分位数)- Q1(第1四分位数)
- 外れ値 = Q1 - 1.5×IQR より小さい、または Q3 + 1.5×IQR より大きい
方法2: 標準偏差
- 平均 ± 3×標準偏差 の範囲外を外れ値とする
Excelでの計算:
// 平均
=AVERAGE(データ範囲)
// 標準偏差
=STDEV.S(データ範囲)
// 外れ値判定(例: 得点列)
=IF(OR(B2<平均-3*標準偏差, B2>平均+3*標準偏差), "外れ値", "正常")
外れ値への対応:
| 対応 | 説明 | 適用場面 |
|---|---|---|
| 保持 | そのまま使用 | 本当に極端な値で、意味がある場合 |
| 削除 | データから除外 | 明らかな入力ミスの場合 |
| 上限・下限設定 | 一定範囲に丸める | 外れ値の影響を抑えたい場合 |
| 別途分析 | 外れ値だけを抽出して分析 | 特別な対応が必要な事例を特定 |
3.1.4 日付・時刻の問題
日付・時刻データは、特に問題が起きやすい項目です。
問題例1: 和暦・西暦の混在
データサンプル:
| 生徒ID | 生年月日 |
|---|---|
| S001 | 2010/4/15 |
| S002 | H22/4/20 |
| S003 | 令和4年5月1日 |
| S004 | 2010-04-25 |
問題点:
- S001は西暦、S002は和暦(平成)、S003は和暦(令和)
- 日付形式も不統一(スラッシュ、ハイフン、漢字)
- Excelが自動で日付として認識しない場合がある
影響:
- 年齢計算ができない
- 時系列分析が不可能
- 並べ替えが正しくできない
問題例2: 日付形式の不統一
よくある日付形式:
| 形式 | 例 | 地域 |
|---|---|---|
| YYYY/MM/DD | 2024/04/15 | 日本(一般的) |
| YYYY-MM-DD | 2024-04-15 | ISO 8601(国際標準) |
| MM/DD/YYYY | 04/15/2024 | 米国 |
| DD/MM/YYYY | 15/04/2024 | 欧州 |
問題:
- 「04/05/2024」は、4月5日なのか、5月4日なのか不明
- Excelの地域設定によって解釈が変わる
対策:
- ISO 8601形式(YYYY-MM-DD)に統一することを推奨
- または、必ず「2024年4月15日」のような明確な表記
問題例3: タイムゾーンの考慮
問題:
- Microsoft Formsの回答時刻は UTC(協定世界時)で記録される場合がある
- 日本時間(JST)との時差は +9時間
- 9:00 AM JSTの回答が、0:00 AM UTCと記録される
対策:
Power Queryでのタイムゾーン変換:
// UTC→JSTへの変換
= DateTimeZone.SwitchZone([提出時刻], 9)
3.2 データクレンジングの実践
データ品質の問題を理解したら、次は実際にクレンジング(洗浄)を行います。
3.2.1 Excelでのクレンジング
Excelの関数と機能を使った基本的なクレンジング方法です。
TRIM、CLEAN関数の活用
TRIM関数: 余分なスペースを削除
=TRIM(A2)
- 文字列の前後のスペースを削除
- 文字列内の連続スペースを1つに統一
- 注意: 通常のスペース(ASCII 32)のみ削除。ノーブレークスペース(ASCII 160)は削除されない
使用例:
| 元データ | TRIM後 |
|---|---|
| 山田太郎 | 山田太郎 |
| 佐藤 花子 | 佐藤 花子 |
CLEAN関数: 印刷できない文字を削除
=CLEAN(A2)
- 改行コード、タブ等の制御文字を削除
- 注意: ASCII 0-31の制御文字のみ削除。Unicode制御文字(127, 129, 141, 143, 144, 157等)は削除されない
組み合わせ:
=TRIM(CLEAN(A2))
置換機能の活用
基本的な置換:
- Ctrl + H で「検索と置換」を開く
- 検索する文字列と置換後の文字列を入力
- 「すべて置換」
応用的な置換:
全角→半角の統一:
=ASC(A2)
- 全角英数字・カナを半角に変換
- 注意: 2バイト文字セット(DBCS)言語用の関数
- 日本語、中国語、韓国語環境で機能
半角→全角の統一:
=JIS(A2)
- 半角英数字・カナを全角に変換
- 注意: 2バイト文字セット(DBCS)言語用の関数
実践例: 学年クラス表記の統一
Power Queryまたは関数で:
// 「1-1」→「1年1組」への変換
=SUBSTITUTE(SUBSTITUTE(A2, "-", "年"), CHAR(最後の文字), "組")
より複雑な場合はPower Queryの「列の置換」機能を使用。
条件付き書式での検証
クレンジング後のデータ検証に条件付き書式を活用:
手順:
- データ範囲を選択
- 「ホーム」→「条件付き書式」→「新しいルール」
- 「数式を使用して、書式設定するセルを決定」を選択
- 数式を入力(例:
=LEN(A2)>20氏名が20文字以上) - 書式を設定(例: 赤背景)
検証例:
| 検証項目 | 数式 | 意味 |
|---|---|---|
| 空欄チェック | =A2="" |
セルが空白 |
| 文字数チェック | =LEN(A2)>20 |
20文字超 |
| 数値範囲チェック | =OR(B2<0, B2>100) |
0〜100の範囲外 |
| 重複チェック | =COUNTIF($A$2:$A$100, A2)>1 |
重複データ |
3.2.2 Power Queryでのクレンジング
Power Queryは、より高度なクレンジングに適しています。
データ型の統一
手順:
- Power Query エディターで列を選択
- 「変換」タブ→「データ型」
- 適切なデータ型を選択:
- テキスト
- 整数
- 10進数
- 日付
- 日付/時刻
- パーセンテージ
自動検出の問題:
Power Queryは自動でデータ型を推測しますが、誤ることがあります。
- 生徒ID「001」が整数「1」になる
- 郵便番号「123-4567」が日付になる
対策:
明示的に「テキスト」型に設定。
置換ルールの設定
単純な置換:
- 列を選択
- 「変換」タブ→「値の置換」
- 検索する値と置換後の値を入力
複数の置換を一括実行:
- 列を選択
- 右クリック→「値の置換」を複数回実行
- または、M言語で記述:
= Table.ReplaceValue(
前のステップ,
"1-1",
"1年1組",
Replacer.ReplaceText,
{"学年クラス"}
)
条件分岐での処理
カスタム列での条件分岐:
- 「列の追加」→「カスタム列」
- M言語で条件分岐:
if [出席率] >= 0.95 then "優良"
else if [出席率] >= 0.90 then "良好"
else if [出席率] >= 0.80 then "要注意"
else "要支援"
実践例: 欠損値の補完
// 欠損値をゼロで補完
= Table.ReplaceValue(
前のステップ,
null,
0,
Replacer.ReplaceValue,
{"遅刻回数"}
)
実践例: 異常値の削除
// 0〜100の範囲外を削除
= Table.SelectRows(
前のステップ,
each [テスト得点] >= 0 and [テスト得点] <= 100
)
3.2.3 クレンジングルールの文書化
クレンジング作業は、一度で終わりではありません。継続的に同じルールを適用する必要があります。
ルールの明文化
クレンジングルール文書のテンプレート:
# データクレンジングルール
## 対象データ: 出席データ
### ルール1: 学年クラス表記の統一
- **目的**: 学年クラスの表記を「N年N組」形式に統一
- **適用列**: 「学年クラス」列
- **変換ルール**:
- 「1-1」→「1年1組」
- 「1年A組」→「1年1組」
- 「G1C1」→「1年1組」
- **ツール**: Power Query の「値の置換」
- **実施者**: データ管理担当
- **実施日**: 毎月5日
### ルール2: 欠損値の補完
- **目的**: 遅刻回数の欠損値をゼロで補完
- **適用列**: 「遅刻回数」列
- **補完ルール**: 空欄(null)→ 0
- **根拠**: 遅刻回数が未記録の場合、遅刻なし(0回)と解釈
- **ツール**: Power Query の「値の置換」
- **実施者**: データ管理担当
### ルール3: 異常値の削除
- **目的**: テスト得点の異常値を除外
- **適用列**: 「テスト得点」列
- **異常値の定義**: 0〜100の範囲外
- **処理**: 該当行を削除し、別シートに記録
- **ツール**: Power Query のフィルタ
- **実施者**: データ管理担当
- **確認**: 教務主任が最終確認
変換前後のサンプル保存
クレンジングの影響を確認できるよう、変換前後のサンプルを保存:
| 生徒ID | 学年クラス(元) | 学年クラス(変換後) | 備考 |
|---|---|---|---|
| S001 | 1-1 | 1年1組 | ハイフン形式 |
| S002 | 1年A組 | 1年1組 | アルファベット形式 |
| S003 | G1C1 | 1年1組 | コード形式 |
作業手順書の作成
クレンジング作業を誰でも実施できるよう、手順書を作成:
手順書の例:
# 出席データ クレンジング手順書
## 実施頻度
毎月5日(前月分データのクレンジング)
## 所要時間
約20分
## 手順
### 1. 元データの取得
1. OneDrive/学校共有/データ収集/出席データ/元データ/ から最新のCSVファイルを取得
2. ファイル名を確認: attendance_YYYYMM.csv
### 2. Excelで開く
1. 新しいExcelファイルを開く
2. 「データ」→「データの取得」→「テキストまたはCSVから」
3. CSVファイルを選択
4. 「変換」をクリック(Power Queryエディターが開く)
### 3. クレンジング実行
#### 3.1 学年クラス列の置換
1. 「学年クラス」列を選択
2. 「変換」→「値の置換」
3. 以下を順次実行:
- 検索: 「-」 → 置換: 「年」
- 検索: 「A組」 → 置換: 「1組」
- (以下、ルール文書の通り)
#### 3.2 欠損値の補完
1. 「遅刻回数」列を選択
2. 「変換」→「値の置換」
3. 検索: null → 置換: 0
#### 3.3 異常値のフィルタ
1. 「テスト得点」列を選択
2. 「数値フィルター」→「次の値の間」
3. 0以上、100以下
### 4. データの読み込み
1. 「閉じて読み込む」→「閉じて次に読み込む」
2. 保存先: 既存のワークシート
3. OneDrive/学校共有/データ収集/出席データ/出席データ統合.xlsx に保存
### 5. 確認
- [ ] データ件数が期待値の範囲内
- [ ] 異常値が除外されている
- [ ] 学年クラス表記が統一されている
### 6. 完了報告
教務主任にメールで完了を報告
3.3 マスタデータの整備
マスタデータとは、組織で共通して使用する基準となるデータです。
3.3.1 必要なマスタデータ
教育現場で必要なマスタデータを整理します。
学年・クラスマスタ
目的:
- 学年・クラスの表記を統一
- 担任、教室番号等の付帯情報を管理
マスタデータの例:
| 学年クラスID | 学年 | クラス | 表記 | 担任教員ID | 教室番号 | 年度 |
|---|---|---|---|---|---|---|
| GC2024-1-1 | 1 | 1 | 1年1組 | T001 | 201 | 2024 |
| GC2024-1-2 | 1 | 2 | 1年2組 | T002 | 202 | 2024 |
| GC2024-2-1 | 2 | 1 | 2年1組 | T003 | 301 | 2024 |
OneDrive/SharePointでの管理:
- ファイル名:
マスタデータ_学年クラス_2024年度.xlsx - 保存先:
OneDrive/学校共有/マスタデータ/ - 更新タイミング: 年度初め、学級編成変更時
科目・単元マスタ
目的:
- 科目・単元の表記を統一
- 科目コード体系の確立
マスタデータの例:
| 科目コード | 科目名 | 科目名(略) | 単元コード | 単元名 | 学年 |
|---|---|---|---|---|---|
| SUBJ-MATH | 数学 | 数 | MATH-1-1 | 正の数・負の数 | 1 |
| SUBJ-MATH | 数学 | 数 | MATH-1-2 | 文字と式 | 1 |
| SUBJ-ENG | 英語 | 英 | ENG-1-1 | be動詞 | 1 |
コード体系の設計原則:
- 一意性: 重複しないコード
- 可読性: 人間が見て意味がわかる
- 拡張性: 将来の追加に対応できる
教員マスタ
目的:
- 教員の識別
- 担当科目、担任クラス等の管理
マスタデータの例:
| 教員ID | 氏名 | 担当科目コード | 担任クラスID | 役職 |
|---|---|---|---|---|
| T001 | 山田太郎 | SUBJ-MATH | GC2024-1-1 | 学年主任 |
| T002 | 佐藤花子 | SUBJ-ENG | GC2024-1-2 | - |
| T003 | 田中次郎 | SUBJ-MATH | GC2024-2-1 | 教務主任 |
個人情報保護の注意:
- 氏名は仮名化を検討(分析には教員IDのみ使用)
- アクセス権限を適切に設定
生徒マスタ(匿名化ID)
目的:
- 生徒の識別(ただし個人情報保護のため匿名化)
- 学年・クラスとの紐付け
マスタデータの例:
| 生徒ID | 学年クラスID | 性別 | 入学年度 | 備考 |
|---|---|---|---|---|
| S001 | GC2024-1-1 | 男 | 2024 | - |
| S002 | GC2024-1-1 | 女 | 2024 | - |
| S003 | GC2024-1-2 | 男 | 2024 | - |
重要:
- 氏名は含めない(個人情報保護)
- 生徒IDは、校務支援システムのIDとは別の匿名化IDを使用
- 匿名化IDと実名の対応表は、厳重に管理(別ファイル、アクセス制限)
3.3.2 マスタの作成と管理
統一コード体系の設計
コード設計の原則:
- 一意性: 重複しない
- 永続性: 一度割り当てたコードは変更しない
- 意味性: コードから意味が推測できる
- 拡張性: 将来の追加に対応
- シンプル性: 複雑すぎない
コード体系の例:
学年クラスID:
- 形式:
GC[年度]-[学年]-[クラス] - 例:
GC2024-1-1(2024年度1年1組)
科目コード:
- 形式:
SUBJ-[科目略称] - 例:
SUBJ-MATH(数学)
教員ID:
- 形式:
T[連番3桁] - 例:
T001
生徒ID(匿名化):
- 形式:
S[連番4桁] - 例:
S0001
命名規則の策定
マスタデータのファイル名、シート名、列名の命名規則を統一:
ファイル名:
- 形式:
マスタデータ_[種類]_[年度]年度.xlsx - 例:
マスタデータ_学年クラス_2024年度.xlsx
シート名:
- 簡潔でわかりやすく
- 例: 「学年クラス」「科目」「教員」
列名:
- 日本語またはローマ字
- スペース不使用(アンダースコア使用)
- 例: 「学年クラスID」「科目コード」
更新ルールの設定
更新タイミング:
| マスタ種類 | 更新タイミング | 担当者 |
|---|---|---|
| 学年クラス | 年度初め、学級編成変更時 | 教務主任 |
| 科目・単元 | 年度初め | 教務主任 |
| 教員 | 人事異動時 | 教務主任 |
| 生徒 | 入学・転入時 | 教務主任 |
更新手順:
- マスタファイルを開く
- 変更箇所を編集
- 変更履歴をシート「変更履歴」に記録
- ファイルを保存
- 関係者に通知
変更履歴の記録例:
| 変更日 | 変更者 | 変更内容 | 変更理由 |
|---|---|---|---|
| 2024/04/01 | 山田教務主任 | GC2024-1-3を追加 | 1年生クラス増 |
| 2024/04/15 | 山田教務主任 | T005の担任をGC2024-2-2に変更 | 担任変更 |
3.3.3 マスタとトランザクションデータの紐付け
キー項目の設計
トランザクションデータ(日々発生するデータ)とマスタデータを紐付けるためのキー項目を設計します。
トランザクションデータの例(出席データ):
| 記録日 | 生徒ID | 出席状況 | 遅刻 | 早退 |
|---|---|---|---|---|
| 2024/04/10 | S001 | 出席 | なし | なし |
| 2024/04/10 | S002 | 欠席 | - | - |
マスタデータ(生徒マスタ):
| 生徒ID | 学年クラスID | 性別 |
|---|---|---|
| S001 | GC2024-1-1 | 男 |
| S002 | GC2024-1-1 | 女 |
紐付け:
生徒IDをキーとして、出席データに学年クラスID、性別等の情報を付加できます。
リレーションシップの定義
Power BIやExcelのデータモデルでリレーションシップを定義:
リレーションシップの例:
出席データ[生徒ID] → 生徒マスタ[生徒ID] (多対1)
生徒マスタ[学年クラスID] → 学年クラスマスタ[学年クラスID] (多対1)
Excelでのリレーションシップ設定:
- 「データ」タブ→「リレーションシップ」
- 「新規」をクリック
- テーブルと列を選択
- リレーションシップを作成
Power Queryでの結合:
- 「ホーム」→「クエリのマージ」
- 結合するテーブルを選択
- キー列を選択(例: 生徒ID)
- 結合の種類を選択:
- 左外部: 出席データのすべての行を保持
- 内部: 両方に存在する行のみ
- 展開する列を選択
参照整合性の確保
参照整合性とは、トランザクションデータに存在する生徒IDが、必ず生徒マスタに存在することを保証する仕組みです。
問題例:
出席データに S999 という生徒IDがあるが、生徒マスタに存在しない。
原因:
- 入力ミス
- マスタ更新漏れ(転入生のマスタ登録忘れ)
検出方法:
Power Queryで「左外部結合」を使用し、マスタに存在しないIDを検出:
- 出席データと生徒マスタを左外部結合
- 生徒マスタ由来の列がnullの行をフィルタ
- マスタに存在しない生徒IDを特定
対策:
- マスタに欠けている生徒を追加
- または、入力ミスを修正
第3章のまとめ
この章では、データクレンジングとマスタ整備の実践的な方法を学びました。
学んだこと
1. よくあるデータ品質の問題
- 表記揺れ: 氏名、学年クラス、科目名の不統一
- 欠損値: 未入力項目、補完方法
- 異常値: 入力ミス、外れ値の検出と対応
- 日付・時刻: 和暦・西暦混在、形式不統一
2. データクレンジングの実践
- Excelでのクレンジング: TRIM、CLEAN、置換、条件付き書式
- Power Queryでのクレンジング: データ型統一、置換ルール、条件分岐
- クレンジングルールの文書化: ルールの明文化、変換サンプル、手順書
3. マスタデータの整備
- 必要なマスタ: 学年クラス、科目・単元、教員、生徒(匿名化ID)
- マスタの作成と管理: コード体系設計、命名規則、更新ルール
- 紐付け: キー項目設計、リレーションシップ、参照整合性
重要な原則
「ゴミを入れればゴミが出る(Garbage In, Garbage Out)」
どんなに優れた分析手法でも、データが汚れていたら正しい結果は得られません。データクレンジングとマスタ整備は、地味な作業ですが、データ利活用の成否を分ける重要なプロセスです。
次の章への準備
データがクレンジングされ、マスタも整備されたら、次は「データの統合と保管」(第4章)に進みます。
複数のデータソースを適切に統合し、OneDrive/SharePointやデータベースに保管する方法を学びます。
title: 第4章 データの統合と保管 - 収集したデータを一元管理する
第4章 データの統合と保管
第3章でデータクレンジングとマスタ整備を行いました。第4章では、複数のデータソースから収集したデータを統合し、適切に保管する方法を学びます。
この章で学ぶこと:
- データ統合の基本概念(垂直統合・水平統合)
- Power Queryを使った実践的な統合方法
- Microsoftエコシステムでの最適な保管場所の選択
- データ更新の継続的な運用方法
4.1 データ統合の基本
複数のデータソースから収集したデータを分析可能な形に統合します。
4.1.1 垂直統合(データの追加)
概念:
同じ形式のデータを時系列で追加していく統合方法です。
具体例:
毎月のテスト結果を1つのテーブルに統合する場合:
| 実施日 | 生徒ID | 科目 | 得点 |
|---|---|---|---|
| 2024-04-15 | S001 | 数学 | 85 |
| 2024-04-15 | S002 | 数学 | 92 |
| 2024-05-20 | S001 | 数学 | 88 |
| 2024-05-20 | S002 | 数学 | 95 |
注意点:
| 観点 | 対処方法 |
|---|---|
| 重複データの排除 | 一意キー(生徒ID + 実施日 + 科目)でチェック |
| データ形式の統一 | 列名、データ型を事前に揃える |
| 履歴データの保持 | 削除せず、フラグで管理(有効/無効) |
Excelでの実践:
// 重複チェック用の列を追加
=COUNTIFS($A$2:$A$100, A2, $B$2:$B$100, B2, $C$2:$C$100, C2) > 1
4.1.2 水平統合(項目の追加)
概念:
複数のデータソースを共通キーで結合し、項目を追加する統合方法です。
具体例:
テスト結果に生徒の属性情報を結合する場合:
テスト結果テーブル:
| 生徒ID | 科目 | 得点 |
|---|---|---|
| S001 | 数学 | 85 |
| S002 | 数学 | 92 |
生徒マスタ:
| 生徒ID | 学年 | クラス |
|---|---|---|
| S001 | 2年 | 1組 |
| S002 | 2年 | 1組 |
統合後:
| 生徒ID | 科目 | 得点 | 学年 | クラス |
|---|---|---|---|---|
| S001 | 数学 | 85 | 2年 | 1組 |
| S002 | 数学 | 92 | 2年 | 1組 |
JOINの種類:
| JOIN種類 | 説明 | 使用場面 |
|---|---|---|
| INNER JOIN | 両方に存在するデータのみ | マスタが完全に整備されている場合 |
| LEFT JOIN | 左テーブルのデータは全て保持 | トランザクションデータを基準にする場合 |
| FULL OUTER JOIN | 両方のデータを全て保持 | データの不一致を洗い出す場合 |
不一致データの扱い:
// マスタに存在しない生徒IDを検出
=IF(ISNA(VLOOKUP(A2, 生徒マスタ!$A$2:$C$100, 2, FALSE)), "マスタ未登録", "OK")
4.1.3 Power Queryでの統合実践
Power Queryを使うと、複数ファイルの統合を自動化できます。
複数ファイルの統合(垂直統合)
シナリオ:
OneDriveの「月次テスト結果」フォルダに、毎月のExcelファイルが保存されている。
月次テスト結果/
├── 2024年4月テスト.xlsx
├── 2024年5月テスト.xlsx
└── 2024年6月テスト.xlsx
Power Queryでの設定:
ステップ1: フォルダからデータを取得
- Excel → 「データ」タブ → 「データの取得」
- 「ファイルから」 → 「フォルダーから」(From Folder)を選択
- OneDrive/SharePointのフォルダパスを入力
- 「結合」 → 「結合と変換」(Combine & Transform)をクリック
ステップ2: サンプルファイルを選択
- 最初のファイルを選択
- 対象のシートまたはテーブルを選択
- 「OK」をクリック
ステップ3: データの整形
Power Query エディタで以下を確認:
// 自動生成されるM言語の例
let
ソース = Folder.Files("C:\Users\YourName\OneDrive\月次テスト結果"),
// 注: Folder.Filesは絶対パスが必要。サブフォルダも含めて全ファイルを取得
フィルター = Table.SelectRows(ソース, each Text.EndsWith([Name], ".xlsx")),
カスタム = Table.AddColumn(フィルター, "データ", each Excel.Workbook([Content])),
展開 = Table.ExpandTableColumn(カスタム, "データ", {"実施日", "生徒ID", "科目", "得点"}),
不要列削除 = Table.RemoveColumns(展開, {"Content", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"})
in
不要列削除
ステップ4: データ型の設定
| 列名 | データ型 |
|---|---|
| Name | テキスト |
| 実施日 | 日付 |
| 生徒ID | テキスト |
| 科目 | テキスト |
| 得点 | 整数 |
メリット:
- 新しいファイルを追加するだけで自動的に統合される
- 手動でのコピー&ペースト不要
- データ型や整形ルールが保持される
テーブルの結合(水平統合)
シナリオ:
テスト結果に生徒マスタの情報を結合する。
Power Queryでの設定:
ステップ1: 両方のテーブルを読み込む
- テスト結果テーブルをPower Queryで読み込み
- 生徒マスタテーブルをPower Queryで読み込み
ステップ2: クエリのマージ
- テスト結果クエリを選択
- 「ホーム」タブ → 「クエリのマージ」(Merge Queries)
- 結合キーを選択: 「生徒ID」
- 結合の種類を選択: 「左外部」(Left Outer)
- 「OK」をクリック
M言語の例:
let
テスト結果 = Excel.CurrentWorkbook(){[Name="テスト結果"]}[Content],
生徒マスタ = Excel.CurrentWorkbook(){[Name="生徒マスタ"]}[Content],
マージ = Table.NestedJoin(
テスト結果,
{"生徒ID"},
生徒マスタ,
{"生徒ID"},
"生徒マスタ",
1 // JoinKind.LeftOuter = 1 (左外部結合)
// その他: 0=Inner, 2=RightOuter, 3=FullOuter, 4=LeftAnti, 5=RightAnti
),
展開 = Table.ExpandTableColumn(
マージ,
"生徒マスタ",
{"学年", "クラス", "氏名"},
{"学年", "クラス", "氏名"}
)
in
展開
ステップ3: 必要な列を展開
- 結合されたテーブル列の右側にある展開アイコンをクリック
- 必要な列(学年、クラス、氏名等)を選択
- 「元の列名をプレフィックスとして使用」のチェックを外す
- 「OK」をクリック
結合後の検証:
// マスタに存在しない生徒IDを確認
= Table.SelectRows(展開, each [学年] = null)
クエリの再利用
パラメータクエリの作成:
- 「ホーム」タブ → 「パラメーターの管理」(Manage Parameters)
- 「新規」をクリック
- パラメータ名:
対象年度 - 種類: テキスト
- 既定値:
2024
クエリでパラメータを使用:
let
ソース = Folder.Files("OneDriveパス/月次テスト結果"),
フィルター = Table.SelectRows(
ソース,
each Text.Contains([Name], 対象年度) and Text.EndsWith([Name], ".xlsx")
)
in
フィルター
メリット:
- 年度を変更するだけで対象データを切り替え可能
- 複数のクエリで同じパラメータを共有
- 保守性の向上
4.2 データの保管場所
【重要な原則】
データ収集元はGoogle Workspace等のサービスを含みますが、分析用データの保存・管理は必ずMicrosoft製品/サービスを使用してください。これにより、Power BIとのシームレスな連携が可能になります。
4.2.1 Excelファイルでの保管
メリット:
| 項目 | 詳細 |
|---|---|
| 手軽さ | 追加のツール不要、すぐに始められる |
| コスト | Microsoft 365に含まれる(追加費用なし) |
| 柔軟性 | 自由な形式でデータを保存可能 |
| 可視化 | データと分析を同じファイルで管理 |
デメリット:
| 項目 | 詳細 |
|---|---|
| 容量制限 | 1,048,576行、16,384列まで |
| 同時編集制限 | 複数人での同時編集時にパフォーマンス低下 |
| 処理速度 | 大量データ(10万行以上)で遅延 |
| バージョン管理 | ファイル全体でのバージョン管理 |
適した規模:
- データ件数: 数千行〜数万行程度
- 更新頻度: 月次〜週次
- 利用者: 1〜数名
ベストプラクティス:
// ファイル命名規則の例
教育データ_2024年度_v1.0.xlsx
フォルダ構成:
教育データ/
├── 生データ/ // 収集した元データ(読み取り専用)
├── マスタデータ/ // 各種マスタ
├── 統合データ/ // クレンジング・統合済みデータ
└── 分析用/ // Agent Mode等で分析
【重要】Excelファイルの保存場所とセキュリティ:
教育データを含むExcelファイルは、必ずOneDrive for BusinessまたはSharePointに保存してください。ローカルPC、USBメモリ、個人のクラウドストレージ(Dropbox、Google Drive等)への保存は禁止です。
理由:
- Microsoft Purview 秘密度ラベルによる自動保護
- バージョン履歴による復元機能
- アクセス権限の一元管理
- 監査ログによる追跡可能性
- デバイス紛失時のリモート削除
4.2.2 SharePointリストでの保管
メリット:
| 項目 | 詳細 |
|---|---|
| 共有容易 | ブラウザからアクセス、権限管理が簡単 |
| バージョン管理 | アイテムごとの変更履歴 |
| 通知機能 | データ更新時の自動通知 |
| Power Automate連携 | ワークフローの自動化が容易 |
デメリット:
| 項目 | 詳細 |
|---|---|
| 5000アイテムのリストビュー閾値 | 1つのビューで5000件以上表示する場合に制限(インデックス設定やフォルダ分割で緩和可能。リスト自体は最大3000万件まで保存可能) |
| 複雑なクエリ不可 | SQLのような高度な検索は制限あり |
| データ型制限 | Excelほど柔軟なデータ型がない |
適した規模:
- データ件数: 数百行〜数千行
- 更新頻度: 日次〜リアルタイム
- 利用者: 複数人(5名以上)
SharePointリストの作成例:
生徒マスタリスト:
| 列名 | 種類 | 設定 |
|---|---|---|
| 生徒ID | 1行テキスト | 必須、一意 |
| 氏名 | 1行テキスト | 必須 |
| 学年 | 選択肢 | 1年/2年/3年 |
| クラス | 選択肢 | 1組/2組/3組/4組 |
| 入学年度 | 数値 | 必須 |
Power Automateでの追加:
トリガー: Microsoft Forms - When a new response is submitted(新しい応答が送信されるとき)
アクション: SharePoint - Create item(項目の作成)
サイトアドレス: [SharePointサイトURL]
リスト名: 生徒マスタ
生徒ID: [フォームの回答から]
氏名: [フォームの回答から]
学年: [フォームの回答から]
クラス: [フォームの回答から]
【重要】SharePointリストのセキュリティ設定:
SharePointリストに個人情報を含む教育データを保存する場合、以下のセキュリティ対策を必ず実施してください:
-
リストの権限設定:
- リスト設定 → 「このリストの権限」
- 親サイトからの権限の継承を停止
- 必要最小限のユーザー・グループにのみアクセス権を付与
-
アイテムレベルの権限(必要に応じて):
- リスト設定 → 「詳細設定」
- 「アイテムを表示できるユーザー」: 自分が作成したアイテムのみ
- 学級担任が自クラスの生徒データのみ閲覧可能にする設定
-
外部共有の無効化:
- サイト設定 → 「サイトの権限」 → 「共有の設定を変更」
- 「サイト所有者とメンバーが、ファイル、フォルダー、サイトを共有できるユーザー」を「組織内のユーザーのみ」に設定
-
監査ログの有効化:
- SharePoint管理センター → 「ポリシー」 → 「監査」
- リストへのアクセス・編集・削除を記録
4.2.3 OneDrive/SharePointでのExcel保管
メリット:
| 項目 | 詳細 |
|---|---|
| バージョン履歴 | ファイル全体の変更履歴(500バージョンまで) |
| 共同編集 | 複数人での同時編集が可能 |
| 自動保存 | 変更が自動的に保存される |
| Power BI連携 | 直接接続して自動更新 |
デメリット:
| 項目 | 詳細 |
|---|---|
| パフォーマンス | 大きなファイル(50MB以上)で同時編集時に遅延 |
| 競合 | 同時編集時の競合発生の可能性 |
適した規模:
- データ件数: 数万行〜10万行程度
- 更新頻度: 週次〜日次
- 利用者: 3〜10名程度
設定のベストプラクティス:
1. OneDrive for Business vs SharePoint:
| 用途 | 推奨 | 理由 |
|---|---|---|
| 個人作業 | OneDrive | 個人の作業領域、簡単な共有 |
| チーム作業 | SharePoint | チームサイト、権限管理が詳細 |
| 組織全体 | SharePoint | 部門・学年を超えた共有 |
2. フォルダ構成の例(SharePoint):
サイト: 教育データ管理
ドキュメントライブラリ:
├── 01_生データ/
│ ├── 2024年度/
│ │ ├── 04月/
│ │ ├── 05月/
│ │ └── 06月/
│ └── アーカイブ/
├── 02_マスタデータ/
│ ├── 生徒マスタ.xlsx
│ ├── 科目マスタ.xlsx
│ └── 教員マスタ.xlsx
├── 03_統合データ/
│ └── 統合データ_2024年度.xlsx
└── 04_分析用/
└── ダッシュボード用データ.xlsx
3. バージョン履歴の設定:
SharePointライブラリの設定:
- ライブラリ設定 → 「バージョン設定」
- 「ドキュメントのバージョン履歴」を有効化
- メジャーバージョンの保持数: 50(推奨)
- 「変更があった場合にコンテンツの承認を必須にする」: 有効(重要データの場合)
4. アクセス権限の設定:
| ロール | 権限レベル | 対象者 |
|---|---|---|
| フルコントロール | 全ての操作 | データ管理責任者(1〜2名) |
| 編集 | 読み取り・編集・削除 | 学年主任、情報担当教員 |
| 投稿 | 読み取り・新規追加・自分のアイテム編集 | 担任教員 |
| 読み取り | 閲覧のみ | 管理職、その他教員 |
5. 【必須】Microsoft Purview 秘密度ラベルによるデータ保護:
重要: SharePointやOneDriveに教育データ(個人情報を含む)を保存する場合、Microsoft Purview の秘密度ラベル(旧 Azure Information Protection)によるデータ保護を必ず設定してください。
秘密度ラベルとは:
Microsoft Purview Information Protection の機能で、ファイルに機密レベルを設定し、暗号化・アクセス制御・視覚的マーキング(ウォーターマークなど)を自動適用します。
教育データに推奨される秘密度ラベル設定例:
| ラベル名 | 保護レベル | 適用対象 | 設定内容 |
|---|---|---|---|
| 極秘 - 教育データ | 最高 | 生徒の個人情報、成績、家庭環境データ | 暗号化、組織内のみアクセス可、ウォーターマーク、外部共有禁止 |
| 社外秘 - 校内限定 | 高 | 学年・クラス統計、アンケート集計 | 暗号化、校内教職員のみアクセス可 |
| 内部用 | 中 | マスタデータ、手順書 | ウォーターマーク、外部共有時に警告 |
| 一般 | 低 | 公開可能な資料 | 保護なし |
SharePoint/OneDriveでの秘密度ラベル有効化手順:
ステップ1: Microsoft Purview ポータルで有効化
- Microsoft Purview コンプライアンスポータル(https://compliance.microsoft.com/)にアクセス
- 「情報保護」 → 「秘密度ラベル」を選択
- 「SharePointとOneDriveでOfficeファイルの秘密度ラベルを有効にする」が表示されたら「今すぐ有効にする」をクリック
- 有効化には約15分かかります
ステップ2: 秘密度ラベルの作成
- Microsoft Purview コンプライアンスポータル → 「秘密度ラベル」
- 「ラベルの作成」をクリック
- ラベル名を入力(例: 「極秘 - 教育データ」)
- スコープを選択: 「アイテム」にチェック → 「ファイル」と「メール」を選択
- 保護設定:
- 「暗号化を適用」: 有効
- 「今すぐアクセス許可を割り当てる」: 有効
- 「認証されたユーザー」: 組織内のユーザーとグループを指定
- 「コンテンツの有効期限」: 任意(データ保持ポリシーに従う)
- 視覚的マーキング:
- ヘッダー: 「極秘 - 教育データ」
- フッター: 「無断転載・外部持ち出し禁止」
- ウォーターマーク: 「機密」
- 「ラベルの作成」を完了
ステップ3: ラベルポリシーの公開
- 「ラベルポリシー」タブ → 「ラベルの公開」
- 公開する秘密度ラベルを選択
- 公開先: 「すべてのユーザーとグループ」または特定の部門(教職員グループ)
- ポリシー設定:
- 「ユーザーにラベルの適用を要求する」: 有効(推奨)
- 「既定でラベルを適用する」: 「内部用」など
- ポリシー名を入力して公開
ステップ4: SharePointライブラリに既定ラベルを設定
- SharePointサイト → ドキュメントライブラリ → 「設定」
- 「この場所のアイテムに既定の秘密度ラベルを適用する」
- 教育データフォルダには「極秘 - 教育データ」を選択
- 「保存」
秘密度ラベルの保護機能:
| 保護機能 | 説明 | 教育データへの効果 |
|---|---|---|
| 暗号化 | ファイル内容を暗号化、許可されたユーザーのみ閲覧可能 | 不正アクセス防止、情報漏洩リスク低減 |
| アクセス制御 | 誰が閲覧・編集・印刷・コピーできるかを制限 | 外部流出防止、用途外利用防止 |
| 視覚的マーキング | ヘッダー・フッター・ウォーターマークを自動付与 | 機密性の可視化、印刷時の抑止力 |
| 自動ラベル付け | 個人情報を含むファイルを自動検出してラベル適用 | 設定漏れ防止、一貫性確保 |
| 追跡と監査 | ファイルへのアクセス履歴を記録 | 不正アクセスの検知、監査対応 |
秘密度ラベルの運用ポイント:
【教職員向けガイドライン】
1. ファイル作成時に必ずラベルを選択
- 生徒情報を含む → 「極秘 - 教育データ」
- 学年集計のみ → 「社外秘 - 校内限定」
- 手順書・マニュアル → 「内部用」
2. ラベル変更時は上司に確認
- 「極秘」→「社外秘」への変更は管理者承認が必要
3. 暗号化されたファイルの共有
- 組織外との共有は原則禁止
- やむを得ない場合はデータ管理責任者に申請
4. ファイルダウンロード時の注意
- 暗号化は保持されるが、私用PCでの保存は禁止
- USBメモリへのコピーは自動的にブロック(DLP設定による)
注意事項:
- 秘密度ラベルを有効にするには、Microsoft 365 A3/A5 または Microsoft Purview Information Protection のライセンスが必要です
- ラベル設定の変更は既存ファイルに遡及適用されません(再保存が必要)
- Power BI での接続時、暗号化されたファイルは正しく認証されたアカウントでのみアクセス可能です
4.2.4 データベースでの保管
大規模データや複雑な分析が必要な場合はデータベースを検討します。
Microsoft Access
メリット:
| 項目 | 詳細 |
|---|---|
| リレーショナルDB | 正規化されたデータ構造 |
| クエリ機能 | SQLでの高度な検索 |
| フォーム・レポート | データ入力画面の作成 |
| コスト | Microsoft 365に含まれる |
デメリット:
| 項目 | 詳細 |
|---|---|
| 容量制限 | 2GBまで |
| 同時接続制限 | 10〜20人程度 |
| スキル要求 | SQLやDB設計の知識が必要 |
適した規模:
- データ件数: 10万行〜50万行
- 更新頻度: 日次〜リアルタイム
- 利用者: 5〜15名
テーブル設計例:
-- 生徒マスタ
CREATE TABLE 生徒マスタ (
生徒ID CHAR(8) PRIMARY KEY,
氏名 VARCHAR(50) NOT NULL,
学年 TINYINT NOT NULL,
クラス TINYINT NOT NULL,
入学年度 SMALLINT NOT NULL
);
-- テスト結果
CREATE TABLE テスト結果 (
結果ID INT PRIMARY KEY IDENTITY,
生徒ID CHAR(8) NOT NULL,
実施日 DATE NOT NULL,
科目コード CHAR(4) NOT NULL,
得点 TINYINT NOT NULL,
FOREIGN KEY (生徒ID) REFERENCES 生徒マスタ(生徒ID),
FOREIGN KEY (科目コード) REFERENCES 科目マスタ(科目コード)
);
SQL Server Express
メリット:
| 項目 | 詳細 |
|---|---|
| 無料 | 商用利用可能 |
| 堅牢性 | エンタープライズグレードのDB |
| 拡張性 | 有料版へのアップグレード可能 |
| Power BI連携 | ネイティブサポート |
デメリット:
| 項目 | 詳細 |
|---|---|
| 容量制限 | 10GBまで(Express版) |
| セットアップ | サーバー構築の知識が必要 |
| 運用負荷 | バックアップ、保守が必要 |
適した規模:
- データ件数: 50万行以上
- 更新頻度: リアルタイム
- 利用者: 15名以上
Azure SQL Database
メリット:
| 項目 | 詳細 |
|---|---|
| クラウド | サーバー管理不要 |
| スケーラビリティ | 必要に応じて容量・性能を拡張 |
| 高可用性 | 99.99%のSLA |
| セキュリティ | エンタープライズレベル |
デメリット:
| 項目 | 詳細 |
|---|---|
| コスト | 月額課金(最小構成で約¥500〜) |
| 学習コスト | Azure管理画面の操作が必要 |
適した規模:
- データ件数: 100万行以上
- 更新頻度: リアルタイム
- 利用者: 組織全体
Azure SQL Databaseのプラン例:
Azure SQL Databaseには2つの購入モデルがあります。
| 購入モデル | サービスティア | 最大DTU/vCore | 最大容量 | 適した用途 |
|---|---|---|---|---|
| DTUベース | Basic | 5 DTU | 2GB | 開発・テスト環境 |
| DTUベース | Standard | 3000 DTU | 1TB | 小〜中規模校 |
| DTUベース | Premium | 4000 DTU | 4TB | 大規模校 |
| vCoreベース | General Purpose | 最大128 vCore | 最大4TB | 柔軟な構成が必要な場合 |
| vCoreベース | Business Critical | 最大128 vCore | 最大4TB | 高性能・高可用性要求 |
注意: 価格は構成により大きく異なります。Azureポータルで見積もりを確認してください。
Power BIとの接続:
Power BI Desktop:
1. 「データを取得」 → 「Azure」 → 「Azure SQL Database」
2. サーバー名: [サーバー名].database.windows.net
3. データベース名: [データベース名]
4. データ接続モード: 「インポート」または「DirectQuery」
5. 認証: Microsoft アカウント(Azure AD)
4.3 データ更新の運用
データ収集の仕組みを作ったら、継続的に運用できる体制を整えます。
4.3.1 更新頻度の設定
データの鮮度要求の整理:
| データ種類 | 鮮度要求 | 推奨更新頻度 |
|---|---|---|
| 成績データ | 学期末 | 学期ごと(3ヶ月) |
| テスト結果 | テスト後数日 | テストごと(月次) |
| 出席データ | 毎日 | 日次 |
| アンケート結果 | 実施後即時 | リアルタイム |
| 生徒マスタ | 学期始め | 学期ごと |
システム負荷の考慮:
更新処理の実行タイミング:
- 業務時間外(例: 19:00〜翌7:00)
- システム利用が少ない時間帯
- 週末や長期休暇中
現実的な運用可能性:
| 頻度 | 必要な体制 | 維持可能性 |
|---|---|---|
| リアルタイム | 完全自動化(Level 3) | 高コスト、専門知識必要 |
| 日次 | 半自動化(Level 2) | 中コスト、定期確認必要 |
| 週次 | 半自動化(Level 2) | 中コスト、現実的 |
| 月次 | 手動でも可能(Level 1) | 低コスト、始めやすい |
4.3.2 更新作業の手順書
継続的に運用するには、誰でも作業できる手順書が必要です。
手順書の構成:
# データ更新手順書
## 1. 概要
- 目的: 月次テスト結果を統合データに追加
- 頻度: 月1回(テスト実施後3営業日以内)
- 所要時間: 約15分
- 担当者: 情報担当教員
## 2. 事前準備
- [ ] 校務支援システムからCSVをエクスポート済み
- [ ] エクスポートファイルが「生データ/YYYY年MM月/」フォルダに保存済み
- [ ] バックアップを取得済み
## 3. 手順
### ステップ1: Excelファイルを開く
1. OneDrive/SharePoint: 「教育データ管理」サイトを開く
2. 「03_統合データ」フォルダを開く
3. 「統合データ_2024年度.xlsx」を開く
4. 【スクリーンショット】ファイルを開いた状態
### ステップ2: データを更新
1. 「データ」タブ → 「すべて更新」をクリック
2. 更新完了まで待機(約3分)
3. 【スクリーンショット】更新完了メッセージ
### ステップ3: データを確認
1. 「統合テスト結果」シートを開く
2. 最新のデータが追加されているか確認
- 確認項目: 実施日が今月のデータが含まれているか
- 確認項目: データ件数が前月+今月分になっているか
3. 【スクリーンショット】確認すべき箇所
### ステップ4: 保存と共有
1. Ctrl + S で保存
2. Teams「データ活用チャネル」に完了報告を投稿
## 4. トラブル時の対処法
### エラー: 「データソースに接続できません」
- 原因: ファイルパスが変更された
- 対処: 「データ」タブ → 「データソースの設定」でパス修正
### エラー: 「列が見つかりません」
- 原因: CSVの列構成が変更された
- 対処: Power Queryエディタで列マッピング確認
### エラー: データ件数が異常に少ない/多い
- 原因: 元データの不備
- 対処: 情報担当教員に連絡、元データを確認
## 5. 問い合わせ先
- 担当者: 情報担当教員 田中先生
- 内線: 1234
- Email: tanaka@example.edu.jp
スクリーンショットの撮り方:
- Windows: Win + Shift + S で範囲を指定
- 重要な箇所を赤枠で囲む
- 番号を付けて順序を明確にする
4.3.3 更新の自動化
Power Automateでのスケジュール実行:
フロー例: 毎週月曜朝にSharePointリストのデータをExcelに統合
トリガー: Recurrence(繰り返し)
間隔: 1週間
曜日: 月曜日
時刻: 07:00
アクション1: SharePoint - Get items(複数の項目を取得)
サイトアドレス: [SharePointサイトURL]
リスト名: テスト結果リスト
フィルタークエリ: 実施日 ge '[先週の月曜日]'
アクション2: Apply to each(それぞれに適用)
※ SharePointから複数アイテムを取得した場合、自動的に追加されます
値の選択: [Get itemsの出力]
内部アクション: Excel Online (Business) - Add a row into a table(表に行を追加)
場所: SharePoint サイト
ドキュメント ライブラリ: ドキュメント
ファイル: 03_統合データ/統合データ_2024年度.xlsx
テーブル: 統合テスト結果
各列をマッピング:
実施日: [現在のアイテムの実施日]
生徒ID: [現在のアイテムの生徒ID]
科目: [現在のアイテムの科目]
得点: [現在のアイテムの得点]
アクション3: 完了時の通知(任意)
Send an email notification(メール通知の送信)
宛先: [管理者メールアドレス]
件名: データ更新完了
本文: @{length(body('Get_items')?['value'])} 件のデータを統合しました。
エラー通知の設定:
フローの設定:
- フロー編集画面 → 右上の「...」 → 「設定」
- 「実行の詳細設定」セクション
- 「フローが失敗した場合」 → 「メールで通知」を有効化
- 通知先メールアドレスを設定
ログの記録:
アクション: SharePoint - Create item(項目の作成)
サイトアドレス: [SharePointサイトURL]
リスト名: データ更新ログ
列のマッピング:
実行日時: utcNow()
フロー名: workflow()['tags']['flowDisplayName']
ステータス: 成功
処理件数: length(body('Get_items')?['value'])
備考: [任意のメモ]
SharePointリスト「データ更新ログ」:
| 列名 | 種類 | 用途 |
|---|---|---|
| 実行日時 | 日付と時刻 | フロー実行時刻 |
| フロー名 | 1行テキスト | どのフローか |
| ステータス | 選択肢 | 成功/失敗/警告 |
| 処理件数 | 数値 | 追加した行数 |
| 備考 | 複数行テキスト | エラー詳細等 |
監視ダッシュボード:
Power BIで更新ログを可視化:
- SharePointリスト「データ更新ログ」に接続
- 視覚化:
- 実行履歴(時系列グラフ)
- ステータス別集計(円グラフ)
- 処理件数の推移(折れ線グラフ)
- アラート設定: 失敗が2回連続したらメール通知
4.4 データ統合・保管のチェックリスト
最後に、適切にデータ統合と保管ができているか確認しましょう。
統合の品質:
- 重複データが排除されている
- データ型が統一されている(日付、数値、テキスト)
- NULL値の扱いが明確(空白 vs 0 vs NULL)
- マスタとの結合で不一致データが洗い出されている
- 履歴データが適切に保持されている
保管場所の適切性:
- データ規模に適した保管方法を選択している
- Power BIとの連携方法が確認できている
- アクセス権限が適切に設定されている
- バックアップ体制が整っている
- Microsoft製品/サービスで一元管理されている
セキュリティとコンプライアンス:
- Microsoft Purview 秘密度ラベルが有効化されている
- 教育データファイルに適切な秘密度ラベルが適用されている(極秘・社外秘等)
- SharePointライブラリに既定の秘密度ラベルが設定されている
- 外部共有が無効化されている(組織内のみ)
- SharePointリストの権限が適切に設定されている(最小権限の原則)
- 監査ログが有効化されている
- ローカルPC、USBメモリへの保存が禁止されている
- 暗号化されたファイルのPower BI接続が正しいアカウントで行われている
運用の継続可能性:
- 更新頻度が明確に定義されている
- 手順書が整備されている(スクリーンショット付き)
- 担当者以外でも作業可能な手順になっている
- エラー発生時の対処法が文書化されている
- 自動化できる部分は自動化している
次のステップ:
- 第5章でセキュリティとプライバシーを確認する
- 第6章で実践ケーススタディから学ぶ
- 第7章でAgent ModeやPower BIでの活用を計画する
まとめ
第4章では、データの統合と保管について学びました。
重要なポイント:
-
垂直統合と水平統合
- 垂直統合: 時系列でデータを追加
- 水平統合: 複数データソースを結合
-
Power Queryでの自動化
- フォルダからの一括読み込み
- クエリのマージで結合
- パラメータで再利用性向上
-
保管場所の選択
- 小規模: Excel(OneDrive/SharePoint)
- 中規模: SharePointリスト、Access
- 大規模: SQL Server、Azure SQL Database
-
継続的な運用
- 更新頻度の明確化
- 手順書の整備
- 自動化とエラー通知
-
【最重要】セキュリティとデータ保護
- Microsoft Purview 秘密度ラベルの必須設定
- SharePoint/OneDriveへの保存必須(ローカルPC・USB禁止)
- 暗号化、アクセス制御、監査ログ
- 教育データには「極秘」レベルのラベルを適用
セキュリティに関する重要な注意:
本章で説明したOneDrive、SharePoint、SharePointリストにデータを保存する場合、Microsoft Purview の秘密度ラベル(旧 Azure Information Protection)によるデータ保護は必須です。個人情報を含む教育データを適切に保護せずに保存することは、情報漏洩のリスクを高め、個人情報保護法違反の可能性があります。
必ず4.2.3のセクション5「【必須】Microsoft Purview 秘密度ラベルによるデータ保護」を実施してください。
次の第5章では、教育データを扱う上で最も重要な「プライバシーとセキュリティ」について、より詳しく学びます。
title: 第5章 プライバシーとセキュリティ - 教育データを安全に扱うために
第5章 プライバシーとセキュリティ
教育データには、児童生徒の氏名、成績、出席状況、家庭環境など、極めて機密性の高い個人情報が含まれます。第5章では、文部科学省「教育情報セキュリティポリシーガイドライン」(令和7年3月改定版)に準拠し、これらのデータを安全に収集・管理・活用するための原則と実践的な方法を学びます。
この章で学ぶこと:
- 教育データに含まれる個人情報の種類と法的根拠(重要性分類Ⅰ、Ⅱ、Ⅲ)
- 組織体制(CISO、統括教育情報セキュリティ責任者等)と研修・訓練
- データの匿名化手法と実践方法
- アクセス制御、バックアップ、Microsoft 365でのセキュリティ設定
- データ保持期間と安全な廃棄方法
- 監査・自己点検とインシデント対応
【最重要】第4章で学んだMicrosoft Purview 秘密度ラベルは、この章の内容を実現するための中核技術です。
参考資料:
5.1 個人情報保護の基本
5.1.1 教育データに含まれる個人情報
教育現場で扱うデータは、個人情報保護法における「個人情報」および「要配慮個人情報」に該当します。
個人情報の分類
1. 識別情報(基本的個人情報)
| 情報種別 | 具体例 | 法的分類 |
|---|---|---|
| 氏名 | 児童生徒氏名、保護者氏名 | 個人情報 |
| 生年月日 | 生年月日、年齢 | 個人情報 |
| 住所・連絡先 | 住所、電話番号、メールアドレス | 個人情報 |
| 学籍番号 | 出席番号、生徒ID | 個人情報(個人識別符号に該当する場合あり) |
| 写真・映像 | 顔写真、活動写真、動画 | 個人情報 |
2. 要配慮個人情報
個人情報保護法第2条第3項に定められる、特に慎重な取り扱いが必要な情報:
| 情報種別 | 具体例 | 取得時の注意 |
|---|---|---|
| 人種・信条 | 国籍、宗教 | 原則取得禁止(法令に基づく場合等を除く) |
| 病歴・健康情報 | 既往歴、アレルギー、服薬情報、医師等による指導・診療・調剤の事実 | 本人同意が必要 |
| 障がい | 特別支援の必要性、障がい手帳 | 本人同意が必要 |
| 犯罪歴 | 非行歴、補導歴 | 極めて慎重な取り扱い |
| 犯罪により害を被った事実 | いじめ被害、暴力被害、犯罪被害等 | 極めて慎重な取り扱い |
| 少年法に関する事項 | 少年事件、家庭裁判所の処分、保護処分歴等 | 極めて慎重な取り扱い |
3. 教育現場特有のセンシティブ情報
法的には「要配慮個人情報」に該当しない場合もありますが、教育現場では慎重な取り扱いが求められる情報:
| 情報種別 | 具体例 | リスク |
|---|---|---|
| 成績・評価 | テスト得点、通知表評価、偏差値 | プライバシー侵害、差別・いじめにつながる |
| 出席状況 | 欠席日数、遅刻・早退記録 | 家庭環境の推測、スティグマ |
| 生活状況 | 家庭環境、経済状況、保護者の職業 | プライバシー侵害、差別 |
| 問題行動 | 指導記録、懲戒記録、カウンセリング記録 | 風評被害、進学・就職への影響 |
| 進路情報 | 進路希望、受験結果 | プライバシー侵害 |
複数情報の組み合わせによる個人特定のリスク
単体では個人を特定できない情報でも、複数の情報を組み合わせることで個人が特定されるケースがあります。
例: 小規模校での匿名化の限界
【公開した情報】
- 学年: 3年生
- クラス: 1組
- 性別: 女性
- テスト得点: 95点
【問題】
3年1組の女子生徒が3名しかいない場合、95点を取った生徒が誰か推測可能
対策: k-匿名性の考え方(後述)を適用し、個人特定リスクを低減
文科省ガイドラインにおける重要性分類
本章の内容は、文部科学省「教育情報セキュリティポリシーガイドライン」(令和7年3月改定版)の重要性分類に準拠しています。
参照: 教育情報セキュリティポリシーガイドライン(令和7年3月改定版)
重要性分類の定義:
| 重要性分類 | 定義 | 主な例 | 本章での対応 |
|---|---|---|---|
| Ⅰ | セキュリティ侵害が教職員又は児童生徒の生命、財産、プライバシー等へ重大な影響を及ぼす。要配慮個人情報を含む。 | ・健康診断票 ・指導要録原本 ・教職員の人事記録 ・犯罪の経歴、犯罪により害を被った事実 ・少年法に関する事項を含む指導記録 |
Microsoft Purview秘密度ラベル「極秘 - 教育データ」を適用 |
| Ⅱ | 学校事務及び教育活動の実施に重大な影響を及ぼす。要配慮個人情報を含まない。 | ・通知表 ・定期テスト採点結果 ・教職員および児童生徒の基本情報 ・養護教諭・スクールカウンセラー等による記録(要配慮個人情報を含まないもの) |
秘密度ラベル「社外秘 - 校内限定」を適用 |
| Ⅲ | 学校事務及び教育活動の実施に影響を及ぼす。(Ⅱ以上を除く) | ・職員会議資料 ・座席表 ・児童生徒委員会名簿 ・学校行事計画 |
秘密度ラベル「内部用」を適用 |
重要なポイント:
-
要配慮個人情報はすべて重要性分類Ⅰに該当します。本章で挙げた要配慮個人情報(病歴、犯罪歴、犯罪により害を被った事実、少年法に関する事項等)を含むデータは、最高レベルのセキュリティ対策が必要です。
-
健康情報の区分に注意が必要です。
- 医師等による指導・診療・調剤の事実等を含む → 重要性分類Ⅰ(健康診断票等)
- 上記を含まない → 重要性分類Ⅱ(養護教諭の一般的な記録等)
-
指導記録の区分にも注意が必要です。
- 犯罪の経歴、犯罪により害を被った事実、少年法に関する事項を含む → 重要性分類Ⅰ
- 上記を含まない一般的な指導記録 → 重要性分類Ⅱ
5.1.2 法的根拠と遵守すべき規則
教育データを扱う際に遵守すべき主な法令・規則:
個人情報保護法(令和3年改正)
主な規定:
| 条項 | 内容 | 教育現場での具体例 |
|---|---|---|
| 第18条 | 利用目的の特定 | データ収集時に「学習指導のため」等を明示 |
| 第21条 | 目的外利用の禁止 | 成績データを進学指導以外に使用してはいけない |
| 第23条 | 第三者提供の制限 | 保護者の同意なく他機関に提供してはいけない |
| 第27条 | 漏えい等の報告 | データ漏洩時は個人情報保護委員会に報告義務 |
| 第32条 | 開示請求への対応 | 本人(保護者)から請求があれば開示 |
罰則:
- 個人情報データベース等の不正提供: 1年以下の懲役または50万円以下の罰金
- 委員会からの命令違反: 1年以下の懲役または100万円以下の罰金
学校教育法・学校保健安全法
| 法令 | 関連条項 | 教育データへの影響 |
|---|---|---|
| 学校教育法 | 第28条(指導要録) | 学籍・成績の記録保存義務(20年間) |
| 学校保健安全法 | 第13条(健康診断) | 健康診断票の作成・保存義務(5年間) |
自治体の個人情報保護条例
多くの自治体で独自の個人情報保護条例が制定されています。
確認すべき事項:
- 個人情報の定義(国の個人情報保護法と異なる場合がある)
- 利用・提供の制限
- 安全管理措置の基準
- 罰則規定
例: 東京都個人情報保護条例の特徴
- 収集の制限: 思想・信条・宗教に関する個人情報の原則収集禁止
- 外部委託時の措置: 委託先の監督義務
教育情報セキュリティポリシーガイドラインの適用
文部科学省「教育情報セキュリティポリシーガイドライン」(令和7年3月改定版)は、地方公共団体の設置する学校(公立学校)を対象としていますが、私立学校や国立大学附属学校においても参照することが推奨されています。
注意事項:
- 公立学校: 個人情報保護法第5章(公的規律)が適用
- 私立学校(株立含む): 個人情報保護法第4章(民間規律)が適用
- 国立大学附属学校: 規律内容によって第4章または第5章が適用
設置者によって準拠する法令が異なるため、個人情報保護に係る規定を参照する際には留意が必要です。
校内の個人情報取扱規程
各学校で策定されるべき規程:
策定すべき内容:
-
個人情報の範囲と分類
- 個人情報、要配慮個人情報の定義
- 文科省ガイドラインの重要性分類(Ⅰ、Ⅱ、Ⅲ)に準拠した分類
-
組織体制と責任者
- 最高情報セキュリティ責任者(CISO: Chief Information Security Officer): 副市長等、全ての教育ネットワーク・教育情報システム等の情報資産の管理及び情報セキュリティ対策に関する最終決定権限と責任を有する
- 統括教育情報セキュリティ責任者: 教育長、副教育長等(CISOを補佐し、CISO不在時には権限を代行)
- 教育情報セキュリティ責任者: 教育委員会の各課長等
- 教育情報セキュリティ管理者: 校長等(学校における情報セキュリティ対策の実施責任者)
- 情報セキュリティ委員会: CISO、統括教育情報セキュリティ責任者等で構成、情報セキュリティに関する重要事項を決定
-
安全管理措置(個人情報保護法第66条第1項に基づく義務)
- 物理的安全管理(施錠、入退室管理、管理区域の設定)
- 技術的安全管理(アクセス制御、暗号化、ログ記録)
- 人的安全管理(教職員研修、誓約書、守秘義務)
- 組織的安全管理(取扱規程、監査、委託先管理)
-
事故発生時の対応
- 報告ルート(教育委員会、個人情報保護委員会)
- 被害拡大防止措置
- 本人への通知
- 再発防止策の策定
テンプレート例:
## 〇〇学校 個人情報保護規程
### 第1条(目的)
本規程は、〇〇学校(以下「本校」という)における個人情報の適切な取り扱いに関し必要な事項を定めることを目的とする。
### 第2条(定義)
本規程において「個人情報」とは、個人情報保護法第2条第1項に定める個人情報をいう。
### 第3条(個人情報管理責任者)
1. 本校に個人情報管理責任者を置く。
2. 個人情報管理責任者は校長をもって充てる。
### 第4条(取り扱いの原則)
個人情報は、次の原則に基づき取り扱う。
(1) 利用目的を明確にし、その目的の範囲内で利用する
(2) 適法かつ適正な方法により取得する
(3) 正確かつ最新の内容に保つ
(4) 安全管理のための必要な措置を講じる
(5) 本人の権利を尊重する
### 第5条(安全管理措置)
...
5.1.3 情報セキュリティ研修・訓練
文科省ガイドラインでは、CISOが定期的に情報セキュリティに関する研修・訓練を実施することを義務付けています。
研修計画の策定
必須要件:
-
受講機会の確保: 全教職員が毎年度最低1回は情報セキュリティ研修を受講できるようにする
-
役割に応じた研修内容:
- CISO、統括教育情報セキュリティ責任者: 経営層向けセキュリティマネジメント研修
- 教育情報セキュリティ管理者(校長等): 管理者向けインシデント対応研修
- 教育情報システム管理者・担当者: 技術的セキュリティ対策研修
- 一般教職員: 基本的な情報セキュリティ研修(個人情報保護、パスワード管理、フィッシング対策等)
-
実施方法: e-ラーニング、集合研修、説明会等を組み合わせる
-
情報セキュリティ委員会への報告: CISOは毎年度1回、研修実施状況を報告
緊急時対応訓練
訓練内容:
- ランサムウェア感染を想定した訓練
- 個人情報漏洩発生時の報告・対応訓練
- 不正アクセス検知時の初動対応訓練
実施頻度: 年1回以上(推奨)
研修実施例
基本研修(全教職員対象・年1回・30分):
- 個人情報保護法と教育データの取り扱い
- Microsoft Purview 秘密度ラベルの適用方法
- フィッシングメールの見分け方
- パスワード管理とMFA(多要素認証)
- USBメモリ使用禁止の徹底
- インシデント発見時の報告手順
管理者研修(校長・教頭対象・年1回・60分):
- 情報セキュリティインシデント対応フロー
- 教育委員会への報告義務
- 個人情報保護委員会への報告基準
- メディア対応の基本
5.2 データの匿名化
個人情報を含むデータを分析・公表する際は、個人が特定されないよう「匿名化」を行う必要があります。
5.2.1 匿名化の手法
1. 仮名化(Pseudonymization)
定義: 氏名などの識別情報を、ランダムなIDや符号に置き換える手法
方法:
| 元データ | 仮名化後 | 備考 |
|---|---|---|
| 山田太郎 | S001 | 生徒ID(連番) |
| 佐藤花子 | S002 | 生徒ID(連番) |
| 鈴木一郎 | S003 | 生徒ID(連番) |
Excelでの実践:
// 生徒IDを自動生成
=TEXT(ROW(A2)-1, "S000")
// 結果: S001, S002, S003...
対応表の管理:
仮名化したデータと元データを紐付ける「対応表」は、厳重に管理する必要があります。
| 生徒ID | 氏名 | 学年 | クラス |
|---|---|---|---|
| S001 | 山田太郎 | 2年 | 1組 |
| S002 | 佐藤花子 | 2年 | 1組 |
保管方法:
- 対応表は別ファイルで管理
- Microsoft Purview 秘密度ラベル「極秘」を適用
- アクセス権限は管理責任者のみに制限
- SharePointの専用フォルダに保存(外部共有禁止)
2. 一般化(Generalization)
定義: 詳細な情報をより大きなカテゴリーに置き換える手法
例:
| 元データ | 一般化後 | 粒度 |
|---|---|---|
| 生年月日: 2010年4月15日 | 2010年度生まれ | 年度単位 |
| 年齢: 13歳 | 10代 | 年代単位 |
| 住所: 東京都新宿区西新宿1-1-1 | 東京都新宿区 | 区単位 |
| テスト得点: 87点 | 80点台 | 10点刻み |
適用シーン:
- 統計資料の公表
- 保護者向けレポート
- 研究データの提供
Excelでの実践:
// 得点を10点刻みに一般化
=FLOOR(C2, 10) & "点台"
// 年齢を年代に一般化
=FLOOR(D2, 10) & "代"
3. トップコーディング・ボトムコーディング
定義: 極端に高い値・低い値を一定の閾値で置き換える手法
目的: 外れ値から個人が特定されるのを防ぐ
例:
| 元データ(欠席日数) | トップコーディング後 |
|---|---|
| 0日 | 0日 |
| 5日 | 5日 |
| 48日(最大値) | 30日以上 |
| 52日 | 30日以上 |
適用例:
- 欠席日数が極端に多い生徒(不登校等)の特定を防ぐ
- テスト得点が極端に低い生徒の特定を防ぐ
Excelでの実践:
// 欠席日数30日以上を「30日以上」に変換
=IF(E2>=30, "30日以上", E2)
// テスト得点20点未満を「20点未満」に変換
=IF(F2<20, "20点未満", F2)
4. ノイズ付加(Noise Addition)
定義: 元データに小さなランダム値を加える手法
目的: 統計的な傾向は保ちつつ、個別データの正確な値を隠す
例:
| 元データ(身長cm) | ノイズ付加後 |
|---|---|
| 152.3 | 152.3 + (-1〜+1の乱数) = 151.5 |
| 165.8 | 165.8 + (-1〜+1の乱数) = 166.2 |
注意: ノイズが大きすぎると統計的な有用性が失われる
Excelでの実践:
// ±1cmのノイズを付加
=G2 + (RAND()*2 - 1)
// 小数点第1位に丸める
=ROUND(G2 + (RAND()*2 - 1), 1)
5.2.2 k-匿名性の考え方
定義: データセット内の任意のレコードが、少なくともk個の他のレコードと識別不可能であることを保証する基準
k=5の例:
あるデータセットで「学年」「性別」「地区」の組み合わせを見たとき、同じ組み合わせが最低5件以上存在する状態。
k-匿名性の実践例
元データ(k=1の状態):
| 生徒ID | 学年 | 性別 | 地区 | テスト得点 |
|---|---|---|---|---|
| S001 | 3年 | 男 | A地区 | 85 |
| S002 | 3年 | 女 | B地区 | 92 |
| S003 | 2年 | 男 | A地区 | 78 |
| S004 | 2年 | 男 | A地区 | 81 |
| S005 | 2年 | 男 | A地区 | 88 |
問題点: S002(3年・女・B地区)は1件しかなく、個人が特定される
k=2以上に改善(一般化を適用):
| 生徒ID | 学年 | 性別 | 地区 | テスト得点 |
|---|---|---|---|---|
| S001 | 2-3年 | 男 | A-B地区 | 85 |
| S002 | 2-3年 | 女 | A-B地区 | 92 |
| S003 | 2-3年 | 男 | A-B地区 | 78 |
| S004 | 2-3年 | 男 | A-B地区 | 81 |
| S005 | 2-3年 | 男 | A-B地区 | 88 |
改善結果: どのレコードも複数の個人候補が存在し、個人特定が困難に
小規模校でのk-匿名性確保の工夫
課題: 全校児童150名の小学校では、学年・クラスで絞り込むと個人特定リスクが高い
対策:
| 公表データの粒度 | k値 | 対策 |
|---|---|---|
| 学年・クラス別 | k=25程度 | そのまま公表可能 |
| 学年別・性別 | k=12程度 | 慎重に判断(場合によっては性別を除外) |
| 特定のクラス・性別 | k=3程度 | 公表不可(個人特定リスク大) |
小規模校での推奨手法:
- 学年をまとめる(低学年・中学年・高学年)
- 性別の情報を除外
- 複数年度のデータを統合
5.2.3 匿名化の実践
Excelでの匿名化ワークフロー
ステップ1: 元データの準備
元データ(生徒マスタ.xlsx):
| 氏名 | 生年月日 | 学年 | クラス | 性別 | 住所 |
|---|---|---|---|---|---|
| 山田太郎 | 2010/4/15 | 2年 | 1組 | 男 | 東京都新宿区... |
| 佐藤花子 | 2010/5/20 | 2年 | 1組 | 女 | 東京都渋谷区... |
ステップ2: 仮名化テーブルの作成
新しいシート「仮名化対応表」を作成:
// A列: 元の氏名
// B列: 生徒ID(自動生成)
=TEXT(ROW()-1, "S000")
| 氏名 | 生徒ID |
|---|---|
| 山田太郎 | S001 |
| 佐藤花子 | S002 |
ステップ3: 匿名化データの作成
新しいシート「匿名化データ」を作成:
// 生徒IDで結合(VLOOKUP)
=VLOOKUP(A2, 仮名化対応表!$A$2:$B$100, 2, FALSE)
// 生年月日 → 年度に一般化
=YEAR(B2) & "年度生まれ"
// 住所 → 区のみに一般化
=LEFT(F2, FIND("区", F2))
完成した匿名化データ:
| 生徒ID | 生年月日 | 学年 | クラス | 性別 | 住所 |
|---|---|---|---|---|---|
| S001 | 2010年度生まれ | 2年 | 1組 | 男 | 東京都新宿区 |
| S002 | 2010年度生まれ | 2年 | 1組 | 女 | 東京都渋谷区 |
ステップ4: 対応表の保護
- 「仮名化対応表」シートを非表示に設定
- シートの保護: レビュー → シートの保護 → パスワード設定
- ファイル全体に秘密度ラベル「極秘 - 教育データ」を適用
- SharePointの制限されたフォルダに保存
Power Queryでの匿名化自動化
複数ファイルを匿名化する場合、Power Queryで自動化できます。
let
元データ = Excel.CurrentWorkbook(){[Name="生徒データ"]}[Content],
仮名化テーブル = Excel.CurrentWorkbook(){[Name="仮名化対応表"]}[Content],
// 氏名を生徒IDに置換
IDマージ = Table.NestedJoin(
元データ,
{"氏名"},
仮名化テーブル,
{"氏名"},
"仮名化",
JoinKind.LeftOuter
),
ID展開 = Table.ExpandTableColumn(IDマージ, "仮名化", {"生徒ID"}),
// 氏名列を削除
氏名削除 = Table.RemoveColumns(ID展開, {"氏名"}),
// 生年月日を年度に一般化
年度化 = Table.AddColumn(
氏名削除,
"生年月度",
each Number.ToText(Date.Year([生年月日])) & "年度生まれ"
),
生年月日削除 = Table.RemoveColumns(年度化, {"生年月日"}),
// 住所を区のみに一般化
区抽出 = Table.AddColumn(
生年月日削除,
"区",
each Text.BeforeDelimiter([住所], "区") & "区"
),
住所削除 = Table.RemoveColumns(区抽出, {"住所"})
in
住所削除
匿名化データの検証チェックリスト
匿名化後、以下の項目を確認します。
- 氏名、生年月日などの直接識別情報が削除されている
- 生徒IDなどの仮名が適切に割り当てられている
- k-匿名性の基準(k≥5を推奨)を満たしている
- 外れ値にトップ/ボトムコーディングが適用されている
- 小規模集団(n<5)のデータが公表されていない
- 対応表が安全に保管されている(秘密度ラベル適用、アクセス制限)
- 匿名化の方法が文書化されている
5.3 アクセス制御とセキュリティ
5.3.1 誰がどのデータにアクセスできるか
教育データへのアクセスは「必要最小限の原則」に基づき、職務上必要な範囲に限定します。
ロールベースのアクセス制御(RBAC)
基本的なロール定義:
| ロール | アクセス範囲 | 対象者 | 権限 |
|---|---|---|---|
| データ管理責任者 | 全データ | 校長、教頭 | フルコントロール(閲覧・編集・削除・権限設定) |
| データ管理者 | 全データ | 教務主任、情報担当 | 編集(閲覧・編集・削除) |
| 学年管理者 | 担当学年のデータ | 学年主任 | 編集(担当学年のみ) |
| 学級担任 | 担当クラスのデータ | 担任教員 | 閲覧・一部編集(担当クラスのみ) |
| 教科担当 | 担当科目の成績データ | 教科担当教員 | 閲覧・成績入力のみ |
| 閲覧者 | 集計データのみ | その他教職員、管理職 | 閲覧のみ(個人情報を含まない集計データ) |
SharePointでのロール実装
サイト構成:
教育データ管理サイト/
├── 全校データ/
│ ├── 生徒マスタ.xlsx(管理責任者・管理者のみ)
│ └── 統合データ.xlsx(管理責任者・管理者のみ)
├── 1学年データ/
│ └── 1学年分析.xlsx(管理責任者・管理者・1学年主任・1学年担任)
├── 2学年データ/
│ └── 2学年分析.xlsx(管理責任者・管理者・2学年主任・2学年担任)
└── 集計レポート/
└── 月次レポート.xlsx(全教職員・閲覧のみ)
権限設定手順:
- SharePointサイト → 設定(歯車アイコン) → サイトの権限
- 「権限の継承を停止」をクリック
- 「アクセス許可の付与」で各ロールに対応するグループを追加:
| SharePoint権限レベル | 対象グループ | 説明 |
|---|---|---|
| フル コントロール (Full Control) | データ管理責任者 | サイト、リスト、アイテムの完全な制御 |
| 編集 (Edit) | データ管理者 | リストの追加、編集、削除が可能 |
| 投稿 (Contribute) | 学年主任 | リストアイテムの表示、追加、更新、削除が可能 |
| 読み取り (Read) | 担任教員 | ページ、リストアイテム、ドキュメントの表示のみ |
| 表示のみ (View Only) | 閲覧者 | ページ、リストアイテム、ドキュメントの表示のみ(ダウンロード不可) |
フォルダ単位での権限分離:
- フォルダ(例: 1学年データ)を右クリック → 「アクセス許可の管理」
- 「権限の継承を停止」
- 不要なユーザー・グループを削除
- 1学年主任・1学年担任グループを追加
アクセスログの記録
SharePoint監査ログの有効化:
- Microsoft Purview コンプライアンスポータル → 「監査」
- 「監査の有効化」をクリック
- 記録されるイベント:
- ファイルのアクセス(閲覧)
- ファイルのダウンロード
- ファイルの編集
- ファイルの削除
- 権限の変更
監査ログの保持期間:
Microsoft 365のライセンスによって、監査ログの保持期間が異なります。
| ライセンス | 保持期間 | 対象サービス |
|---|---|---|
| Microsoft 365 E5/A5/G5 | 1年間(デフォルト) | Microsoft Entra ID、Exchange、SharePoint、OneDrive |
| Microsoft 365 E3/A3/G3等(非E5) | 180日間(デフォルト) | 全サービス |
| 10年監査ログ保持アドオン | 10年間 | カスタム監査ログ保持ポリシーで設定 |
重要: 2023年10月17日以降、Audit (Standard)の保持期間が90日から180日に変更されました。
監査ログの確認方法:
Microsoft Purview コンプライアンスポータル → 監査 → 検索
フィルター条件:
- アクティビティ: ファイルのアクセス、ファイルのダウンロード
- サイト: https://contoso.sharepoint.com/sites/SchoolData
- ユーザー: (特定のユーザーを指定可能)
- 日付範囲: 最大180日間(E3ライセンス)または1年間(E5ライセンス)
レポート例:
| 日時 | ユーザー | アクティビティ | ファイル名 | IPアドレス |
|---|---|---|---|---|
| 2024/11/15 09:30 | tanaka@school.edu.jp | ファイルのアクセス | 統合データ.xlsx | 192.168.1.100 |
| 2024/11/15 10:15 | satou@school.edu.jp | ファイルのダウンロード | 1学年分析.xlsx | 192.168.1.105 |
不審なアクセスの検知:
- 勤務時間外のアクセス
- 通常と異なるIPアドレスからのアクセス
- 大量のファイルダウンロード
- 権限のないファイルへのアクセス試行
5.3.2 データの保管場所のセキュリティ
第4章で詳しく説明したMicrosoft Purview 秘密度ラベルを中心に、多層的なセキュリティ対策を実施します。
必須のセキュリティ対策(復習)
1. Microsoft Purview 秘密度ラベルの適用
すべての教育データファイルに適切な秘密度ラベルを適用します。秘密度ラベルは、以下の特徴を持ちます。
- カスタマイズ可能: 組織のニーズに応じて分類を作成
- クリアテキスト: ラベルはファイルのメタデータに平文で保存され、サードパーティアプリも読み取り可能
- 永続的: ファイルがどこに保存されても、ラベルはコンテンツと共に保持される
| データ種類 | 推奨ラベル | 保護内容 |
|---|---|---|
| 生徒個人情報、成績、健康情報 | 極秘 - 教育データ | 暗号化、アクセス制限、ウォーターマーク、外部共有禁止 |
| 学年・クラス統計 | 社外秘 - 校内限定 | 暗号化、校内教職員のみアクセス可 |
| マニュアル、手順書 | 内部用 | ウォーターマーク、外部共有時に警告 |
| 公開可能資料 | 一般 | 保護なし |
秘密度ラベルでできること:
- 暗号化によるアクセス制御: 特定のユーザーやグループのみアクセス可能にする
- コンテンツマーキング: ヘッダー、フッター、ウォーターマークを自動追加
- コンテナの保護: Teams、Microsoft 365グループ、SharePointサイトの保護設定
- 自動適用または推奨: 機密情報を検出して自動的にラベル付け
2. OneDrive/SharePointへの保存必須
- ローカルPC、USBメモリ、個人クラウド(Dropbox、Google Drive等)への保存は禁止
- すべてOneDrive for Business または SharePoint に保存
なぜGoogle Driveやその他の個人クラウドに教育データを保存してはいけないのか
個人向けクラウドサービス(Google Drive個人版、Dropbox個人版等)に教育データを保存すると、以下の重大なセキュリティリスクがあります。
1. データが組織外に流出しても追跡・保護できない
Microsoft Purview Information Protectionの秘密度ラベルは、ファイルがどこに移動しても保護が継続します。
- OneDrive/SharePointからダウンロードしても暗号化が維持される
- 外部にメール送信されても、アクセス権限が保持される
- ファイルがコピーされても、元の保護設定が適用される
一方、Google Drive個人版やDropboxにファイルをアップロードすると:
- ❌ 暗号化が解除される(ファイルは平文で保存される)
- ❌ アクセス権限が失われる(誰でも開ける状態になる)
- ❌ 組織の監査ログに記録されない(データ漏洩を検知できない)
- ❌ リモートワイプ(遠隔削除)ができない
2. Microsoft Purviewによる継続的な保護の例
【シナリオ】教員が誤って個人のGmailに成績データを送信
OneDrive/SharePointから送信した場合:
✅ ファイルは暗号化されたまま
✅ 教育委員会の承認した人のみ開ける
✅ 監査ログに記録され、管理者が検知できる
✅ 必要に応じて管理者がアクセス権を取り消せる
Google Driveから送信した場合:
❌ ファイルは平文(暗号化なし)
❌ 誰でも開ける
❌ 組織の監査ログに記録されない
❌ 一度送信したら取り消せない
3. 文科省ガイドラインとの関係
文科省「教育情報セキュリティポリシーガイドライン」では:
- 重要性分類Ⅰのデータ(個人情報)には暗号化等の安全管理措置が必須
- データが組織外に出た後も保護が継続されることが求められる
Microsoft Purview秘密度ラベルはこの要件を満たしますが、個人クラウドサービスでは組織外に出た瞬間に保護が失われます。
4. 実際のリスク事例
- 教員が個人のGoogle Driveに成績データを保存
- そのGoogleアカウントがハッキングされる
- 攻撃者が自由にデータをダウンロード・拡散
- 組織は事故を検知できず、対処もできない
このため、教育データは必ずOneDrive for Business/SharePointに保存し、Microsoft Purview秘密度ラベルで保護する必要があります。
3. 外部共有の無効化
SharePointサイト設定 → 共有:
- 「サイト所有者とメンバーが、ファイル、フォルダー、サイトを共有できるユーザー」: 組織内のユーザーのみ
- 「ゲストが共有されたアイテムを所有するのを許可する」: オフ
追加のセキュリティ設定
4. 多要素認証(MFA)の有効化
管理責任者・管理者は必ずMFAを有効にします。
推奨設定方法: 条件付きアクセスポリシー
条件付きアクセスは、MFAを要求する最も柔軟な方法です(Microsoft Entra ID P1以上が必要):
Microsoft Entra管理センター → 保護 → 条件付きアクセス → 新しいポリシー
ポリシー名: 管理者にMFAを要求
割り当て:
- ユーザー: データ管理責任者、データ管理者グループ
- クラウドアプリ: すべてのクラウドアプリ
アクセス制御:
- 許可: アクセス権の付与
- 次を要求: 多要素認証
ポリシーの有効化: オン
利用可能な認証方法:
- Microsoft Authenticatorアプリ(推奨)
- Windows Hello for Business
- FIDO2セキュリティキー
- SMS または音声通話
- OATHトークン(ハードウェアまたはソフトウェア)
5. 条件付きアクセスポリシー
特定の条件下でのみアクセスを許可します。
例: 校内ネットワークからのみアクセス可能にする
Microsoft Entra管理センター → セキュリティ → 条件付きアクセス
ポリシー名: 教育データは校内からのみアクセス
割り当て:
- ユーザー: 全教職員
- クラウド アプリ: SharePoint Online
- 条件:
- 場所: 特定のIPアドレス範囲(校内ネットワーク)以外
アクセス制御:
- 許可: ブロック
または
- 許可: アクセス権の付与、ただし多要素認証を要求
6. Microsoft Defender for Cloud Appsによる異常検知
Microsoft 365 E5ライセンスがある場合、Cloud App Securityで異常なアクティビティを検知できます。
検知される異常:
- 通常と異なる場所からのアクセス
- 大量のファイルダウンロード
- 匿名IPアドレスからのアクセス
- 複数回のログイン失敗
5.3.3 データ転送時のセキュリティ
HTTPS通信の確認
SharePoint、OneDriveとの通信は自動的にHTTPSで暗号化されます。
確認方法:
- ブラウザのアドレスバーに鍵アイコンが表示されているか確認
- URLが
https://で始まっているか確認
パスワード付きZIPの是非
結論: 推奨しない
理由:
- パスワードを別経路で送る手間(「PPAP」問題)
- ZIPの暗号化方式が脆弱
- ウイルススキャンができない
推奨する方法:
1. SharePointリンク共有(組織内)
SharePointでファイルを右クリック → 共有 → 組織内のユーザー
オプション:
- 編集可能: オフ(閲覧のみ)
- 有効期限: 7日間
- パスワード: (必要に応じて設定)
2. Microsoft Purview 秘密度ラベルでの保護
秘密度ラベルが適用されたファイルは、ダウンロードしても暗号化が保持されます。
3. 外部へのファイル送信が必要な場合
やむを得ず外部(教育委員会、他校等)にファイルを送る場合:
- Azure Information Protection による権利管理(RMS)
- OneDrive/SharePointの「特定のユーザー」共有機能
- 有効期限・ダウンロード制限を設定
不適切な方法(禁止):
- ❌ USBメモリでの受け渡し
- ❌ 個人のメールアドレス(Gmail等)での送信
- ❌ 暗号化されていないファイル共有サービス(Dropbox、WeTransfer等)
5.3.4 バックアップとデータ保護
文科省ガイドラインでは、ファイルサーバ等に記録された情報について、サーバの冗長化対策に関わらず、定期的なバックアップの実施を求めています。
バックアップの実施要件
1. 校務系情報・校務外部接続系情報(必須)
指導要録、成績データ、出席簿等の校務系データは、必ず定期的にバックアップを実施します。
推奨バックアップ頻度:
- 重要性分類Ⅰのデータ(健康診断票、指導要録等): 日次バックアップ
- 重要性分類Ⅱのデータ(通知表、定期テスト結果等): 週次バックアップ
2. 学習系情報(推奨)
児童生徒の学習記録、作品データ等についても、必要に応じてバックアップを実施することが推奨されます。
バックアップデータの保管
物理的な保管場所の分離(推奨):
文科省ガイドラインでは、バックアップで取得したデータを記録する電磁的記録媒体を保管する場合、自然災害を被る可能性が低い地域に保管することを推奨しています。
OneDrive/SharePointでのバックアップ:
Microsoft 365を利用している場合:
- OneDrive/SharePointは自動的にデータを複製・保管(地理的冗長性を確保)
- 削除されたファイルは93日間ごみ箱に保持(第1段階ごみ箱 + 第2段階ごみ箱)
- 保持ポリシーで保護されているファイルを削除した場合、30日間の猶予期間がある
- Microsoft 365 Backup(追加サービス)を利用すれば、OneDriveとSharePointは過去2週間は10分単位、2週間から52週間は1週間単位でポイントインタイム復元が可能
確認事項:
- クラウドサービス利用時は、サービスの機能として自然災害対策がなされていることを確認
- バックアップからの復元手順を定期的にテスト
SharePointでのバージョン履歴機能
SharePointライブラリのバージョン履歴を有効化することで、ファイルの過去バージョンを保持できます。
設定方法:
- SharePointライブラリ → 設定 → ライブラリの設定
- 「バージョン設定」をクリック
- 「アイテムのバージョン履歴を作成する」: はい
- 保持するバージョン数: 50(推奨)
利点:
- 誤編集・誤削除からの復元
- 過去の状態への巻き戻し
- ランサムウェア感染時の復旧
5.4 データ保持期間と廃棄
5.4.1 保持期間の設定
法的要求の確認
教育データの保持期間は法令で定められています。
| データ種類 | 根拠法令 | 保持期間 |
|---|---|---|
| 指導要録 | 学校教育法施行規則 第28条 | 20年間 |
| 健康診断票 | 学校保健安全法施行規則 第8条 | 5年間 |
| 出席簿 | 各自治体の規則による | 通常5年間 |
| 成績台帳 | 各自治体の規則による | 通常5年間 |
業務上の必要性
法定保存期間を超えても、業務上必要な場合があります。
| データ種類 | 法定保存期間 | 実務上の保持期間 | 理由 |
|---|---|---|---|
| 進路指導記録 | 規定なし | 卒業後3年間 | 進路先への問い合わせ対応 |
| いじめ対応記録 | 規定なし | 卒業後5年間 | 訴訟リスク対応 |
| 学力テストデータ | 規定なし | 過去5年分 | 経年比較分析 |
保持期間ポリシーの策定
各学校で明文化すべき保持期間ポリシー:
## データ保持期間ポリシー
### 第1条(目的)
本ポリシーは、個人情報を含む教育データの適切な保持期間を定める。
### 第2条(基本原則)
(1) 法令で定められた保持期間は必ず遵守する
(2) 業務上不要となったデータは速やかに廃棄する
(3) 保持期間は定期的に見直す
### 第3条(データ種別ごとの保持期間)
| データ種別 | 保持期間 | 廃棄責任者 |
|-----------|----------|-----------|
| 指導要録 | 20年間 | 教務主任 |
| 健康診断票 | 5年間 | 保健主事 |
| 出席簿 | 5年間 | 教務主任 |
| 成績データ(電子) | 5年間 | 教務主任 |
| テスト答案 | 1年間 | 教科主任 |
| 進路指導記録 | 卒業後3年間 | 進路指導主事 |
| アンケートデータ | 目的達成後1年間 | データ管理者 |
| 分析用匿名化データ | 5年間 | データ管理者 |
### 第4条(保持期間の起算日)
保持期間の起算日は、当該年度の末日(3月31日)とする。
### 第5条(廃棄の実施)
データ管理責任者は、毎年4月に保持期間を超過したデータの廃棄を指示する。
SharePointでの保持ポリシー設定
Microsoft 365の保持ポリシー機能を活用できます。
設定手順:
- Microsoft Purview コンプライアンスポータル → 「データ ライフサイクル管理」 → 「保持ポリシー」
- 「新しい保持ポリシー」をクリック
- ポリシー名: 「教育データ保持ポリシー」
- 場所: SharePoint サイト → 対象サイトを選択
- 保持期間の設定:
- 項目が作成されてから: 5年間保持
- 保持期間の終了後: 自動的に削除
ラベルベースの保持:
異なる保持期間を設定する場合、保持ラベルを使用:
| 保持ラベル | 保持期間 | 適用対象 |
|---|---|---|
| 指導要録 | 20年間保持 | 指導要録ファイル |
| 成績データ | 5年間保持 | 成績関連ファイル |
| 一時データ | 1年間保持 | アンケート、一時分析データ |
5.4.2 安全なデータ廃棄
保持期間が経過したデータは、適切な方法で廃棄します。
デジタルデータの完全削除
SharePoint/OneDriveでの削除:
- 対象ファイルを選択 → 削除
- ごみ箱から削除(第1段階のごみ箱)
- サイトコレクションのごみ箱から削除(第2段階のごみ箱)
完全削除の確認:
SharePoint管理センター → ごみ箱
または
PowerShell:
Clear-PnPRecycleBinItem -All -Force
注意: 一度完全削除すると復元不可能
バックアップからの削除
SharePointのバックアップにデータが残っている場合があります。
確認事項:
- Microsoft 365のバックアップ保持期間(通常93日間)
- 自動バックアップからの削除は自動的に行われる
- 手動バックアップを取っている場合は別途削除が必要
廃棄記録の保管
データを廃棄した記録を残します。
廃棄記録の様式:
| 廃棄日 | データ種別 | 対象期間 | ファイル名 | 廃棄方法 | 実施者 | 承認者 |
|---|---|---|---|---|---|---|
| 2024/04/15 | 成績データ | 2018年度 | 成績_2018年度.xlsx | SharePoint完全削除 | 田中 | 校長 |
| 2024/04/15 | アンケート | 2022年度 | 生活アンケート_2022.xlsx | SharePoint完全削除 | 佐藤 | 教頭 |
廃棄記録の保存期間: 5年間
物理媒体(紙)の廃棄
デジタル化前のデータや、印刷物の廃棄:
適切な廃棄方法:
- シュレッダーでの細断(クロスカット、3mm以下推奨)
- 溶解処理業者への委託
- 焼却処分
不適切な方法(禁止):
- そのままゴミ箱へ廃棄
- リサイクル回収へ出す
廃棄の立ち会い:
大量の個人情報を含む書類の廃棄時は、管理責任者が立ち会い、廃棄を確認します。
5.4.3 監査と自己点検
文科省ガイドラインでは、情報セキュリティ対策の実効性を確保するため、定期的な監査と自己点検の実施を求めています。
情報セキュリティ監査
実施頻度: 毎年度及び必要に応じて
監査体制:
- CISOが情報セキュリティ監査統括責任者を指名
- 監査人は被監査部門から独立した者を選任
- 必要に応じて外部の専門家を活用
監査対象:
- 教育ネットワーク及び教育情報システム等の情報資産
- 情報セキュリティポリシーの遵守状況
- アクセス制御、ログ管理、バックアップ等の技術的対策
- 外部委託事業者のセキュリティ対策
監査プロセス:
- 監査実施計画の策定 → 情報セキュリティ委員会の承認
- 監査の実施(書面監査、ヒアリング、実地調査)
- 監査報告書の作成 → 情報セキュリティ委員会への報告
- CISOから被監査部門への改善指示
- フォローアップ監査
学校の自己点検
実施頻度: 年1回
実施責任者: 教育情報セキュリティ管理者(校長等)
点検項目例:
| 点検項目 | 確認内容 | Yes/No |
|---|---|---|
| 秘密度ラベル | すべての教育データファイルに適切な秘密度ラベルが適用されているか | □ |
| アクセス権限 | SharePointフォルダの権限が適切に設定されているか | □ |
| 外部共有設定 | 外部共有が無効化されているか | □ |
| パスワード管理 | 教職員が推測されにくいパスワードを使用しているか | □ |
| 多要素認証 | 管理者アカウントでMFAが有効化されているか | □ |
| USBメモリ | 個人情報がUSBメモリに保存されていないか | □ |
| 紙文書 | 個人情報を含む紙文書が施錠保管されているか | □ |
| 廃棄 | 保持期間を過ぎたデータが適切に廃棄されているか | □ |
| 研修 | 全教職員が年1回情報セキュリティ研修を受講したか | □ |
報告:
- 自己点検結果を情報セキュリティ委員会に報告
- 問題点を発見した場合は速やかにCISO及び統括教育情報セキュリティ責任者に報告
活用:
- 自己点検結果に基づき、権限の範囲内で改善を図る
- 情報セキュリティポリシー及び関係規程等の見直しに活用
5.5 セキュリティインシデント発生時の対応
万が一、情報漏洩等のセキュリティインシデントが発生した場合の対応手順を事前に定めておきます。
5.5.1 インシデント対応フロー
[発見] → [報告] → [初動対応] → [調査] → [報告・通知] → [再発防止]
ステップ1: 発見・報告(直ちに)
インシデントを発見した教職員は、直ちに以下に報告:
- 直属の上司
- データ管理責任者(校長)
- 情報担当教員
報告すべきインシデント例:
- ファイルの誤送信(外部への送信、宛先間違い)
- USBメモリ、PCの紛失・盗難
- 不正アクセスの疑い
- ランサムウェア感染
- SharePointの誤った権限設定による公開
ステップ2: 初動対応(1時間以内)
被害拡大を防止:
- 誤送信の場合: 受信者に削除依頼、メール削除(可能であれば)
- 紛失の場合: リモートワイプ(デバイス消去)
- 不正アクセスの場合: アカウント無効化、パスワード変更
- 権限設定ミスの場合: 権限を即座に修正
ステップ3: 事実関係の調査(24時間以内)
以下を調査:
- 漏洩したデータの範囲(件数、内容)
- 漏洩の原因
- 影響を受ける本人の範囲
- 二次被害の有無
ステップ4: 報告・通知(速やかに)
外部への報告:
- 教育委員会: 速やかに報告
- 個人情報保護委員会: 重大な漏洩の場合(個人情報保護法第26条)
- 警察: 犯罪の可能性がある場合
本人への通知:
- 影響を受ける児童生徒・保護者に速やかに通知
- 謝罪と今後の対応を説明
ステップ5: 再発防止(1ヶ月以内)
- 原因分析
- 再発防止策の策定
- 教職員への注意喚起・研修
- システム・運用の改善
5.5.2 インシデント対応マニュアル(例)
# セキュリティインシデント対応マニュアル
## 1. 連絡体制
緊急連絡網:
1. データ管理責任者(校長): 080-XXXX-XXXX
2. 教頭: 080-XXXX-XXXX
3. 情報担当教員: 080-XXXX-XXXX
4. 教育委員会担当: 03-XXXX-XXXX
## 2. 対応フロー
### ケース1: ファイル誤送信
1. 直ちに上司・校長に報告
2. 受信者に連絡し、削除を依頼(メール・電話)
3. 誤送信ファイルの内容を確認(個人情報の有無・件数)
4. 教育委員会に報告
5. 影響を受ける保護者に謝罪・説明
### ケース2: PC・USBメモリ紛失
1. 直ちに上司・校長に報告
2. 情報担当教員に連絡し、リモートワイプを実施
3. 紛失場所・状況の確認
4. 警察に遺失物届
5. 保存されていたデータの範囲を特定
6. 教育委員会に報告
7. 影響を受ける保護者に通知
### ケース3: 不正アクセス
1. 直ちに上司・校長・情報担当に報告
2. 該当アカウントを無効化
3. SharePoint監査ログで不正アクセスの範囲を調査
4. 全教職員にパスワード変更を指示
5. 教育委員会・警察に通報
6. 影響を受ける保護者に通知
## 3. 報告書テンプレート
[インシデント報告書のテンプレートを添付]
まとめ
第5章では、文部科学省「教育情報セキュリティポリシーガイドライン」(令和7年3月改定版)に準拠した、教育データを安全に扱うためのプライバシーとセキュリティについて学びました。
重要なポイント:
-
個人情報保護の基本
- 教育データには極めて機密性の高い個人情報(要配慮個人情報を含む)が含まれる
- 個人情報保護法、学校保健安全法等の法令を遵守
- 文科省ガイドラインの重要性分類(Ⅰ、Ⅱ、Ⅲ)に準拠
- 組織体制: CISO、統括教育情報セキュリティ責任者、教育情報セキュリティ管理者(校長等)
- 情報セキュリティ委員会の設置
-
研修・訓練
- 全教職員が毎年度最低1回は情報セキュリティ研修を受講
- 役割に応じた研修内容(経営層、管理者、一般教職員)
- 緊急時対応訓練の実施
-
データの匿名化
- 仮名化、一般化、トップ/ボトムコーディング、ノイズ付加
- k-匿名性の考え方(k≥5を推奨)
- 小規模校では特に注意が必要
-
アクセス制御とセキュリティ
- ロールベースのアクセス制御(必要最小限の原則)
- Microsoft Purview 秘密度ラベルの必須適用
- SharePointでの権限管理、監査ログ
- 多要素認証、条件付きアクセス
- バックアップの実施(校務系データは必須、学習系データは推奨)
- バージョン履歴機能の活用
-
データ保持期間と廃棄
- 法定保存期間の遵守(指導要録20年、健康診断票5年等)
- 保持期間ポリシーの策定
- 安全な廃棄方法(完全削除、バックアップからの削除、廃棄記録)
-
監査と自己点検
- 情報セキュリティ監査を毎年度実施
- 学校の自己点検を年1回実施
- 監査・自己点検結果を情報セキュリティポリシーの見直しに活用
-
インシデント対応
- 事前に対応フローを策定(緊急時対応計画)
- 発見→報告→初動対応→調査→通知→再発防止
- CISOへの報告体制、情報セキュリティ委員会への報告
**セキュリティは一度設定したら終わりではなく、継続的な改善が必要です。**定期的な研修、監査、自己点検を通じて、常に情報セキュリティ対策を見直し、向上させていくことが求められます。
参考資料:
次の第6章では、これまで学んだ内容を実際の学校現場でどう適用するか、3つのケーススタディを通じて学びます。
title: 第6章 実践ケーススタディ - 学校規模別のデータ収集実例
第6章 実践ケーススタディ
第1章から第5章まで、データ収集の理論と方法を学んできました。第6章では、3つの異なる学校規模での実際の導入事例を紹介します。
この章で学ぶこと:
- 小学校(単学級)での手動収集の実践例
- 中学校(複数学級)での半自動収集の実践例
- 高校(大規模校)での自動収集の実践例
- それぞれの課題と解決策
【重要】これらは架空の事例ですが、実際の教育現場での導入を想定した現実的な内容です。
6.1 ケース1: 小学校(単学級)での手動収集
6.1.1 状況と課題
学校プロフィール:
| 項目 | 内容 |
|---|---|
| 学校種 | 公立小学校 |
| 規模 | 全校児童150名、各学年1クラス(6クラス) |
| 教職員数 | 教員12名、事務職員2名 |
| 所在地 | 地方都市郊外 |
IT環境:
| システム・ツール | 状況 |
|---|---|
| 校務支援システム | 市販パッケージあり(API連携機能なし) |
| Microsoft 365 | 教職員用アカウントあり(E3ライセンス) |
| ネットワーク | 校内Wi-Fi整備済み |
| PC環境 | 教員1人1台、Windows 11 |
担当者:
- データ担当: 教務主任 田中先生(40代、Excel基本操作可能、VBA・Power Automate未経験)
- サポート: 教頭先生(50代、IT苦手だが理解あり)
課題:
-
データが分散
- 校務支援システム: 成績、出席データ
- Microsoft Forms: 保護者アンケート
- Excel個別管理: 各教員の学級日誌、面談記録
-
分析の困難さ
- データを手作業で集めるのに毎回2時間以上
- 形式がバラバラで統合が大変
- 過去データとの比較ができない
-
リソースの制約
- IT専任の教員がいない
- 予算が限られている(追加システム導入は困難)
- 時間的余裕がない(働き方改革の推進中)
6.1.2 採用した方法
選択したレベル: レベル1(手動収集)
理由:
- 小規模で月次更新で十分
- 追加コストなし
- 既存のスキルで始められる
- 段階的に改善可能
データ収集の範囲(優先順位付け):
| 優先度 | データ種類 | 頻度 | 収集方法 |
|---|---|---|---|
| 高 | 学力テスト結果 | 学期ごと | 校務支援システムからCSVエクスポート |
| 高 | 出席・欠席データ | 月次 | 校務支援システムからCSVエクスポート |
| 中 | 保護者アンケート | 学期ごと | Microsoft FormsからExcelエクスポート |
| 低 | 生活アンケート | 年2回 | 紙→Excel手入力(将来的にForms化) |
保存場所:
- SharePoint サイト「桜ヶ丘小学校データ管理」
- Microsoft Purview 秘密度ラベル「極秘 - 教育データ」を適用
6.1.3 実際の手順
初期セットアップ(1回のみ、所要時間: 3時間)
ステップ1: SharePointサイトの作成
- SharePoint ホーム → 「サイトの作成」
- チームサイトを選択
- サイト名: 「桜ヶ丘小学校データ管理」
- プライバシー設定: 非公開
- メンバー追加: 教務主任、教頭、校長のみ
ステップ2: フォルダ構成の作成
桜ヶ丘小学校データ管理/
└── ドキュメント/
├── 01_生データ/
│ ├── 2024年度/
│ │ ├── 1学期/
│ │ ├── 2学期/
│ │ └── 3学期/
│ └── アーカイブ/
├── 02_マスタデータ/
│ ├── 児童マスタ.xlsx
│ ├── 学年クラスマスタ.xlsx
│ └── 科目マスタ.xlsx
├── 03_統合データ/
│ └── 統合データ_2024年度.xlsx
└── 04_分析用/
└── 学期ごと分析_テンプレート.xlsx
ステップ3: Microsoft Purview 秘密度ラベルの設定
- Microsoft Purview コンプライアンスポータルにアクセス
- 「秘密度ラベル」が既に設定されているか確認
- SharePointライブラリ → 設定 → 既定の秘密度ラベル: 「極秘 - 教育データ」
ステップ4: Excelテンプレートの作成
統合データ_2024年度.xlsx の構成:
| シート名 | 内容 |
|---|---|
| 児童マスタ | 児童ID、氏名、学年、クラス、入学年度 |
| テスト結果 | 実施日、児童ID、科目、得点 |
| 出席記録 | 年月、児童ID、出席日数、欠席日数、遅刻回数 |
| アンケート結果 | 実施日、児童ID、質問ID、回答 |
Power Query設定(テスト結果シート):
let
ソース = Folder.Files("C:\Users\Tanaka\OneDrive\桜ヶ丘小学校データ管理\01_生データ\2024年度"),
フィルター = Table.SelectRows(ソース, each Text.Contains([Name], "テスト結果") and Text.EndsWith([Name], ".csv")),
CSV読込 = Table.AddColumn(フィルター, "データ", each Csv.Document([Content], [Encoding=65001])),
展開 = Table.ExpandTableColumn(CSV読込, "データ", {"実施日", "児童ID", "科目", "得点"}),
不要列削除 = Table.RemoveColumns(展開, {"Content", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}),
データ型設定 = Table.TransformColumnTypes(不要列削除, {
{"実施日", type date},
{"児童ID", type text},
{"科目", type text},
{"得点", Int64.Type}
})
in
データ型設定
月次運用(所要時間: 15分)
【月次データ更新手順書】
# 月次データ更新作業
## 実施タイミング
毎月5日(前月分のデータを統合)
## 所要時間
約15分
## 手順
### 1. 校務支援システムからデータをエクスポート(5分)
**出席データのエクスポート:**
1. 校務支援システムにログイン
2. メニュー → 「統計」 → 「出席集計」
3. 対象期間: 前月(例: 2024年10月)
4. 出力形式: CSV
5. ファイル名: 出席_2024年10月.csv
6. 保存先: ダウンロードフォルダ
### 2. ファイルをSharePointに移動(2分)
1. エクスプローラーでダウンロードフォルダを開く
2. 「出席_2024年10月.csv」を選択
3. SharePoint「01_生データ/2024年度/2学期/」フォルダにコピー
### 3. Excelで統合データを更新(5分)
1. SharePoint → 「03_統合データ」フォルダ
2. 「統合データ_2024年度.xlsx」を開く
3. 「データ」タブ → 「すべて更新」をクリック
4. 更新完了を待つ(約30秒)
5. 「出席記録」シートを開き、最新データが追加されているか確認
- 確認項目: 前月のデータが最終行に追加されているか
- 確認項目: データ件数 = 児童数(150名)
6. Ctrl + S で保存
### 4. 完了報告(3分)
1. Microsoft Teams → 「教職員連絡」チャネル
2. 以下のメッセージを投稿:
【データ更新完了】
〇月分の出席データを統合しました。
確認URL: [SharePointファイルへのリンク]
## トラブルシューティング
### エラー: CSVファイルが文字化けする
- **原因**: 文字コードがShift-JIS
- **対処**: Power Queryエディタ → ソース設定 → Encoding=932 に変更
### エラー: データ件数が150件ではない
- **原因**: 転入・転出があった、またはエクスポート設定ミス
- **対処**: 校務支援システムのエクスポート条件を再確認
### ファイルが開けない
- **原因**: 他の人が編集中
- **対処**: Teams で編集者に確認、または5分後に再試行
学期ごとの分析(所要時間: 30分)
学期末に実施する分析例:
1. Excel Agent Modeでの探索的分析
田中先生が実際に行った質問例:
【Agent Modeへの質問1】
「1学期と2学期の出席率を学年別に比較してください」
【Agent Modeの回答】
[ピボットテーブルと折れ線グラフを自動生成]
- 1年生: 1学期 98.2% → 2学期 97.8% (微減)
- 2年生: 1学期 97.5% → 2学期 98.1% (改善)
...
【Agent Modeへの質問2】
「欠席日数が10日以上の児童を学年別にリストアップしてください」
【Agent Modeの回答】
[フィルタリングされた表を生成]
2学期に欠席10日以上の児童は3名です。
- 1年1組: 1名(インフルエンザによる長期欠席)
- 4年1組: 2名(継続的な欠席傾向)
2. 定型レポートの作成
月次レポートのテンプレート(教頭先生・校長先生向け):
## 〇学期 データ分析レポート
### 1. 出席状況
- 全校出席率: XX.X%(前学期比: ±X.X%)
- 学年別出席率: [グラフ]
- 継続欠席者: X名(前学期: X名)
### 2. 学力テスト結果
- 全体平均: [科目別グラフ]
- 前学期との比較: [推移グラフ]
- 課題のある領域: [分析結果]
### 3. 気づき・提言
[Agent Modeの分析結果から得られた示唆]
### 4. 次学期の重点施策
[データに基づく改善提案]
6.1.4 成果と課題
成果(導入から3ヶ月後)
定量的効果:
| 項目 | 導入前 | 導入後 | 改善 |
|---|---|---|---|
| データ収集時間 | 2時間/月 | 15分/月 | 87.5%削減 |
| 分析頻度 | 学期ごと(年3回) | 月次(年12回) | 4倍に増加 |
| 過去データ参照 | 困難 | 容易 | ✓ |
| 複数データ統合 | 手作業(エラーあり) | Power Query自動化 | ✓ |
定性的効果:
- 田中先生: 「Agent Modeで質問するだけで分析できるようになり、データを見るのが楽しくなった」
- 教頭先生: 「月次で出席状況を把握できるようになり、早期の保護者面談につながった」
- 校長先生: 「理事会でデータに基づく報告ができるようになった」
残された課題
1. データ入力の負荷
- 生活アンケートは紙ベースのまま(手入力に時間がかかる)
- 改善案: Microsoft Forms への移行を検討中
2. 教員間のデータ活用格差
- データ分析は田中先生のみが実施
- 他の教員は「難しそう」と敬遠
- 改善案: 学年主任向けのミニ研修会を実施予定
3. セキュリティへの不安
- SharePointの権限設定が正しいか不安
- 改善案: 市の教育委員会に設定確認を依頼
次のステップ
短期(6ヶ月以内):
- Microsoft Forms でのアンケート実施
- 学年主任へのAgent Mode研修
中期(1年以内):
- Power Automate による Forms → Excel 自動統合
- レベル2(半自動収集)への移行検討
6.2 ケース2: 中学校(複数学級)での半自動収集
6.2.1 状況と課題
学校プロフィール:
| 項目 | 内容 |
|---|---|
| 学校種 | 公立中学校 |
| 規模 | 全校生徒450名、各学年4クラス(12クラス) |
| 教職員数 | 教員35名、事務職員3名 |
| 所在地 | 県庁所在地 |
IT環境:
| システム・ツール | 状況 |
|---|---|
| 校務支援システム | 県統一システム(CSVエクスポート可能) |
| Microsoft 365 | E5ライセンス(全教職員) |
| Google Workspace | 生徒用アカウント(Google Classroom使用中) |
| CBTシステム | 県の学力テストで使用 |
担当者:
- データ担当: 情報担当教員 佐藤先生(30代、Power Automate経験あり、IT得意)
- サポート: 教務主任 山田先生(40代、Excel中級レベル)
- 協力: 学年主任3名(各学年1名)
課題:
-
複数のデータソースが混在
- 校務支援システム: 成績、出席
- Microsoft Forms: 授業評価アンケート
- Google Forms: 生活実態調査
- Excel個別管理: 部活動記録、進路希望調査
-
データ量の増加
- 生徒450名 × 月次データ = 大量のレコード
- 手動収集では週次更新が困難
-
複数教員での共有ニーズ
- 学年主任が各学年のデータを閲覧したい
- 担任が自クラスのデータを確認したい
- 権限管理が必要
6.2.2 採用した方法
選択したレベル: レベル2(半自動収集)
理由:
- 中規模で週次更新が必要
- 佐藤先生がPower Automate使用可能
- Microsoft 365 E5ライセンスあり(Premium コネクタ利用可能)
- 段階的な自動化が可能
システム構成図:
データ収集の範囲:
| データ種類 | 頻度 | 収集方法 | 自動化レベル |
|---|---|---|---|
| 出席データ | 週次 | 校務支援 → CSV → Power Automate | 半自動 |
| テスト結果 | テストごと | 校務支援 → CSV → SharePoint | 手動 |
| 授業評価 | 学期ごと | Microsoft Forms → Power Automate | 完全自動 |
| 生活調査 | 月次 | Google Forms → Power Automate → OneDrive | 完全自動 |
保存場所:
- SharePoint サイト「〇〇中学校データ管理」
- 学年別フォルダで権限分離
- Microsoft Purview 秘密度ラベル適用
6.2.3 実際の設定
Power Automateフロー1: Microsoft Forms → SharePoint統合
フロー名: 「授業評価アンケート自動統合」
トリガー:
Microsoft Forms - When a new response is submitted(新しい応答が送信されるとき)
フォーム ID: [授業評価アンケートのID]
アクション1: 応答の詳細を取得
Microsoft Forms - Get response details(応答の詳細を取得)
フォーム ID: [授業評価アンケートのID]
応答 ID: [トリガーからの応答ID]
アクション2: SharePointリストに追加
SharePoint - Create item(項目の作成)
サイト アドレス: https://contoso.sharepoint.com/sites/SchoolData
リスト名: 授業評価回答
列のマッピング:
回答日時: [応答の送信時刻]
生徒ID: [質問: 生徒番号]
学年: [質問: 学年]
クラス: [質問: クラス]
科目: [質問: 科目名]
評価1: [質問: 授業は分かりやすかったですか]
評価2: [質問: 興味を持てましたか]
自由記述: [質問: 改善してほしい点]
アクション3: 完了通知
Send an email notification(メール通知の送信)
宛先: satou@school.edu.jp
件名: 授業評価アンケート新規回答
本文: @{outputs('Get_response_details')?['body/responder']} さんから新しい回答がありました。
Power Automateフロー2: Google Forms → OneDrive統合
フロー名: 「生活調査自動収集」
重要: Google FormsからのデータはOneDriveに保存(Microsoft製品での一元管理)
トリガー:
Recurrence(繰り返し)
頻度: Day(日)
間隔: 1
タイムゾーン: (UTC+09:00) 大阪、札幌、東京
開始時刻: 2024-04-01T06:00:00(開始日の朝6時)
設定時刻: 06:00(毎朝6時に実行)
重要: Recurrenceトリガーは指定した時刻に定期的にフローを実行します。「頻度」には Day、Week、Month、Hour などを指定でき、「間隔」で何日ごと、何週ごとかを設定します。
アクション1: Google Sheetsからデータ取得
Google Sheets - List rows present in a table(表内に存在する行を一覧表示)
スプレッドシート: [Google Forms連携スプレッドシート]
ワークシート: フォームの回答1
アクション2: Apply to each(それぞれに適用)
Apply to each
値の選択: [List rowsの出力]
内部アクション: Excel Online (Business) - Add a row into a table(表に行を追加)
場所: OneDrive for Business
ドキュメント ライブラリ: OneDrive
ファイル: データ管理/生活調査_2024年度.xlsx
テーブル: 回答一覧
列のマッピング:
タイムスタンプ: [現在のアイテムのタイムスタンプ]
生徒ID: [現在のアイテムの生徒番号]
質問1: [現在のアイテムの睡眠時間]
質問2: [現在のアイテムの朝食摂取]
...
アクション3: 重複チェックと削除
変数の初期化:
名前: 処理済みID
種類: 配列
値: []
条件:
[現在のアイテムのタイムスタンプ] が [処理済みID] に含まれる
はいの場合: スキップ
いいえの場合:
- Excelに行を追加
- 配列に追加: [処理済みID]
SharePointサイトの権限設定
サイト構成:
〇〇中学校データ管理/
├── 全校データ/(管理職・教務主任・情報担当のみ)
│ ├── 統合データ_2024年度.xlsx
│ └── 生徒マスタ.xlsx
├── 1学年データ/(1学年主任・担任)
│ └── 1学年分析用.xlsx
├── 2学年データ/(2学年主任・担任)
│ └── 2学年分析用.xlsx
└── 3学年データ/(3学年主任・担任)
└── 3学年分析用.xlsx
権限設定:
| フォルダ | 校長・教頭 | 教務主任 | 情報担当 | 学年主任 | 担任 | その他教員 |
|---|---|---|---|---|---|---|
| 全校データ | フルコントロール | 編集 | 編集 | 読み取り | - | - |
| 1学年データ | フルコントロール | 読み取り | 編集 | 編集 | 読み取り | - |
| 2学年データ | フルコントロール | 読み取り | 編集 | 編集 | 読み取り | - |
| 3学年データ | フルコントロール | 読み取り | 編集 | 編集 | 読み取り | - |
トラブルシューティング事例
問題1: Power Automateフローが突然停止
症状: 3日間フローが実行されず、データが更新されない
原因: Google Sheetsコネクタの認証が期限切れ
解決策:
- Power Automate → 「マイフロー」 → 該当フロー
- エラー詳細を確認: 「認証エラー」
- 「編集」 → Google Sheetsアクション → 「接続の変更」
- 再認証を実施
- フローを手動実行してテスト
再発防止:
- フロー実行失敗時のメール通知を設定
- 毎週月曜にデータ更新状況を確認する運用ルールを策定
問題2: SharePointリストへの追加で重複データが発生
症状: 同じ回答が複数回登録される
原因: フローが2回実行された(ネットワーク遅延によるリトライ)
解決策:
- SharePointリスト設定 → 「列の作成」
- 列名: 「回答ID」、種類: 「1行テキスト」
- 「一意の値を適用する」: はい
- Power Automateフローを修正:
- 回答ID: @{triggerBody()?['responseId']}
- 重複データを手動削除
再発防止:
- 一意制約をすべてのリストに適用
6.2.4 成果と課題
成果(導入から6ヶ月後)
定量的効果:
| 項目 | 導入前 | 導入後 | 改善 |
|---|---|---|---|
| データ収集時間 | 3時間/週 | 30分/週 | 83%削減 |
| データ鮮度 | 月次 | 週次(一部リアルタイム) | 4倍向上 |
| アンケート回収率 | 75%(紙) | 92%(Forms) | +17% |
| 分析可能な教員 | 1名 | 7名(学年主任含む) | 7倍増加 |
定性的効果:
- 佐藤先生: 「自動化により、データメンテナンスではなく分析に時間を使えるようになった」
- 学年主任: 「自学年のデータをいつでも確認でき、学年会議での議論が具体的になった」
- 校長先生: 「週次で出席状況を把握し、不登校の兆候を早期発見できた事例があった」
残された課題
1. Google Workspace データの取り扱い
- Google Formsのデータを経由するため、完全なMicrosoft統合ではない
- 改善案: 生徒アンケートをMicrosoft Formsに移行検討(ライセンス確認が必要)
2. Power Automateフローの保守性
- 佐藤先生のみがフローを理解・修正できる
- 佐藤先生不在時の対応が困難
- 改善案: フロー設計書の作成、山田先生への引き継ぎ
3. データ量の増加によるパフォーマンス低下
- SharePointリストが5000アイテムを超え、表示が遅くなる
- 改善案: 年度ごとにリストを分割、またはアーカイブ運用
次のステップ
短期(6ヶ月以内):
- Power BIダッシュボードの作成(第3部で実施予定)
- 担任向けのデータ活用研修
中期(1年以内):
- 校務支援システムからのCSVエクスポートもPower Automateで自動化
- レベル3(自動収集)への移行検討
6.3 ケース3: 高校(大規模校)での自動収集
6.3.1 状況と課題
学校プロフィール:
| 項目 | 内容 |
|---|---|
| 学校種 | 公立高校 |
| 規模 | 全校生徒1200名、各学年10クラス(30クラス) |
| 教職員数 | 教員85名、事務職員8名 |
| 所在地 | 政令指定都市 |
IT環境:
| システム・ツール | 状況 |
|---|---|
| 校務支援システム | 県統一システム(API連携可能) |
| Microsoft 365 | E5ライセンス(全教職員・生徒) |
| 学習管理システム(LMS) | Moodle(独自サーバー) |
| CBTシステム | 県の学力テスト、校内テスト |
| Azure | 教育委員会契約のAzureテナント利用可能 |
担当者:
- プロジェクトリーダー: 教頭 鈴木先生(50代、プロジェクト管理経験豊富)
- 技術担当: 情報担当教員 高橋先生(30代、システム開発経験あり)
- 外部支援: システムインテグレーター(SI業者)
- 教育委員会: データ利活用推進担当
課題:
-
複雑なデータエコシステム
- 5つ以上のシステムが稼働
- それぞれ異なるベンダー、データ形式
- API仕様の把握が困難
-
大量データの処理
- 生徒1200名 × 日次データ = 膨大なレコード
- Excelでは処理限界
-
組織的な活用ニーズ
- 学年主任(10名)、進路指導部、生徒指導部がそれぞれデータ活用
- 教育委員会への報告義務
- 保護者への情報提供
-
セキュリティとコンプライアンス
- 個人情報の厳格な管理
- 監査対応
- GDPR的な考え方の導入
6.3.2 採用した方法
選択したレベル: レベル3(自動収集)
理由:
- 大規模で日次・リアルタイム更新が必要
- 教育委員会のAzure環境が利用可能
- SI業者のサポートあり
- 投資対効果が見込める
システムアーキテクチャ:
[データソース] [データ統合基盤] [分析・活用]
┌──────────┐
│校務支援システム│──API──┐
└──────────┘ │
├─→ Azure Data Factory ──→ Azure SQL DB ──→ Power BI
┌──────────┐ │ (データパイプライン) (データウェアハウス) (ダッシュボード)
│LMS (Moodle) │──API──┤ ↓
└──────────┘ │ SharePoint
│ (エクスポート用)
┌──────────┐ │
│CBTシステム │──API──┤
└──────────┘ │
│
┌──────────┐ │
│Microsoft 365 │──API──┘
│(Forms/Teams)│
└──────────┘
技術スタック:
| レイヤー | 技術 | 用途 |
|---|---|---|
| データソース | 各種システムAPI | データ収集元 |
| データ統合 | Azure Data Factory | ETL処理、データパイプライン |
| データ保管 | Azure SQL Database | データウェアハウス |
| データモデル | Power BI データフロー | スタースキーマ設計 |
| 分析・可視化 | Power BI Service | ダッシュボード |
| セキュリティ | Microsoft Purview | データガバナンス、秘密度ラベル |
| 認証 | Microsoft Entra ID | シングルサインオン |
6.3.3 構築プロセス
フェーズ1: 要件定義(期間: 2ヶ月)
ステークホルダーヒアリング:
| 対象 | 主な要望 |
|---|---|
| 校長・教頭 | 学校経営ダッシュボード、教育委員会報告の自動化 |
| 教務主任 | 成績・出席の推移分析、早期警戒システム |
| 進路指導部 | 進路希望と成績の相関分析、過去データ参照 |
| 生徒指導部 | 欠席・遅刻の傾向分析、問題行動の早期発見 |
| 学年主任 | 学年別・クラス別ダッシュボード |
| 担任 | 自クラスの生徒データ、個別指導記録 |
データカタログの作成:
全42種類のデータソースを洗い出し、以下の項目で整理:
| データ名 | 保管場所 | 更新頻度 | API有無 | 優先度 | 担当 |
|---|---|---|---|---|---|
| 成績データ | 校務支援 | テストごと | ○ | 高 | 教務主任 |
| 出席データ | 校務支援 | 日次 | ○ | 高 | 教務主任 |
| 課題提出 | Moodle | 課題ごと | ○ | 中 | 教科主任 |
| ... | ... | ... | ... | ... | ... |
データモデル設計(スタースキーマ):
ファクトテーブル:
- ファクト_成績
- ファクト_出席
- ファクト_課題提出
ディメンションテーブル:
- ディメンション_生徒(生徒ID、氏名、学年、クラス、入学年度)
- ディメンション_科目(科目ID、科目名、必修/選択、単位数)
- ディメンション_日付(日付、年度、学期、週)
- ディメンション_教員(教員ID、氏名、教科、役職)
フェーズ2: プロトタイプ開発(期間: 1ヶ月)
スコープ:
- 出席データのみを対象
- Azure Data Factory で校務支援システムAPIから取得
- Azure SQL Database に格納
- Power BI で簡易ダッシュボード作成
Azure Data Factory パイプライン例:
{
"name": "出席データ取得パイプライン",
"properties": {
"activities": [
{
"name": "校務支援API呼び出し",
"type": "WebActivity",
"dependsOn": [],
"policy": {
"timeout": "0.12:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"typeProperties": {
"url": "https://api.schoolsystem.example.com/v1/attendance",
"method": "GET",
"headers": {
"Authorization": "Bearer @{linkedService().apiToken}"
}
}
},
{
"name": "JSON→テーブル変換",
"type": "Copy",
"dependsOn": [
{
"activity": "校務支援API呼び出し",
"dependencyConditions": ["Succeeded"]
}
],
"policy": {
"timeout": "0.12:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"typeProperties": {
"source": {
"type": "JsonSource",
"storeSettings": {
"type": "HttpReadSettings"
}
},
"sink": {
"type": "AzureSqlSink",
"writeBehavior": "insert",
"sqlWriterUseTableLock": false
},
"enableStaging": false,
"translator": {
"type": "TabularTranslator",
"mappings": [
{
"source": { "path": "$['StudentID']" },
"sink": { "name": "StudentID" }
},
{
"source": { "path": "$['AttendanceDate']" },
"sink": { "name": "AttendanceDate" }
},
{
"source": { "path": "$['Status']" },
"sink": { "name": "Status" }
}
]
}
},
"inputs": [
{
"referenceName": "JsonDataset",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "AzureSqlTable_Fact_Attendance",
"type": "DatasetReference"
}
]
}
],
"annotations": []
}
}
トリガーの定義(別途作成):
{
"name": "毎日6時実行トリガー",
"properties": {
"annotations": [],
"runtimeState": "Started",
"pipelines": [
{
"pipelineReference": {
"referenceName": "出席データ取得パイプライン",
"type": "PipelineReference"
}
}
],
"type": "ScheduleTrigger",
"typeProperties": {
"recurrence": {
"frequency": "Day",
"interval": 1,
"startTime": "2024-04-01T06:00:00Z",
"timeZone": "Tokyo Standard Time"
}
}
}
}
重要: Azure Data Factoryでは、パイプライン定義とトリガー定義は別々のリソースとして管理されます。パイプライン内のpropertiesオブジェクトにactivitiesを配置し、トリガーは別途定義してpipelines配列でパイプラインを参照します。
プロトタイプでの検証項目:
- APIからデータ取得成功
- データ変換処理の正確性
- Azure SQL Database への格納成功
- Power BI での可視化確認
- パフォーマンス(1200名分のデータ処理時間 < 5分)
- エラー時の通知機能
フェーズ3: 本番開発(期間: 4ヶ月)
開発体制:
| 役割 | 担当 | 人数 |
|---|---|---|
| プロジェクトマネージャー | SI業者 | 1名 |
| システムエンジニア | SI業者 | 2名 |
| データエンジニア | SI業者 | 1名 |
| 学校側PM | 教頭(鈴木先生) | 1名 |
| 学校側技術担当 | 情報担当(高橋先生) | 1名 |
| 教育委員会担当 | データ利活用推進担当 | 1名 |
開発スケジュール:
| 週 | 作業内容 |
|---|---|
| 1-2 | データソースAPI調査、認証設定 |
| 3-6 | Data Factoryパイプライン開発(全データソース) |
| 7-8 | Azure SQL Database 構築、テーブル設計 |
| 9-10 | データ品質チェック処理開発 |
| 11-12 | Power BI データモデル構築 |
| 13-14 | Power BI ダッシュボード開発 |
| 15 | 統合テスト |
| 16 | 受け入れテスト、調整 |
セキュリティ設定:
1. Azure SQL Database の行レベルセキュリティ(RLS):
Azure SQL DatabaseのRLSは、テーブルレベルで行フィルタを自動適用する機能です。
-- ステップ1: セキュリティ述語関数を作成
CREATE FUNCTION dbo.fn_securitypredicate(@ClassID AS int)
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN SELECT 1 AS fn_securitypredicate_result
WHERE
@ClassID IN (
SELECT ClassID
FROM dbo.Dim_Teacher
WHERE TeacherID = CAST(SESSION_CONTEXT(N'TeacherID') AS int)
)
OR IS_MEMBER('SchoolAdmin') = 1; -- 管理職は全データ閲覧可能
GO
-- ステップ2: セキュリティポリシーを作成してテーブルに適用
CREATE SECURITY POLICY ClassFilter
ADD FILTER PREDICATE dbo.fn_securitypredicate(ClassID)
ON dbo.Fact_Attendance
WITH (STATE = ON);
GO
アプリケーションでの SESSION_CONTEXT の設定:
アプリケーション(Power BIやカスタムアプリ)は、接続時にユーザー情報をSESSION_CONTEXTに設定します。
-- 接続時にTeacherIDを設定(アプリケーション側で実行)
EXEC sp_set_session_context @key = N'TeacherID', @value = 12345;
重要:
-
SESSION_CONTEXTは、現在のセッション内で任意のキー・値ペアを保存できる機能です -
IS_MEMBER()は、現在のユーザーが指定されたデータベースロールまたはMicrosoft Entraグループのメンバーかどうかをチェックします -
WITH SCHEMABINDINGは、関数が参照するテーブル構造が変更されないよう保護します -
FILTER PREDICATEは、SELECT文に自動的にWHERE句を追加します(ユーザーは気づかずに制限されたデータのみ閲覧)
2. Power BI での行レベルセキュリティ(RLS):
Power BIでは、ロールごとにDAX式でフィルタを定義します。Power BI Desktop → モデリング → セキュリティロールの管理 から設定します。
// 担任ロール: 自クラスのデータのみ閲覧可能
[ClassID] = LOOKUPVALUE(
Dim_Teacher[ClassID],
Dim_Teacher[Email],
USERPRINCIPALNAME()
)
// 学年主任ロール: 自学年のデータのみ閲覧可能
[GradeID] = LOOKUPVALUE(
Dim_Teacher[GradeID],
Dim_Teacher[Email],
USERPRINCIPALNAME()
)
// 管理職ロール: 全データ閲覧可能(フィルタなし)
TRUE()
重要:
-
USERPRINCIPALNAME()は、Power BI Serviceにログインしているユーザーのメールアドレス(例: tanaka@school.edu.jp)を返します -
LOOKUPVALUE()は、ディメンションテーブル(Dim_Teacher)からユーザーに紐づくClassIDやGradeIDを検索します - ロールは Power BI Service の「セキュリティ」設定で、Microsoft Entra IDのユーザー/グループに割り当てます
- 複数のロールに所属する場合は OR 条件で評価されます(最も緩い権限が適用される)
3. Microsoft Purview 秘密度ラベル:
- Azure SQL Database のテーブル・列に秘密度ラベルを自動適用
- 氏名列: 「極秘 - 教育データ」
- 成績列: 「極秘 - 教育データ」
- 集計データ: 「社外秘 - 校内限定」
フェーズ4: 移行とトレーニング(期間: 1ヶ月)
段階的移行:
| 週 | 対象 | 内容 |
|---|---|---|
| 1 | 情報担当・教頭 | 先行運用開始、動作確認 |
| 2 | 学年主任10名 | トレーニング実施、フィードバック収集 |
| 3 | 全教員85名 | 全体説明会、マニュアル配布 |
| 4 | 本番運用開始 | 全教員がPower BIダッシュボードにアクセス可能 |
トレーニング内容(学年主任向け、2時間):
- システム概要説明(20分)
- Power BIダッシュボードの使い方(30分)
- ログイン方法
- 基本的なフィルタリング操作
- データのエクスポート方法
- Agent Modeでの分析演習(40分)
- 実際のデータを使った分析体験
- よくある質問の例
- セキュリティとデータ取り扱いルール(20分)
- 質疑応答(10分)
運用マニュアル:
- ユーザー向け: 「Power BIダッシュボード利用ガイド」(15ページ)
- 管理者向け: 「システム運用・保守マニュアル」(80ページ)
- トラブルシューティング: 「FAQ集」(30項目)
フェーズ5: 運用開始(継続)
運用体制:
| 役割 | 担当 | 責務 |
|---|---|---|
| システム運用責任者 | 教頭(鈴木先生) | 全体統括、意思決定 |
| 技術担当 | 情報担当(高橋先生) | 日常監視、軽微な設定変更 |
| 保守ベンダー | SI業者 | 障害対応、機能追加開発 |
| ヘルプデスク | 教育委員会 | 教員からの問い合わせ対応 |
運用サイクル:
日次:
- Azure Data Factory パイプライン自動実行(毎朝6時)
- データ更新状況の確認(高橋先生、10分)
週次:
- Power BI ダッシュボードのアクセスログ確認
- エラーログのレビュー
月次:
- 運用会議(鈴木先生、高橋先生、SI業者)
- 改善要望の整理
四半期:
- システムレビュー
- 教育委員会への報告
6.3.4 成果と課題
成果(導入から1年後)
定量的効果:
| 項目 | 導入前 | 導入後 | 改善 |
|---|---|---|---|
| データ収集時間 | 15時間/週 | 0時間/週(完全自動) | 100%削減 |
| データ鮮度 | 月次 | リアルタイム | 30倍向上 |
| データ活用教員数 | 5名 | 85名(全教員) | 17倍増加 |
| 教育委員会報告作成時間 | 8時間/四半期 | 1時間/四半期 | 87.5%削減 |
定性的効果:
- 校長先生: 「データに基づく学校経営が実現し、理事会での説明力が格段に向上した」
- 進路指導部: 「過去5年分のデータから進路傾向を分析し、的確な進路指導ができるようになった」
- 担任: 「自クラスの出席状況をリアルタイムで確認でき、早期の家庭連絡につながった」
- 教育委員会: 「県内のモデルケースとして他校への展開を検討している」
投資対効果:
| 項目 | 金額 |
|---|---|
| 初期投資 | 約800万円(SI業者開発費、Azure初期費用) |
| 年間運用コスト | 約200万円(Azure利用料、保守費用) |
| 削減効果(年間) | 約600万円相当(教員の時間削減を時給換算) |
| 投資回収期間 | 約1.3年 |
残された課題
1. システムの複雑性
- Azure Data Factory のパイプラインが複雑化
- 高橋先生のみが全体を理解
- 改善案: 詳細な設計書の整備、後任への引き継ぎ計画
2. データ品質の課題
- 一部のデータソースでデータ欠損が発生
- API仕様変更への対応が後手
- 改善案: データ品質モニタリングの強化、ベンダーとの定期連絡会
3. 教員のITリテラシー格差
- Power BIを使いこなせる教員とそうでない教員の差
- 改善案: レベル別トレーニングの実施、サポート体制の強化
今後の展開
短期(6ヶ月以内):
- 予測分析機能の追加(Azure Machine Learning活用)
- 保護者向けダッシュボードの開発
中期(1年以内):
- 近隣の中学校へのシステム展開
- 教育委員会による県全体のデータ基盤構築プロジェクトへの参画
長期(3年以内):
- AIによる個別最適化学習支援システムとの統合
- 教育データの研究利用(大学との共同研究)
6.4 3つのケースから学ぶ教訓
6.4.1 規模に応じた適切なレベル選択
判断基準のまとめ:
| 学校規模 | 生徒数 | 推奨レベル | 理由 |
|---|---|---|---|
| 小規模 | 〜300名 | レベル1(手動) | 低コスト、簡単に始められる、月次更新で十分 |
| 中規模 | 300〜800名 | レベル2(半自動) | 投資対効果が良い、週次更新が可能、段階的に拡張 |
| 大規模 | 800名〜 | レベル3(自動) | リアルタイム更新必須、投資回収可能、組織的活用 |
重要: 最初から完璧を目指さず、レベル1から始めて段階的にステップアップすることが成功の鍵
6.4.2 成功要因の共通点
3校すべてに共通していた成功要因:
-
明確な目的意識
- 「なぜデータ収集するのか」が全教職員に共有されていた
- 子どもたちのための活用という原点を忘れなかった
-
段階的アプローチ
- 小さく始めて、成功体験を積み重ねた
- 失敗を恐れず、改善を続けた
-
キーパーソンの存在
- データ収集・活用を推進するリーダーがいた
- 管理職の理解と支援があった
-
セキュリティへの配慮
- すべてのケースでMicrosoft Purview 秘密度ラベルを適用
- SharePoint/OneDriveでの一元管理
- 権限設定の徹底
-
継続的な改善
- 運用開始後も改善を続けた
- 教員からのフィードバックを反映した
6.4.3 よくある失敗パターンと対策
失敗パターン1: 完璧を求めすぎる
- 症状: すべてのデータを一度に集めようとして挫折
- 対策: 優先順位をつけて、最も重要なデータから始める
失敗パターン2: 技術先行
- 症状: 新しいツールを導入したが、誰も使わない
- 対策: 現場のニーズを最優先、既存スキルで始める
失敗パターン3: 一人で抱え込む
- 症状: 担当者が異動したらシステムが止まった
- 対策: 複数人での体制、文書化、引き継ぎ計画
失敗パターン4: セキュリティ軽視
- 症状: ローカルPCやUSBでデータ管理、情報漏洩リスク
- 対策: 必ずSharePoint/OneDrive、秘密度ラベル適用、権限管理
まとめ
第6章では、3つの異なる学校規模での実践事例を紹介しました。
重要なポイント:
-
学校規模に応じたレベル選択
- 小規模: レベル1(手動)
- 中規模: レベル2(半自動)
- 大規模: レベル3(自動)
-
段階的なアプローチ
- 最初から完璧を目指さない
- 小さな成功体験を積み重ねる
-
共通の成功要因
- 明確な目的、キーパーソン、セキュリティ配慮、継続改善
-
セキュリティは必須
- すべてのケースでMicrosoft Purview 秘密度ラベル適用
- SharePoint/OneDriveでの一元管理
- 権限設定の徹底
あなたの学校に最適な方法は?
本章の3つの事例を参考に、自校の状況(規模、IT環境、担当者のスキル、予算)を踏まえて、最適なデータ収集方法を選択してください。
次の第7章では、収集したデータをAgent ModeやPower BIでどう活用するかを学びます。
title: 第7章 データ収集後の活用 - 整備されたデータで深い示唆を得る
第7章 データ収集後の活用
第1章から第6章まで、データ収集の仕組み化を学んできました。第7章では、整備されたデータを使って継続的に価値を生み出す方法を学びます。
この章で学ぶこと:
- Agent Modeでの継続的な探索と分析
- 定期的なレビューとKPIモニタリング
- Power BIへの移行準備
- 組織での展開とデータ文化の醸成
【重要】データ収集は手段、改善が目的
データ収集の仕組み化は、それ自体が目的ではありません。整備されたデータを使って、子どもたちの学びや学校運営を改善することが真の目的です。
7.1 Agent Modeでの継続的な探索
7.1.1 整備されたデータでの分析
第1部との違い:
| 項目 | 第1部(探索段階) | 第2部完了後(仕組み化後) |
|---|---|---|
| データ鮮度 | 手動で集めた古いデータ | 定期的に更新される最新データ |
| データ範囲 | 一部のデータのみ | 複数ソースを統合した全体像 |
| 時系列分析 | 困難(過去データなし) | 容易(履歴が蓄積) |
| 分析頻度 | 年1〜2回 | 月次・週次で継続的に |
| 信頼性 | 手作業でエラーあり | 自動化でミス削減 |
整備されたデータで可能になる分析例:
例1: 時系列での推移分析
第1部では「今学期の出席率」しか見れなかったものが、仕組み化後は、
【Agent Modeへの質問】
「過去1年間の出席率の推移を学年別に分析してください。
季節による傾向はありますか?」
【Agent Modeの回答例】
[折れ線グラフを自動生成]
分析結果:
- 1年生: 4月 98.5% → 6月 97.2% → 9月 97.8% → 12月 96.5%
→ 冬季にインフルエンザで低下傾向
- 3年生: 4月 97.0% → 6月 96.8% → 9月 96.2% → 12月 95.8%
→ 受験期の2月にさらに低下(95.2%)
【示唆】
1年生は冬季の感染症対策が重要。
3年生は受験期のメンタルヘルスケアが必要。
例2: 複数データソースの統合分析
校務支援システムの成績データと、Microsoft Formsの学習意欲アンケートを統合:
【Agent Modeへの質問】
「数学の成績と『数学が好きですか?』アンケートの相関を分析してください。
成績は低いが意欲が高い生徒を抽出してください。」
【Agent Modeの回答例】
[散布図とフィルタリングされた表を生成]
相関係数: r = 0.42(中程度の正の相関)
成績は低いが意欲が高い生徒(15名抽出):
- 2年1組 生徒A: 数学平均45点、意欲スコア4.5/5.0
- 2年3組 生徒B: 数学平均48点、意欲スコア4.8/5.0
...
【示唆】
この15名は「やる気はあるが結果が出ていない」層。
個別指導や学習方法の見直しで伸びる可能性が高い。
例3: より深い示唆の抽出
過去3年分のデータが蓄積された状態で:
【Agent Modeへの質問】
「過去3年間の進路希望と実際の進路実績を比較してください。
希望と実績にギャップがある分野を教えてください。」
【Agent Modeの回答例】
[サンキーダイアグラムと集計表を生成]
主なギャップ:
1. 看護系希望 → 実際は商業系進学(7名)
理由: 学力不足、経済的理由
2. 理工系希望 → 実際は文系進学(12名)
理由: 数学・物理の成績低下
3. 就職希望 → 実際は専門学校(5名)
理由: 就職先が見つからず
【示唆】
1年次からの進路ガイダンスと学習支援の強化が必要。
特に理系科目の基礎固めが重要。
7.1.2 定期的なレビュー
月次レビューの例(小学校):
## 〇月度 データレビュー
### 1. 出席状況(自動更新)
- 全校出席率: 97.8%(前月比 -0.5%)
- 継続欠席者: 2名(前月: 1名)
→ 該当児童への家庭訪問実施済み
### 2. 学習進捗(Agent Mode分析)
【質問】「今月の単元テスト結果を学年別に分析」
【結果】
- 1年生算数: 平均85点(目標80点達成)
- 4年生算数: 平均72点(目標未達、分数でつまずき)
→ 来月、分数の補習を実施
### 3. アンケート結果(Forms自動集計)
- 学校生活満足度: 4.2/5.0(前月: 4.1)
- 友達関係: 4.5/5.0(安定)
- 授業の分かりやすさ: 3.8/5.0(要改善)
→ 授業改善研修を企画
### 4. 次月のアクション
1. 4年生算数の補習実施
2. 授業改善研修の実施
3. 継続欠席者のフォローアップ
学期ごとのKPIモニタリング(中学校):
学校経営計画で設定したKPIを定期的にモニタリング:
| KPI | 目標 | 1学期実績 | 2学期実績 | 3学期見込み | 達成状況 |
|---|---|---|---|---|---|
| 学力向上 | |||||
| 全国学力テスト平均 | 全国平均+5点 | +3点 | - | +5点 | △(改善中) |
| 定期テスト平均 | 前年度比+3点 | +2点 | +4点 | +5点 | ✓ |
| 生活指導 | |||||
| 出席率 | 98%以上 | 97.8% | 97.5% | 97.2% | △(冬季低下) |
| いじめ認知・解消率 | 100% | 100% | 100% | - | ✓ |
| 進路指導 | |||||
| 第一志望合格率 | 85%以上 | - | - | 87% | ✓ |
| 進路未決定率 | 0% | - | - | 0% | ✓ |
Agent Modeでの深掘り分析:
【質問】
「出席率が目標未達の要因を分析してください。
学年別、月別の傾向を教えてください。」
【回答例】
出席率低下の主要因:
1. 1年生: インフルエンザによる学級閉鎖(11月〜1月)
2. 3年生: 受験期の体調不良(1月〜2月)
3. 特定生徒の不登校傾向(年間通じて)
【改善施策】
- 感染症対策の強化(手洗い・換気の徹底)
- 受験生のメンタルヘルスケア
- 不登校生徒への個別支援
7.1.3 改善アクションの効果測定
データ収集の仕組み化により、施策の効果を定量的に測定できます。
例: 算数補習の効果測定(小学校)
施策前:
4年生算数 平均点: 72点
特に分数の理解度が低い(正答率 58%)
施策: 放課後補習を2週間実施(週3回、各30分)
施策後(Agent Modeで分析):
【質問】
「補習実施前後で、4年生の分数問題の正答率を比較してください。
補習参加者と非参加者の差も分析してください。」
【回答例】
[ビフォーアフター比較表とグラフを生成]
全体:
- 補習前: 正答率 58% → 補習後: 正答率 78%(+20%改善)
補習参加者(18名):
- 補習前: 54% → 補習後: 82%(+28%改善)
補習非参加者(12名):
- 補習前: 64% → 補習後: 71%(+7%改善)
【示唆】
補習の効果は明確。参加者は大幅に改善。
非参加者も授業内容の定着により改善傾向。
例: 生徒指導施策の効果測定(中学校)
施策: 1年生に「ライフスキル教育」を導入
効果測定(半年後):
【質問】
「1年生の学校生活アンケート結果を、ライフスキル教育導入前後で比較してください。
特に『ストレス対処』『対人関係』のスコアに注目してください。」
【回答例】
[導入前後の比較グラフ]
ストレス対処能力:
- 導入前(4月): 3.2/5.0
- 導入後(10月): 4.1/5.0(+0.9改善)
対人関係スキル:
- 導入前(4月): 3.8/5.0
- 導入後(10月): 4.3/5.0(+0.5改善)
いじめ認知件数:
- 導入前年度: 8件
- 導入年度: 3件(-62%減少)
【示唆】
ライフスキル教育は生徒の適応力向上に効果的。
次年度も継続実施を推奨。
7.2 Power BIへの移行準備
第3部「Power BIによる教育ダッシュボード開発」に向けて、データ基盤を準備します。
7.2.1 データモデルの設計
スタースキーマの基本:
Power BIでは、データを「ファクトテーブル」と「ディメンションテーブル」に分けて設計します。これはスタースキーマと呼ばれる成熟したモデリング手法で、リレーショナルデータウェアハウスで広く採用されています。
スタースキーマの特徴:
- ディメンションテーブルは「フィルタリング」と「グループ化」を可能にします
- ファクトテーブルは「集計」(サマライズ)を可能にします
- Power BIのレポートビジュアルは、モデルをクエリしてデータをフィルタ、グループ化、集計します
- スタースキーマはPower BIのパフォーマンスと使いやすさを最適化するために推奨される設計です
ファクトテーブル(事実の記録):
ファクトテーブルは観測や出来事を保存します。教育分野では成績、出席、アンケート結果などがこれに該当します。
ファクトテーブルの特徴:
- ディメンションキー列を含む(ディメンションテーブルへのリレーションシップ用)
- 数値メジャー列を含む(集計対象の値)
- ディメンションキー列がファクトテーブルの「次元性」を決定します
- ディメンションキー値がファクトテーブルの「粒度」を決定します
- 一般的に行数が多く、時間とともに増加し続けます
ファクト_成績.xlsx:
| 成績ID | 生徒ID | 科目ID | 日付ID | 学年クラスID | 得点 | 平均点 | 偏差値 |
|---|---|---|---|---|---|---|---|
| 1 | S0001 | K01 | 20240415 | 1-1 | 85 | 78 | 55.2 |
| 2 | S0002 | K01 | 20240415 | 1-1 | 92 | 78 | 61.8 |
| 3 | S0001 | K02 | 20240415 | 1-1 | 78 | 75 | 51.5 |
ファクト_出席.xlsx:
| 出席ID | 生徒ID | 日付ID | 学年クラスID | 出席区分 | 遅刻 | 早退 |
|---|---|---|---|---|---|---|
| 1 | S0001 | 20240408 | 1-1 | 出席 | 0 | 0 |
| 2 | S0002 | 20240408 | 1-1 | 出席 | 0 | 0 |
| 3 | S0003 | 20240408 | 1-1 | 欠席 | 0 | 0 |
ディメンションテーブル(マスタデータ):
ディメンションテーブルはビジネスエンティティ(モデル化する「もの」)を説明します。エンティティには製品、人、場所、そして時間自体を含む概念が含まれます。教育分野では生徒、科目、日付などが該当します。
ディメンションテーブルの特徴:
- 一意識別子として機能するキー列を含みます
- データのフィルタリングとグループ化をサポートする列を含みます
- スタースキーマで最も一貫して見られるテーブルは日付ディメンションテーブルです
- 一般的に行数は比較的少数です(ファクトテーブルと比較して)
ディメンション_生徒.xlsx:
| 生徒ID | 氏名 | 性別 | 入学年度 | 現学年 | 現クラス |
|---|---|---|---|---|---|
| S0001 | *** | 男 | 2023 | 1 | 1 |
| S0002 | *** | 女 | 2023 | 1 | 1 |
| S0003 | *** | 男 | 2023 | 1 | 2 |
ディメンション_科目.xlsx:
| 科目ID | 科目名 | 教科 | 必修選択 | 単位数 |
|---|---|---|---|---|
| K01 | 国語総合 | 国語 | 必修 | 4 |
| K02 | 数学Ⅰ | 数学 | 必修 | 3 |
| K03 | 英語コミュニケーションⅠ | 英語 | 必修 | 3 |
ディメンション_日付.xlsx:
| 日付ID | 日付 | 年度 | 学期 | 年 | 月 | 週 | 曜日 |
|---|---|---|---|---|---|---|---|
| 20240408 | 2024-04-08 | 2024 | 1 | 2024 | 4 | 15 | 月 |
| 20240409 | 2024-04-09 | 2024 | 1 | 2024 | 4 | 15 | 火 |
リレーションシップの定義:
モデルリレーションシップは2つのテーブル間のフィルター伝播パスを確立します。リレーションシップのカーディナリティプロパティによってテーブルタイプが決まります。
一般的なリレーションシップカーディナリティ:
- 一対多(1:∗) または 多対一(∗:1)
- 「一」側は常にディメンションテーブルです
- 「多」側は常にファクトテーブルです
【一対多リレーションシップ】
ディメンション_生徒[生徒ID] (1) → (∗) ファクト_成績[生徒ID]
ディメンション_科目[科目ID] (1) → (∗) ファクト_成績[科目ID]
ディメンション_日付[日付ID] (1) → (∗) ファクト_成績[日付ID]
ディメンション_生徒[生徒ID] (1) → (∗) ファクト_出席[生徒ID]
ディメンション_日付[日付ID] (1) → (∗) ファクト_出席[日付ID]
重要: Power BIではテーブルプロパティでディメンションまたはファクトを設定する必要はありません。モデルリレーションシップによって自動的に決定されます。
現在のExcelファイルからの移行例:
現在のデータ(非正規化):
| 生徒ID | 氏名 | 学年 | クラス | 科目名 | テスト日 | 得点 |
|---|---|---|---|---|---|---|
| S0001 | *** | 1 | 1 | 国語総合 | 2024-04-15 | 85 |
| S0001 | *** | 1 | 1 | 数学Ⅰ | 2024-04-15 | 78 |
移行後(正規化):
ファクトテーブルとディメンションテーブルに分割し、冗長性を排除。
7.2.2 Power BIでの接続準備
データソースの整理:
Power BIがサポートする保存場所にデータを配置します。OneDrive for BusinessまたはSharePoint Onlineにファイルを保存すると、Power BIサービスと同期が保たれます。
| 保存場所 | Power BI接続モード | 推奨度 | 備考 |
|---|---|---|---|
| OneDrive for Business | Import(自動同期) | ◎ | 最も推奨。約1時間ごとに自動チェックして更新 |
| SharePoint Online | Import(自動同期) | ◎ | チーム共有に最適。OneDriveと同様に自動同期 |
| ローカルExcel | Import(手動のみ) | △ | 非推奨。ファイル変更時に手動で再インポート必要 |
| Azure SQL Database | DirectQuery/Import | ◎ | 大規模データに最適。DirectQueryでリアルタイム参照可能 |
OneDrive/SharePoint使用時の重要な仕組み:
- Power BIは約1時間ごとにファイルの更新をチェックします
- ファイルに変更があれば、Power BIサービスが自動的に同期します
- ファイル自体のモデルデータとレポートがPower BIに読み込まれます
- データソースから最新データを取得するには、別途スケジュール更新を設定します
OneDrive/SharePointでの配置例:
OneDrive for Business/
└── 教育データ基盤/
├── ファクトテーブル/
│ ├── ファクト_成績.xlsx
│ ├── ファクト_出席.xlsx
│ └── ファクト_アンケート.xlsx
├── ディメンションテーブル/
│ ├── ディメンション_生徒.xlsx
│ ├── ディメンション_科目.xlsx
│ ├── ディメンション_日付.xlsx
│ └── ディメンション_学年クラス.xlsx
└── 設定ファイル/
└── データ更新手順.md
更新方法の設計:
パターン1: 手動更新(小規模校)
1. 月次でExcelファイルを更新(Power Queryで自動統合)
2. OneDriveに上書き保存
3. Power BIで「データを最新の情報に更新」をクリック
パターン2: スケジュール更新(中規模校)
1. Power Automateで週次自動更新
- 校務支援システムからCSVエクスポート
- SharePointのExcelファイルに追記
2. Power BI Service でスケジュール更新設定
- 設定 → データセット → スケジュール更新
- 頻度: 毎週月曜 6:00 に自動更新
- Pro: 1日最大8回まで更新可能
- Premium/PPU: 1日最大48回まで更新可能
重要: OneDrive/SharePoint更新とデータ更新の違い
- OneDrive更新: ファイル自体の変更(新しい列、メジャー、ビジュアル等)を同期
- データ更新: データソースから最新データを取得してモデルに読み込む
- 両方を有効にする場合は、OneDrive更新の後にデータ更新が実行されるようスケジュールを設定します
パターン3: DirectQueryによるリアルタイム参照(大規模校)
1. Azure Data Factoryで日次自動更新
- APIからデータ取得
- Azure SQL Databaseに格納
2. Power BIはDirectQuery接続
- データをインポートせず、ソースに直接クエリ
- ビジュアルごとに1つ以上のクエリをデータソースに送信
- 常に最新データを参照(キャッシュなし)
DirectQueryの特徴:
- Import接続との違い: Importはデータをメモリにキャッシュ、DirectQueryは都度クエリ
- 利用シーン: データが頻繁に変更される、データ量が大きい、ソース側のセキュリティを適用したい場合
- パフォーマンス: ソースDBのパフォーマンスに完全に依存(インデックス設計が重要)
- 更新頻度: Pro/Premium/PPUライセンスでダッシュボードタイルを15分ごとに更新可能
Import vs DirectQueryの選択基準:
- Import推奨: 小〜中規模データ、高速なレスポンス必要、インメモリエンジンの全機能を使いたい
- DirectQuery推奨: 大規模データ、データ鮮度が最優先、データ主権/ガバナンス要件がある
セキュリティ設定:
Power BIでのセキュリティ設定を準備:
1. データソースレベルのセキュリティ:
OneDrive/SharePointの権限設定:
- データ管理責任者: フルコントロール
- データ管理者: 編集
- Power BI レポート作成者: 読み取り
- 一般教員: アクセス不可(Power BIレポート経由のみ)
2. Power BIの行レベルセキュリティ(RLS):
第6章で学んだRLSを適用し、ユーザーごとに表示データを制限:
// 担任ロール: 自クラスのデータのみ
[クラス] = LOOKUPVALUE(
教員マスタ[担当クラス],
教員マスタ[メールアドレス],
USERPRINCIPALNAME()
)
7.2.3 Power BI移行のチェックリスト
データ準備:
- ファクトテーブルとディメンションテーブルに分離
- 各テーブルにユニークなキー項目が存在
- データ型が統一されている(日付は日付型、数値は数値型)
- 欠損値の扱いが明確(NULL、0、空白の使い分け)
- マスタデータが最新に更新されている
保存場所:
- OneDrive for Business または SharePoint に配置
- ファイルパスが変わらないように固定
- 適切なフォルダ構成で整理
セキュリティ:
- Microsoft Purview 秘密度ラベル適用済み
- SharePoint/OneDriveの権限設定完了
- Power BI RLSの設計完了
更新方法:
- 更新頻度を決定(日次、週次、月次)
- 更新手順書を作成
- 自動化の方法を選定(手動、Power Automate、Azure Data Factory)
第3部への準備完了!
7.3 組織での展開
7.3.1 成功事例の共有
データ収集の仕組み化で成果が出たら、組織内で共有しましょう。
学年会・職員会議での報告例:
## データ活用の成果報告
### 背景
- 4月から出席データの自動収集を開始
- Agent Modeで月次分析を実施
### 具体的な改善効果
1. データ収集時間: 2時間/月 → 15分/月(87.5%削減)
2. 分析頻度: 学期ごと → 月次(4倍に増加)
3. 早期発見事例: 不登校傾向の生徒を1ヶ月早く発見し、家庭訪問実施
### 実際のデータ(スクリーンショット)
[Agent Modeの分析結果画面を提示]
### 他学年での展開提案
- 同じ仕組みを全学年に展開
- 教務主任が一括管理
- 各学年主任は月次レポートを受け取るのみ
### 支援体制
- 初期設定は私(情報担当)がサポート
- 月1回の定例会で運用状況を共有
管理職への報告例(投資対効果):
## データ基盤構築の投資対効果
### 投資
- 初期構築: 20時間(情報担当教員の作業時間)
- ランニングコスト: 1時間/月(メンテナンス)
### 効果(年間)
- データ収集時間削減: 2時間 × 12ヶ月 = 24時間/年
- 分析時間削減: Agent Modeで1時間 × 12ヶ月 = 12時間/年
- 合計削減: 36時間/年
### 投資回収期間
- 初期投資20時間 ÷ 年間削減36時間 = 約7ヶ月で回収
### 定性的効果
- 早期の問題発見による生徒指導の改善
- データに基づく学年会議での意思決定
- 教育委員会への報告資料作成の効率化
他の教員への支援:
データ活用に興味を持った教員をサポート:
## データ活用支援プログラム
### 対象
- データ活用に関心のある教員(5名まで)
### 内容
1. 個別相談(30分)
- 分析したいデータのヒアリング
- Agent Modeの使い方レクチャー
2. 初回分析サポート(1時間)
- 一緒にAgent Modeで分析体験
- 質問の仕方のコツを伝授
3. フォローアップ(随時)
- Teamsチャットでの質問対応
- 月1回のミニ勉強会
### 申込方法
Teamsの「データ活用チャネル」でメンション
7.3.2 データ文化の醸成
データに基づく意思決定の習慣化:
Before(勘と経験):
職員会議での議論:
教員A: 「最近、遅刻が増えている気がします」
教員B: 「そうですか?私はあまり感じませんが...」
教員C: 「去年よりは少ない気がします」
→ 主観的な意見のみで、具体的な対策が決まらない
After(データ駆動):
職員会議での議論:
教員A: 「データを確認したところ、遅刻者数は以下の通りです」
[Agent Modeの分析結果を提示]
- 4月: 8件/月
- 5月: 12件/月(+50%)
- 6月: 15件/月(+87%)
特に1年生の遅刻が増加(全体の60%を占める)
理由: 部活動開始による夜更かし
教員B: 「では、1年生向けに『生活リズム』の保健指導を実施しましょう」
教員C: 「7月のデータで効果を測定し、必要なら追加施策を検討します」
→ データに基づく具体的な施策と効果測定の計画
失敗を恐れない実験的な姿勢:
データがあれば、施策の効果を測定できるため、「とりあえず試してみる」ことができます。
実験的施策の例:
## 実験的施策: 朝読書の導入
### 仮説
朝の10分間読書で、1時間目の集中力が向上する
### 実験期間
6月〜7月の2ヶ月間、1年生のみで試行
### 測定指標
1. 1時間目の授業評価アンケート「集中できましたか?」
2. 1時間目の小テスト平均点
### 結果(Agent Modeで分析)
- 集中度: 3.5/5.0(5月) → 4.2/5.0(7月)(+0.7改善)
- 小テスト平均: 75点(5月) → 82点(7月)(+7点改善)
### 結論
効果が確認できたため、全学年に展開決定
継続的な改善のサイクル:
PDCAサイクルをデータで回す。
例: 学力向上のPDCAサイクル(1学期)
Plan(計画):
目標: 全国学力テスト算数で全国平均+5点
KPI: 定期テスト算数平均点 75点以上
施策: 少人数指導の導入
Do(実行):
4月〜7月: 算数の授業を習熟度別2クラスに分割
- 基礎クラス: 15名
- 発展クラス: 20名
毎週の小テスト結果をExcelに記録
→ Power Automateで自動集計
Check(評価):
【Agent Modeで分析】
「少人数指導導入前後で、算数の平均点を比較してください。
基礎クラスと発展クラスの伸びも分析してください。」
【結果】
全体平均: 70点(4月) → 78点(7月)(+8点改善)✓
- 基礎クラス: 62点 → 72点(+10点)
- 発展クラス: 76点 → 82点(+6点)
目標75点を達成!
Act(改善):
成果が出たため、2学期も継続。
さらに国語でも少人数指導を試験導入。
7.4 まとめ: データ収集後の真の価値
7.4.1 仕組み化はスタート地点
データ収集の仕組み化は、ゴールではなくスタート地点です。
仕組み化により実現すること:
- 継続的な探索: Agent Modeで月次・週次での分析が可能に
- 時系列分析: 過去データとの比較で傾向を把握
- 効果測定: 施策の効果を定量的に評価
- 早期発見: データの変化から問題の兆候をキャッチ
- 組織的活用: 個人ではなく、学校全体でデータを活用
7.4.2 第3部への準備が整いました
第7章まで学んだことで、以下が実現できました:
データ基盤の完成:
- 複数のデータソースからデータを収集
- 定期的に更新される仕組みを構築
- クレンジングとマスタ整備
- OneDrive/SharePointに安全に保管
- スタースキーマでデータモデル設計
これにより、第3部「Power BIによる教育ダッシュボード開発」の準備が整いました!
7.4.3 次の記事で学ぶこと
第3部「Power BIによる教育ダッシュボード開発」では、
-
Power BI Desktopの基礎
- データ接続と取り込み
- ビジュアルの作成
- DAX関数の基本
-
教育ダッシュボードの設計
- 対象者別のダッシュボード設計
- 効果的なビジュアルの選択
- インタラクティブな分析機能
-
Power BI Serviceでの公開と共有
- ダッシュボードの公開
- 行レベルセキュリティ(RLS)の実装
- 定期更新の設定
-
実践的なダッシュボード例
- 校長・教頭向け: 学校経営ダッシュボード
- 教務主任向け: 学力分析ダッシュボード
- 学年主任向け: 学年運営ダッシュボード
- 担任向け: クラス状況ダッシュボード
お楽しみに!
本章のまとめ
第7章では、データ収集後の活用方法を学びました。
重要なポイント:
-
Agent Modeでの継続的な探索
- 整備されたデータで時系列分析が可能に
- 複数データソースの統合分析
- より深い示唆の抽出
-
定期的なレビューとKPIモニタリング
- 月次・学期ごとのレビュー習慣化
- 学校経営計画のKPIを定量的に追跡
- 施策の効果を測定
-
Power BIへの移行準備
- スタースキーマでのデータモデル設計
- OneDrive/SharePointでのデータ配置
- セキュリティ設定の準備
-
組織での展開
- 成功事例の共有
- データ文化の醸成
- PDCAサイクルをデータで回す
データ収集は手段、改善が目的
第2部で構築したデータ収集の仕組みを使って、子どもたちの学びと学校運営を継続的に改善していきましょう。
次の第3部では、Power BIで視覚的で分かりやすいダッシュボードを作成し、組織全体でのデータ活用をさらに加速します!
title: 第8章 まとめと次のステップ - データ収集から活用へ
第8章 まとめと次のステップ
第1章から第7章まで、教育データ収集の実践について学んできました。第8章では、これまでの学びを振り返り、あなたの学校に最適な方法を選択し、次のステップに進むための指針を提供します。
この章で学ぶこと:
- データ収集の3つのレベルのまとめ
- 段階的なステップアップの重要性
- あなたの学校に適したレベルの判断方法
- 第3部(Power BI編)への準備
- データ活用を成功させるための心構え
8.1 この記事で学んだこと
8.1.1 データ収集の3つのレベル
第2章で学んだデータ収集の3つのレベルを振り返ります。
レベル1: 手動収集(今すぐ始められる)
【特徴】
- 追加コスト: なし
- 必要スキル: Excel基本操作
- 所要時間: 15分〜2時間/月
- 更新頻度: 月次
【適した学校】
- 小規模校(〜300名)
- IT専任教員がいない
- 予算が限られている
- まずは試してみたい
【実施内容】
- 校務支援システムからCSVエクスポート
- Excelで手動統合
- OneDrive/SharePointに保存
具体例(第6章ケース1: 小学校150名):
- 月次でデータ収集(15分/月)
- Power Queryで半自動化
- データ収集時間を87.5%削減
- Agent Modeで月次分析
レベル2: 半自動収集(効率化を図る)
【特徴】
- 追加コスト: なし(Microsoft 365 A3/A5あれば)
- 必要スキル: Power Automate基礎
- 所要時間: 初期設定20時間、運用1時間/月
- 更新頻度: 週次〜日次
【適した学校】
- 中規模校(300〜800名)
- 情報担当教員がいる
- Power Automate使用可能
- 週次更新が必要
【実施内容】
- Power AutomateでForms自動収集
- SharePointリストへ自動追加
- 定期実行スケジュール設定
具体例(第6章ケース2: 中学校450名):
- 週次自動更新
- Microsoft Forms → Power Automate → SharePoint
- データ収集時間を83%削減
- 学年主任が自学年データを閲覧可能
レベル3: 自動収集(本格的なデータ基盤)
【特徴】
- 追加コスト: あり(Azure費用、SI業者費用)
- 必要スキル: Azure、SQL、API連携
- 所要時間: 初期構築4ヶ月、運用10分/週
- 更新頻度: リアルタイム〜日次
【適した学校】
- 大規模校(800名〜)
- 教育委員会支援あり
- 専門業者と契約可能
- 組織全体での活用
【実施内容】
- Azure Data FactoryでAPI連携
- Azure SQL Databaseに格納
- Power BIでDirectQuery接続
具体例(第6章ケース3: 高校1200名):
- リアルタイム更新
- API連携 → Azure Data Factory → Azure SQL Database
- データ収集時間を100%削減(完全自動)
- 全教員85名がダッシュボード活用
8.1.2 段階的なステップアップの重要性
一番重要な教訓: 小さく始める
【失敗パターン】
初めから完璧なシステムを目指す
↓
要件定義に時間がかかる
↓
予算が承認されない
↓
プロジェクトが頓挫
↓
何も始まらない
【成功パターン】
レベル1で小さく始める
↓
15分/月の作業で成果を実感
↓
Agent Modeで価値を確認
↓
管理職に成果を報告
↓
レベル2への投資が承認される
↓
段階的に拡大
段階的ステップアップの実例:
第1年目: レベル1(手動収集)
4月: データ棚卸し、優先順位付け
5月: SharePointサイト作成、Excelテンプレート作成
6月〜3月: 月次でデータ収集・分析
【成果】
- データ収集時間: 2時間 → 15分(87.5%削減)
- 分析頻度: 年3回 → 月12回(4倍)
- 早期発見事例: 不登校傾向を1ヶ月早く発見
第2年目: レベル2(半自動収集)
4月〜6月: Power Automateフロー構築
7月〜3月: 週次自動更新で運用
【成果】
- データ収集時間: 15分 → 5分(さらに66%削減)
- 更新頻度: 月次 → 週次(4倍向上)
- 学年主任も活用開始
第3年目: レベル3検討(自動収集)
4月〜6月: 教育委員会と協議、要件定義
7月〜12月: Azure基盤構築
1月〜: 本格運用
【成果】
- データ収集時間: 5分 → 0分(完全自動)
- 全教員がPower BIダッシュボード活用
- 教育委員会のモデルケースに
段階的アプローチのメリット:
- リスク最小化: 小さな投資で始めるため、失敗しても被害が小さい
- 学習機会: 各レベルでデータ活用の経験を積める
- 説得力: 実績があるため次の投資が承認されやすい
- 組織的成熟: 段階的にデータ文化が醸成される
- 現実的: 人員・予算・時間の制約に合わせて進められる
8.2 あなたの学校に適したレベルは?
8.2.1 判断基準のまとめ
判断基準の5つの軸:
| 軸 | レベル1 | レベル2 | レベル3 |
|---|---|---|---|
| 学校規模 | 〜300名 | 300〜800名 | 800名〜 |
| 更新頻度 | 月次で十分 | 週次が必要 | 日次〜リアルタイム |
| IT人材 | なし(Excel基本操作のみ) | あり(Power Automate可) | あり(Azure・SQL経験者) |
| 予算 | なし(追加コストゼロ) | なし〜小(Microsoft 365のみ) | あり(Azure費用・SI費用) |
| 組織的支援 | 不要(個人で開始可) | 教務主任の理解 | 管理職・教育委員会の支援 |
学校規模での判断(目安):
8.2.2 自己診断チェックリスト
あなたの学校はどのレベルから始めるべきか?
【レベル1チェックリスト】
以下の項目に3つ以上当てはまる場合、レベル1から始めましょう。
- 生徒数が300名以下
- IT専任の教員がいない
- 追加予算が取れない
- まずは試してみたい
- Excel基本操作はできる
- 月次更新で十分
- SharePoint/OneDriveが使える
- データ活用が初めて
【レベル2チェックリスト】
以下の項目に3つ以上当てはまる場合、レベル2から始められます。
- 生徒数が300〜800名
- 情報担当教員がいる
- Power Automateの基礎知識がある
- Microsoft 365 A3/A5ライセンスがある(Power BI Proライセンスを含む)
- 週次更新が必要
- 複数のデータソースを統合したい
- 学年主任もデータ活用したい
- レベル1で成果が出た
【レベル3チェックリスト】
以下の項目に3つ以上当てはまる場合、レベル3を検討できます。
- 生徒数が800名以上
- Azure・SQL経験者がいる
- 教育委員会の支援が得られる
- SI業者と契約できる予算がある
- リアルタイム〜日次更新が必要
- 全教員でデータ活用したい
- API連携が可能なシステムがある
- レベル2で成果が出て、さらに拡大したい
8.2.3 優先順位の設定
データ収集の優先順位付けフレームワーク:
データ収集は「全部やる」ではなく、「重要なものから順に」進めます。
優先順位マトリクス:
│ 重要度高
│
頻度高│ 【優先度1】 【優先度2】
│ すぐに開始 次のステップ
│ ・出席データ ・詳細な学習履歴
│ ・基礎的成績 ・保護者アンケート
────────┼──────────────────────
頻度低│ 【優先度3】 【優先度4】
│ 余裕があれば 後回し
│ ・年次調査 ・単発イベント
│ ・進路希望 ・臨時アンケート
│
└────────────────────→
重要度低
実践的な優先順位付け例(中学校):
優先度1(今すぐ開始):
- 出席・欠席データ(日次)
- 定期テスト成績(テストごと)
- 生徒アンケート(学期ごと)
優先度2(3ヶ月以内):
4. 小テスト成績(週次)
5. 保護者アンケート(学期ごと)
6. 部活動記録(月次)
優先度3(6ヶ月以内):
7. 進路希望調査(年2回)
8. 学習時間調査(月次)
9. 読書記録(月次)
優先度4(1年以内または余裕があれば):
10. 給食残量記録
11. 図書館利用記録
12. 保健室来室記録
8.3 第3部(Power BI編)への準備
8.3.1 整備すべきデータ
第3部「Power BIによる教育ダッシュボード開発」に進む前に、以下のデータを整備しておきましょう。
必須データ(最低限これだけは準備):
1. ファクトテーブル(1つ以上)
例: ファクト_成績.xlsx
- 生徒ID(ディメンションへのキー)
- 科目ID(ディメンションへのキー)
- 日付ID(ディメンションへのキー)
- 得点(メジャー: 集計対象)
- 平均点(メジャー: 集計対象)
2. ディメンションテーブル(2つ以上)
例1: ディメンション_生徒.xlsx
- 生徒ID(ユニークキー)
- 学年
- クラス
- 性別
例2: ディメンション_日付.xlsx
- 日付ID(ユニークキー)
- 日付
- 年度
- 学期
- 月
3. 保存場所
OneDrive for Business または SharePoint Online
└── 教育データ基盤/
├── ファクトテーブル/
│ └── ファクト_成績.xlsx
└── ディメンションテーブル/
├── ディメンション_生徒.xlsx
└── ディメンション_日付.xlsx
推奨データ(あるとさらに良い):
4. 複数のファクトテーブル
- ファクト_出席.xlsx
- ファクト_アンケート.xlsx
5. 充実したディメンションテーブル
- ディメンション_科目.xlsx
- ディメンション_学年クラス.xlsx
- ディメンション_教員.xlsx(行レベルセキュリティ用)
6. データ品質の確認
- 欠損値がない(またはNULLで統一)
- データ型が統一されている
- ユニークキーが重複していない
- リレーションシップが設定可能(キー項目が一致)
8.3.2 次の記事で学ぶこと
第3部「Power BIによる教育ダッシュボード開発」の内容:
1. Power BI Desktopの基礎
・Power BI Desktopのインストールと初期設定
- システム要件: Windows 11以降、RAM 4GB以上推奨、.NET 4.7.2以降
- インストール方法: Microsoft Storeから自動更新 または Download Centerから手動
- 必要なライセンス:
- Power BI Pro: レポート作成・公開・共有に必要(Microsoft 365 A3/A5に含まれる)
- Premium Per User (PPU): すべてのPremium機能を利用可能(Premium容量不要)
- 無料ライセンス: Power BI Desktop使用可能、共有には不可
・データ接続(OneDrive/SharePoint/Azure SQL)
- Import接続: データをメモリにキャッシュ(高速、オフライン可)
- DirectQuery接続: データソースに直接クエリ(リアルタイム、大容量対応)
・データモデルの構築
- スタースキーマ設計(ファクトテーブル + ディメンションテーブル)
- リレーションシップの設定(一対多のカーディナリティ)
・基本的なビジュアルの作成
- テーブル、マトリックス、カード、KPI
- 折れ線グラフ、棒グラフ、円グラフ
- スライサー、フィルター
・DAX関数の基礎
- メジャーと計算列の違い
- 基本的な集計関数(SUM、AVERAGE、COUNT)
- フィルターコンテキストの理解
重要: Power BI Desktopは月次で更新されるため、Microsoft Storeからのインストールがおすすめです(自動更新対応)。
2. 教育ダッシュボードの設計
・対象者別のダッシュボード設計
- 校長・教頭向け: 学校経営ダッシュボード
- 教務主任向け: 学力分析ダッシュボード
- 学年主任向け: 学年運営ダッシュボード
- 担任向け: クラス状況ダッシュボード
・効果的なビジュアルの選択
- KPIカード、折れ線グラフ、棒グラフ、表
- スライサー、フィルター、ドリルダウン
・インタラクティブな分析機能
- クロスフィルタリング
- ブックマーク機能
- ツールヒント
3. Power BI Serviceでの公開と共有
・Power BI Serviceへのレポート公開
・ワークスペースの作成と管理
・行レベルセキュリティ(RLS)の実装
- 担任ロール: 自クラスのみ閲覧
- 学年主任ロール: 自学年のみ閲覧
- 管理職ロール: 全データ閲覧
・スケジュール更新の設定
- Power BI Pro: 最大8回/日のスケジュール更新
- Power BI Premium/PPU: 最大48回/日のスケジュール更新
- 更新タイムゾーン設定の重要性((UTC+09:00) 大阪、札幌、東京)
- 更新時刻の推奨: 業務時間外(早朝・深夜)に設定してリソース負荷分散
- 手動更新(「今すぐ更新」ボタン)はスケジュール制限にカウントされない
- Import モードのみスケジュール更新が必要(DirectQueryは常に最新データ)
・ダッシュボードの共有方法
・モバイルアプリでの閲覧
4. 実践的なダッシュボード例
第3部では、以下のような具体的なダッシュボードを作成します:
例1: 学校経営ダッシュボード(校長・教頭向け)
- 全校出席率の推移(月次・学年別)
- 学力テスト平均の推移(科目別・学年別)
- 学校満足度アンケート結果
- 進路実績(過去3年比較)
例2: 学力分析ダッシュボード(教務主任向け)
- 科目別成績分布
- 学年別・クラス別平均点比較
- 個別生徒の成績推移
- 目標達成率の可視化
例3: 学年運営ダッシュボード(学年主任向け)
- クラス別出席率比較
- クラス別成績分布
- 生徒アンケート結果(クラス別)
- 欠席・遅刻の傾向分析
例4: クラス状況ダッシュボード(担任向け)
- 自クラスの出席状況(個別生徒)
- 自クラスの成績状況(個別生徒)
- 個別生徒の推移グラフ
- 要注意生徒の抽出
8.4 最後に
8.4.1 データ収集は手段、改善が目的
忘れてはいけない原点:
データ収集の仕組み化
↓
データ分析
↓
示唆の抽出
↓
改善アクション
↓
【子どもたちの学びと成長】← これが真の目的
データ活用の成功例(再掲):
例1: 早期発見による支援
データ分析で発見:
出席率が徐々に低下している生徒を発見(月次モニタリング)
アクション:
担任が早期に家庭訪問、保護者と面談
結果:
不登校の予防、継続的な登校を実現
例2: 指導方法の改善
データ分析で発見:
特定の単元で正答率が低い(Agent Mode分析)
アクション:
教材研究、補習の実施
結果:
次回テストで平均点+10点改善
例3: 組織的な改善
データ分析で発見:
学校満足度アンケートで「授業の分かりやすさ」が低い
アクション:
授業改善研修の実施、相互授業参観
結果:
次学期のアンケートで満足度向上
仕組み化自体が目的化しないために:
- 月1回は「このデータで何が改善できたか?」を振り返る
- 学年会・職員会議で具体的な改善事例を共有する
- 子どもたちの変化を定性的にも観察する
- データだけに頼らず、対話や観察も大切にする
8.4.2 一歩ずつ、着実に
完璧を目指さない勇気
【NG思考】
「全データが揃ってから始めよう」
「完璧なシステムを作ってから公開しよう」
「失敗したら恥ずかしい」
【OK思考】
「まず出席データだけでも始めてみよう」
「不完全でもいいから、月次で改善しよう」
「失敗から学んで、次に活かそう」
小さな改善を積み重ねる
第1ヶ月: Excelでデータ収集
第2ヶ月: SharePointに保存
第3ヶ月: Power Queryで半自動化
第4ヶ月: Agent Modeで分析開始
第5ヶ月: 月次レポート作成
第6ヶ月: 学年主任に共有
第7ヶ月: Power Automateで自動化検討
...
1年後には想像以上の成果が!
現場に合った方法を選ぶ
他校の成功事例は参考になりますが、
そのまま真似する必要はありません。
あなたの学校の:
- 規模
- IT環境
- 人材
- 予算
- 文化
に合った方法を選びましょう。
8.4.3 データ活用のコミュニティ
一人で抱え込まない
データ活用は一人で完結するものではありません。以下のコミュニティを活用しましょう:
校内:
- 情報担当教員との連携
- 学年主任との協力
- 管理職への報告と相談
校外:
- 教育委員会の研修会
- 他校との情報交換会
- オンラインコミュニティ(Microsoftコミュニティ、Qiita等)
学び続ける:
- Microsoft Learnでの学習(無料)
- Power BI公式ドキュメント
- 教育データ活用の事例研究
- 第3部「Power BIによる教育ダッシュボード開発」
8.5 本章のまとめ
第8章では、第2部全体を振り返り、次のステップへの準備をしました。
重要なポイント:
-
データ収集の3つのレベル
- レベル1(手動): 小規模、低コスト、今すぐ開始
- レベル2(半自動): 中規模、Power Automate、週次更新
- レベル3(自動): 大規模、Azure基盤、リアルタイム
-
段階的アプローチの重要性
- 小さく始めて、成功体験を積む
- リスク最小化、学習機会の確保
- 実績に基づく次の投資判断
-
あなたの学校に適したレベル
- 学校規模、更新頻度、IT人材、予算、組織的支援で判断
- 自己診断チェックリストで確認
- 優先順位をつけて段階的に拡大
-
第3部への準備
- ファクトテーブルとディメンションテーブルの整備
- OneDrive/SharePointへの配置
- データ品質の確認
-
データ収集は手段、改善が目的
- 子どもたちの学びと成長が真の目的
- 仕組み化自体を目的化しない
- 小さな改善の積み重ねが大きな成果に
おわりに
第2部「教育データ収集の実践」では、データ収集の仕組み化を学びました。
第1部で「Excel Agent Modeによる探索的分析」を体験し、データの価値を実感したあなたは、第2部で「継続的にデータを収集する仕組み」を構築する方法を学びました。
そして次の第3部「Power BIによる教育ダッシュボード開発」では、整備されたデータを使って、視覚的で分かりやすいダッシュボードを作成し、組織全体でのデータ活用を加速します。
データ活用の旅はまだ始まったばかりです。
一歩ずつ、着実に、そして楽しみながら、データを活用して子どもたちの学びと成長を支援していきましょう。
第3部でお会いしましょう!
参考情報
Microsoft公式ドキュメント
- Power Query リファレンス
- Power Automate ドキュメント
- SharePoint リスト活用ガイド
- Microsoft 365 セキュリティとコンプライアンス
- Azure Data Factory ドキュメント
- Power BI ドキュメント
関連記事(この3部作シリーズ)
- 第1部: Excel Agent モードではじめる教育データ利活用
- 第2部: 教育データ収集の実践(← この記事)
- 第3部: Power BIによる教育ダッシュボード開発(← 次の記事)
学習リソース
- Microsoft Learn(無料オンライン学習)
- Power BI コミュニティ
- Power Automate コミュニティ
データ活用を始めるあなたへ
この記事が、あなたの学校でのデータ活用の第一歩となれば幸いです。
不明な点や質問があれば、コメント欄やコミュニティで質問してください。
データ活用の仲間が、きっとあなたをサポートしてくれます。
それでは、第3部でお会いしましょう!