エクセルで100マス計算 マクロを利用せず掛け算・足し算・引き算 桁数も変更可能 正解不正解の色表示も 365・2019・2016・2013・2010・2007対応

今回の記事ではマクロを利用せずに、エクセルで関数だけで百マス計算を自動で生成する方法のご紹介です。

まずは今回ご紹介する百マス計算自動作成シートの仕様からご説明します。

スポンサーリンク

今回作成する百マス計算の仕様

左が解答で、右が実際に書き込む&入力する表です。

もちろん、A列からK列を非表示にすることによって問題だけ表示する・印刷することも可能です。

エクセルで100マス計算 掛け算

リストになっているA1セルから「+」を選ぶと自動的に足し算の百マス計算になります。

リストにより「掛け算」「足し算」「引き算」を選択可能

リストを変更するだけで、「掛け算」「足し算」「引き算」の百マス計算を自動で作成します。

足し算の百マス計算

また、位を設定することで、簡単に2桁の計算を作成することも可能です。

位の設定で簡単に2桁の計算に変更可能

下図は、足される数を2桁に設定した例です。

2桁の計算を自動生成も可能

さらに、計算結果セルは正解すると黄色に、間違えると赤色にセルが自動的に変化します。

百マス計算で正解すると黄色に、間違えると赤色にセルが変わる

記事を作成しているときに気付いたのですが、正確には100マスではなく9×9の81マスになりますが、今回ご紹介する方法で100マスにすることができます。

事前にご了解いただきますようお願いします。

それでは100マス計算を自動生成する方法を順にご紹介します。

スポンサーリンク

まずは重複しない乱数を2種類作成

まずは2種類の重複しない乱数を生成します。重複しない乱数を発生させる方法は次の記事も参考にしてください。

エクセルでランダムに数字を発生させたい! 乱数を発生させるRAND関数とRANDBETWEEN関数 重複しない乱数もRANK関数で 365・2019・2016・2013・2010・2007対応
今回は、エクセルでランダムな数字を発生させる方法のご紹介です。ランダムな数字を発生させることで、リストをランダムに並び変えたり、抽選やくじ引きに利用することができます。ランダムな数字を発生させる方法は簡単 RANDBETW...

まずは、下図のようにA3セルに「=RAND()」と入力します。

「RAND関数」は0から1までの間の小数第15位までの小数を自動でランダムに発生させます。

乱数を発生させる「RAND関数」

A3セルの数式をA11セルまでコピーします。

乱数を発生させる数式のコピー

RANK関数で整数の乱数に変換

A3セルの数値を、「RANK関数」で整数の数値に変換します。

「RANK関数」は、範囲内での順位を返す関数です。ここでは、A3セルからA11セルの数値を小さい順に順位づけします。

数式は「=RANK(A3,$A$3:$A$11)」となります。範囲は絶対参照にする必要があります。

「RANK関数」で乱数を整数化

その後、B3セルをB12セルまでコピーした結果が下図となります。1から9までの乱数が重複無しに発生していることがお分かりいただけますでしょうか。

1から9までの重複しない乱数が発生

同様にC1セルとC2セルに乱数と順位を設定し、K列までコピーします。

C1セルの数式は先ほどと同じく「=RAND()」、C2セルは「=RANK(C1,$C$1:$K$1)」となります。

数式を入力後C1~C2セルを選択し、K列までコピーします。

コピー完了後が下図となります。

行と列で重複しない乱数を発生させた
スポンサーリンク

まずは百ます計算を完成させていく

それでは、完成した乱数表から百マス計算に「リンク貼り付け」をします。

乱数を「リンク貼り付け」

シート「乱数表」のB3からB11セルを選択し、コピーします。

乱数表を百マス計算シートにコピー

コピーをする際に、「リンク貼り付け」をする必要があります。

「リンク貼り付け」とは、セルの数値が変更されると自動的に参照セルも変更されるコピー形式です。

「百マス計算」シートのA2セルを選択し、「形式を選択して貼り付け」メニューから「リンク貼り付け」をクリックするだけです。

「リンク貼り付け」

これで下図のように、乱数が変更されれば自動的に「百マス計算」シートの数値も変更されます。

百マスの列に乱数を表示した

同様に、「乱数表」シートのC2〜K2セルをコピーします。

行になっている乱数をコピー

そして下図のようにB1セルに「リンク貼り付け」をします。

以上で百マス計算の乱数は完成しました。

百マス計算の乱数が完成

行と列をそれぞれ掛け算する数式を入力する

続いて、行と列をそれぞれ掛け算する数式を入力します。

B2セルに「=$A2*B$1」と入力します。

「$」マークのついたセル参照を「絶対参照」または「複合参照」と呼びます。

B2セルに複合参照である数式を入力

「相対参照」「絶対参照」「複合参照」について詳しくは、下記の記事をご覧になってください。

エクセルの相対参照と絶対参照 違いが九九表を使って簡単・絶対理解できる! 複合参照も絶対マスター可能 365・2019・2016・2013・2010・2007対応
エクセルの相対参照と絶対参照って使い分けが難しいですよね。数式をコピーしてもどうしてもうまくいかない。。。相対参照と絶対参照を理解するには簡単な題材が必要です。今回は日本人なら誰でも理解ができる、「九九表」を作成し...

入力したB2セルの数式「=$A2*B$1」をB10セルまでコピーします。

数式をコピーする

さらにコピーしたB2〜B10セルをJ列までコピーした結果が下図です。

うまく計算されているのがお分かりでしょうか。

百マス計算の一旦完成となります。

百マス計算 一旦完成
スポンサーリンク

自動計算になっていると数値が変わる

作成途中で気付かれた方も多いと思いますが、エクセルはセルを編集するたびに自動で再計算を行います。

エクセルで知らない間に勝手に自動計算から手動計算になる? 恐ろしい「再計算病」 自動計算に戻す方法と原因を解明 計算方法の設定方法も 365・2019・2016・2013・2010・2007対応
ときどきエクセルのファイルを開いていて、マクロを実行しているとうまく動作しないときがあります。マクロにミスはないのですが、原因がわからず調べてみると、身に覚えのない「ブックの計算」方法が「自動計算」から「手動計算」に変更されていることがあ...

再計算がされると、乱数も再計算されますので編集するたびに乱数が変化します。

これでは困ったことになりますので、一旦ブックを手動計算に設定しておきます。

「数式」「計算方法の設定」「手動」をクリックして、このブックを開いている間は勝手に計算させないようにしておきます。

ブックの計算方法を「手動計算」に

ただ、ブックを閉じる前に「自動計算」に戻しておくことをおすすめします。

以下は「手動計算」後ほど状態で操作していきます。

スポンサーリンク

桁数を変更する機能を追加する

次に乱数の桁数を変更する機能を追加します。

B3セルに入力された数式「=RANK(A3,$A$3:$A$11)」に「+$B$12」を追加します。

 =RANK(A3,$A$3:$A$11)+$B$12

下図のようになります。

乱数の数式を編集

編集したセルB3のセルをB11までコピーします。

編集した数式をコピー

そしてB12の「位」セルに「20」と入力し、キーボードのF9キー(再計算実行)を押すと下図のようになりました。

数式の意味はお分かりでしょうか。「1〜9」の乱数に、ここでは「20」を加えることにより「21〜29」までの重複しない乱数を作成しています。

乱数の位を変更可能

同様に、C2セルは「=RANK(C1,$D$1:$K$1)+$L$2」に変更し、変更した数式をK2セルまでコピーします。

位を「20」とした状態が下図となります。

乱数を2桁の整数に変更

百マス計算のシートでキーボードのF9(再計算)キーを押すと、下図のようにうまく計算されていることが分かります。

2桁×2桁の百マス計算
スポンサーリンク

リストから掛け算・足し算・ひき算に変更できるように対応

このままでも十分すぎる百マス計算ですが、さらに機能を追加します。

掛け算以外に、足し算とひき算に対応するように変更します。

まずは、A1セルをクリックし、「データ」「データの入力規則」をクリックします。

「データ」「データの入力規則」
Excel(エクセル)プルダウンリスト(ドロップダウンリスト)のリストを可変式リストにすればリストの項目が増えても再設定不要! リストを名前の定義とテーブルにする2つの方法 365・2019・2016・2013・2010・2007対応
データの入力規則で、「元の値」をリストにして、プルダウンリスト(ドロップダウンリスト)を利用している方は多いと思います。「元の値」のリストは、Excel2007以前では、セル範囲での別シートを参照することができません。ですから参照...

ここでは単純に、「×」「+」「-」の三種類ですので、「データの入力規則」は下図のようになります。

入力値の種類は「リスト」、元の値はコンマ区切りで「×,+,-」を入力しOKをクリックします。

「データの入力規則」「リスト」

下図のように、リストA1セルをクリックするとリストが表示されました。

A1セルがリスト形式に

IFS関数による分岐

リストから「×」「+」「-」を選ぶことによって計算を変えるには「IFS関数」を利用します。

「IFS関数」に関する詳細は下記の記事をご覧ください。

Excel(エクセル)2019の新機能! 追加された新関数IFS(イフエス)の使い方 IF関数よりもシンプルに条件分岐が可能!
Excel(エクセル)2019で追加された機能Excel2019になっていろいろな機能が追加されています。CONCATIFSMAXIFSMINIFSSWICHITEXTJOIN最後にSがついている関数以外は...

B2セルを次のように変更します。

=IFS($A$1="×",$A2*B$1,$A$1="+",$A2+B$1,$A$1="-",$A2-B$1)
「IFS関数」で計算方法を分岐

「IFS関数」の分岐は下記のようになります。

「IFS関数」の分岐

編集したセルB2の数式をJ10までコピーし、再計算を実行する前の状態が下図になります。再計算を実行していませんので、まだ計算結果は正しくはありません。

数式をコピー(再計算前)

そしてA1セルを「+」に変更して、F9を押した状態が下図となります。

すべてうまく計算されていることがお分かりいただけますでしょうか。

掛け算から足し算に、簡単に変更可能
スポンサーリンク

百マス計算の解答欄を作成する

続いて、解答欄を作成します。解答欄の作成は非常にシンプルで簡単です。

まずA列~J列まで選択し、「ホーム」「書式のコピー/貼り付け」をクリックします。

「ホーム」「書式のコピー/貼り付け」

ここでは、となりにあるL列からU列までに書式をコピーしています。

セルの書式をコピー

そして同じ数値を連動させて表示するセル、まずはL1を選択し、「=A1」と入力します。

その後、L1セルをL10までコピーすると左側の百マス計算の列の数値が連動して表示されます。

数値が連動して表示される

同様にL1セルをU1セルまでコピーして、解答欄の完成です。

解答欄の完成
スポンサーリンク

解答欄のセルに条件付き書式を設定する

いよいよ最後です。

解答欄のセルに入力した値が正解なら黄色、間違いなら赤色にセルを塗りつぶすように条件付き書式を設定します。

エクセルのカレンダーで2020年の祝日を自動表示&土日祝日に色付けする方法 365・2019・2016・2013・2010・2007対応
今回は、条件付き書式による土日に色付けと、祝日を自動で表示して条件付き書式で祝日にも色付けをする方法の紹介です。祝日表示&土日祝のセルに色付け今回は結構簡単に完成します。エクセルで表示するカレンダーの準備から...

M2セルを選択した状態で「ホーム」「条件付き書式」「新しいルール」をクリックします。

「ホーム」「条件付き書式」「新しいルール」

同じセルに、下記の3つの条件を設定します。

1つ目は、「指定の値を含むセルだけを書式設定」、セルの値は「次の値に等しい」、条件は「=B2」、セルの塗りつぶしは「黄色」です。すなわち、正解のときはセルは黄色くなります。

条件付き書式 その1

2つ目は、「数式を使用して、書式設定するセルを決定」、数式は「=M2=””」、セルの塗りつぶしは「自動」です。こちらは数値が入力されていない(空白)の場合の設定となります。

条件付き書式 その2

3つ目のは、「指定の値を含むセルだけを書式設定」、セルの値は「次の値に等しくない」、条件は「=B2」、セルの塗りつぶしは「赤色」です。すなわち、解答結果が解答と違っていればセルは赤くなります。

条件付き書式 その3

M2セルの「条件付き書式」は以下の3つの設定となります。

うまく設定できない場合は下図を参考にルールの順番を変更してください。

「条件付き書式ルールの管理」

続いて「条件付き書式」を設定したM2セルの書式をM2~U10までコピーします。

「条件付き書式」を設定したセルの書式をコピー

すると、下図のように正解したセルは黄色に、間違えたセルは赤色に変化します。もちろん空欄は自動のままです。

正解は黄色に、間違いは赤色にセルが変わる

もちろんA列からK列を非表示にしても、解答欄は作動します。

注意点は問題を変更したいときはキーボードのF9を押すことと、ブックを閉じる前に「計算方法」を「自動計算」に設定して保存することの2点となります。

不明な点がありましたら、コメントをいただけたらご返信いたします。

コメント

タイトルとURLをコピーしました