はじめに
今回は数や仮名を順につなぐ課題を作成します。
抹消課題では1~複数個の決められた対象を探す課題であったのに対し、順につなぐ課題ではルールに則って探索対象が順次変わること、その探索対象は基本1個でありゴールがわかりやすいことが大きな違いかと思います。
ここでは、注意機能の面では「個数」で負荷調整を、「ルール」をアレンジして認知処理に負荷をかけられるようにしたいと思います。
作り方としては用紙の範囲一面に
①乱数を発生させ、
②その乱数に順位をつけ、
③上位〇個に対しラベルを表示できれば完成です。
では、始めます。
乱数表を作成します
まず、乱数表を作成します。
必要な範囲にRANDBETWEEN関数(使い方は四則演算参照)で1~100000の間で乱数を発生させます。
手順としては「A1」セル~「AA25」セルの範囲全面にRANDBETWEEN関数を入力してから、隙間として、B,D,F・・・列、2,4,6・・・行をDeleteして幅を狭めると作りやすいです。
RANK関数で順位表を作成します
次に、この乱数表に順位をつけていきます。
そのために、RANK関数を使用します。
使い方は「=RANK(数値, 参照, 順序)」で、数値が参照データ中、何位かを示します。順序で昇順か降順を設定できます。
では、新しいシート(シート名:順位表)を準備します。
先ほどの乱数表と同じ手順で、用紙の範囲(「A1」セル~「AA25」セル)にRANK関数を入力します(例「A1」セルには「=RANK(乱数表!A1,乱数表!$A$1:$AA$25,1)」と入力します。これで「A1」セルの順位が表示されます)。
乱数表を作ったときと同じように先に全面にRANK関数を入力してから、隙間を消した方が楽かと思います。
これで準備が整いました。
VLOOKUP関数、IFERROR関数、INDIRECT関数で仕上げます
この順位表の上位〇個をピックアップし、適当なラベルにして表示できれば完成です。
具体的には、VLOOKUP関数を使用して「順位表」の順位の値をキーにして、対応するラベルを抽出し表示します。
では、改めて、メインの新しいシート(シート名:数字)を一枚用意します。
まず、次のように印刷範囲外(印刷レイアウトはA4横、余白各辺1cmで作成)にVLOOKUP関数用の一覧表を作成します。
「順位」をキーに、それに対応する「ラベル」を決め、一覧表にします。順位(1~20位)に対応するラベルをそのまま1~20にします。「個数」は紙面上に何個表示させるかです(後述)。
では、数式を構成します。
まず「A1」セルに「=VLOOKUP(順位表!A1,$AC$1:$AD$21,2,FALSE)」と入力します。VLOOKUP関数の使い方は電卓問題を参照ください。
さて、次のようなエラーが出たのではないでしょうか。
実は、この数式では上位20位までは表示されますが、21位以上は一覧表に値がないので「検索できません!」とエラーになります。
そこで、このエラー表示を空白に変換するために、とても便利なIFERROR関数を使用します。
計算したい数式がエラーを返したら、それをキャッチして指定した結果を返してくれる関数です。
使い方は「IFERROR(数式,エラーの時の値)」です。先ほど入力したVLOOKUP関数を「=IFERROR(VLOOKUP(順位表!A1,$AC$1:$AD$21,2,FALSE),“”)」のようにIFERROR関数で囲み、エラーの時の値を「“”」にします。
これでVLOOKUP関数がエラーを返したときにはIFERROR関数が空白を返します。もちろんエラーを返さなければ、そのままVLOOKUP関数の結果が返ります。
さて、ここまではVLOOKUP関数が参照する一覧表の範囲を「$AC$1:$AD$21」と数式中に直打ちしていました。
ただ、これでは常に20個の表示となるため、これを柔軟に変更できるようにしたいです。
そこで一覧表「AE2」セルの「個数」を参照するようにしたいのですが、「$AC$1:$AD$AE2」とはできません。
これを可能にするために、INDIRECT関数を使います。
便利な関数で、文字列で書いたセル番号を解釈し参照してくれる関数です。
使い方は「=INDIRECT(参照文字列)」で、この参照文字列は「文字列」なので切ったりつないだりができるのです。
「$AC$1:$AD$AE2」を実現するために、VLOOKUP関数の「$AC$1:$AD$21」を「$AC$1:INDIRECT(“$AD$”&$AE$2+1)」のように書き直します。Excelでは、“”で囲むと文字列データとして扱われ、文字と文字をつなぐのに「&」を使います。文字列「$AD$」と「AE2」セルの値(20)+1をつなぎ、「$AD$21」として扱われます。
これを組み込むと、
「=IFERROR(VLOOKUP(順位表!A1,$AC$1:INDIRECT(“$AD$”&$AE$2+1),2,FALSE),””)」です。
大分複雑になってきましたね。
これを用紙の必要範囲内に入力すると仕組みは完成です。
これで、一覧表の「個数」を変えるだけで表示する個数を変えることができます。
あらかじめ一覧表に40個ほどラベルを設定しておけば、10個でも30個でも、その方に応じて修正することができます。
見た目を整えます(条件付き書式)
あとは少し見た目を整えます。見た目は好みで変えて頂くとよいかと思いますので、変え方を記載します。
条件付き書式を使用します。使い方は抹消課題(応用)を参照ください。 条件付き書式に次のように条件設定します。
- ルールの種類:「指定の値を含むセルだけを書式設定」
- ルールの内容:「セルの値」「次の値に等しくない」「=””」
- 書式は適当に。少し背景色を入れたり、セルの枠線をつけると強調されます。
これで完成です。
ランダムな表示なので、次の探索対象が近くにあるとは限らず難易度は高めになります。「個数」で難易度は調整してください。
ラベルを仮名に変えれば仮名の課題に変えられます。
ラベルを工夫すると、いろんなパターンを作成することができますし、用紙サイズを変えることもできます。
3の倍数です。計算の負荷がかかります。
同じ数字が2個続くことがあります。抑制が必要になります。
・・・などなど、アレンジが可能です。
サンプルファイルを載せます。ここからダウンロードしてください。
お疲れさまでした。