Googleスプレッドシートにおける教育現場での活用は様々あります。
そのなかで、今回はスプレッドシートを活用したランガムかつ、グループ内の人数があらかじめ指定できてしまう「グループふり分けシステム」をご紹介します。
Webサイトでいろいろと調べてみると、こうしたシステムは山ほどあると思います。
ですが、やはり生徒の名前を外部のサイトに記入して使うのは、個人情報の観点からベストな策とは言いがたいと思います。
そこで、そうした観点をクリアでき、かつグループ内の人数を事前に設定してランダムにふり分けることができたら、なにかと便利だと思います。
そうしたシステムを今回は無料で利用できるGoogleスプレッドシートをつかって実践していきます。
完成図は、下の画像になります。まずは、名簿を用意します
ボタンを押し、1グループに何人入れたいかを記入すると
ランダムに振り分けてくれる!
このような設定のやり方をご紹介します。
今回の記事では、以下の内容をご紹介します。
元塾講師6年 / 2023年度 第1志望校合格率 "71.4%"達成!(難関校合格あり)
高校数学・情報の教員免許取得!(元 科目等履修生[2年間])
文系で大学の情報学部に入学 / ITパスポート・基本技術者試験に合格!
Google スプレッドシートとGASで作業の効率化を上げていこう!
スプレッドシートでランダムに指定した人数でグループ分けをする方法には、Googleスプレッドシート(以下、スプレッドシートと省略)とGASについて理解する必要があります。
ここから解説していきます!
Google スプレッドシートとは
スプレッドシートは、Googleが提供しているクラウドベースでウェブブラウザからアクセスできる表計算ツールです。
この機能の概要は、以下の通りです。
エクセルは高度な分析ができる点が優れていますが、ライセンス料を払う必要があるので、コスト面を考えている人はスプレッドシートがオススメです!
GASとは
Google Apps Script(通称GAS)は、クラウドのプラットフォーム上で実行できるGoogleが提供しているサービスです。
この機能の概要は、以下の通りです。
- Googleアカウントがあれば、誰でも無料で利用可能
- GmailやGoogleカレンダー、スプレッドシートなど、Googleのさまざまなアプリに利用可能
- 自動化、アプリ間の連携など業務の効率化を実現
- JavaScriptを踏襲しているため、WEBエンジニアには学習ハードルが低い
- Googleアプリと外部アプリとの連携が可能
拡張機能なので、使えるように設定をする必要があります。一方で、設定方法も意外と簡単なので、すぐに試すことができると思います。
スプレッドシートでランダムに指定した人数でグループふり分け
下準備
今回はGASとGoogleスプレッドシートを使います。まずは、Googleスプレッドシートを開きましょう。
新しくスプレッドシートを作成
Googleスプレッドシートに移動してください。クリックすると以下の画面に移動します。
新しくスプレッドシートを作成するには赤丸を押してください。
この画面が開けたらOK
新しいスプレッドシートが作成できました。
これでスプレッドシートの準備は完了です!
GASを準備
上部の「拡張機能」をクリックし、「Apps Script」をクリック
この画面が開けたらOK
以下の画面はGASのホーム画面になります。
実は、スプレッドシートの拡張機能にGASが用意されているというわけなのです。
これで準備は完了になります!
補足
GASの最初に出てくる以下の関数は消してください
コードの記入
以下のコードをコピーし、GASに貼り付けてください。
function createRandomGroups() { const groupSize = Number(Browser.inputBox("1グループあたりの人数を入力してください")); if (isNaN(groupSize) || groupSize <= 0) { Browser.msgBox("正しい人数を入力してください。"); return; } const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName("名簿"); if (!sheet) { Browser.msgBox("「名簿」シートが見つかりません。"); return; } const names = sheet.getRange("A:A").getValues() .flat() .filter(name => name !== ""); if (names.length === 0) { Browser.msgBox("名簿が空です。"); return; } // 名前をシャッフル const shuffled = names.sort(() => Math.random() - 0.5); // グループ作成 const groups = []; for (let i = 0; i < shuffled.length; i += groupSize) { groups.push(shuffled.slice(i, i + groupSize)); } // 結果シートの作成・初期化 const resultSheetName = "グループ分け結果"; let resultSheet = ss.getSheetByName(resultSheetName); if (resultSheet) { resultSheet.clear(); // すでにあればクリア } else { resultSheet = ss.insertSheet(resultSheetName); } // 出力(列単位でグループを並べる) groups.forEach((group, colIndex) => { resultSheet.getRange(1, colIndex + 1, group.length, 1).setValues(group.map(name => [name])); resultSheet.getRange(1, colIndex + 1).setNote(`グループ${colIndex + 1}`); }); Browser.msgBox("グループ分けが完了しました!"); }
コードの説明をすると以下のようになります。
- 「名簿」シートのA列(A1:A)にある生徒名を取得
- 使用者が指定した人数ごとにランダムにグループを作成する
- ふり分けた結果を新しいシート「グループ分け結果」に出力される
ドライブにプロジェクトを保存
さて、コードを記入し終えたら、赤丸の「ドライブにプロジェクトを保存」が表示されるので、クリックしてください。
以下の画面になったらOK
赤い枠が表示されたら、問題ありません。
「実行」を選択
コードに問題がなければ、実行をクリックしましょう。
初回実行時について注意
GASの初回実行時はこの表示がされます。問題はないので、「権限を確認」をクリックしてください。
何を承認するのかというと、簡単に言えば、「あなたに代わってプログラムを実行しますがよろしいですか」という確認事項の承認です。
GASについての詳細設定は以下に記載しております↓
ボタンの作り方
下のように、図形のボタンを作成する方法があります。
ボタンを作成するメリットは、拡張機能「GAS」まで訪れて、プログラムを実行する手間を省くことができます。
下の記事から詳細を確認できます。
確認
スプレッドシートに戻ります。
実際に、以下のことがしっかりとできているか確認してみましょう。
- シート名を「名簿」に変更しているか
- 生徒の名前をA列(A1:A)に記入しているか
- ふり分けボタンにGASコードが埋め込まれているか
「ふり分けボタン」を押すと1グループあたりの人数を入力する項目が出てきます
入力すると下に新たにシート名『グループ分け結果』が出現
確認するとしっかりと5人ずつになり、最後は不足しているグループまで判明します
完成です!
補足
ちなみにグループごとに▲のマークがありますが、こちらは「グループ〇」かを教えてくれてます
最後に
グループ分けの一つの案として、視野に入れてくださると幸いです。外部のサイトをつかって分けるのもよいですが、いちいち記入する手間があります。
一方で、本記事ではデータ化された名簿を用意するだけで、グループ分けができますので、オススメです!