
バーコード管理.xlsmの調整 ~全提出を変更したい!~
バーコード管理のエクセルファイルについて質問があったので、お答えしたいと思います。
<バーコード管理.xlsmについては、以下のマガジンでまとめています。ファイルが欲しい方は、TwitterからDMをどうぞ。>
1 質問
質問なんですが、3つを全提出にしたい(つまり3つ出したら名前が消える)ってどうすればよいか教えて下さい😅
元のファイルは、5つの提出物がチェックできるように作られています。それぞれ、提出するとその人の名前が消える、また「全提出」に設定しておくと5つ全部提出すると名前が消えるように作ってあります。
ですが、「5つじゃなくて2つや3つで名前が消えるようにしたい!」というご要望があったので、調整の方法をお伝えしようと思います。「エクセル苦手で、関数とかよく分からん!」という人にも、できるだけ分かりやすく伝えたいと思いますので、見てみて下さい。
2 結論:ここを書きかえましょう
結論から言うと、H列、O列、V列の20行から33行にある関数を書きかえればOKです。例えばH列の場合、
=IF(SUM(C●●:G●●)=5,1,0)
の「5」という数字を「3」に変え、
=IF(SUM(C●●:G●●)>=3,1,0)
というように「>」も使えば、「3つ以上の提出物が出たら全提出とみなす」という指示になります。H20、O20、V20を書きかえて、フィルで下へとコピーすれば完了です。「この説明じゃよく分からん!」「ちゃんと式を納得して変えたい」という方は、3へ。
3 よく分かる図解説明① 下準備
まずは、調整するための下準備からです。
このエクセルファイルは、「シートの保護」と「ウィンドウ枠の固定」がかかっています。この2つを外さないと、データの調整ができません。まずは外し方から。
「シートの保護」は、一番上の「校閲」タブから「シート保護の解除」を押しましょう。パスワードはかけてないので、そのまま保護が外れるはずです。
「ウィンドウ枠の固定」は、一番上の「表示」タブから「ウィンドウ枠の固定」「ウィンドウ枠固定の解除」の順に押していけば外れます。
なお、「シートの保護」は間違ってプログラムを壊さないために。「ウィンドウ枠の固定」はバーコードを貯めていってもA2からU16が常に表示されるためにオンにしています。終わったら、元に戻しておくことをオススメします。(ウィンドウ枠の固定は、V17で固定しています)
4 よく分かる図解説明② 本番!
では、画面を下にスクロールしてH20からH33までのセルを見てみましょう。
そうなんです。真っ白なんです。
でも実はこれ、見た目が白いだけです。ちゃんと文字が入っているので、C20からV33くらいまでを範囲指定し、文字の色を変えてみましょう。
ここでは、分かりやすいように赤にしてみました。何色でもOKです。
さて、たくさんの0が並んでいます。あるいは、すでにバーコードがいくつか入力されている状態なら、1もいくつかあるかと思います。ここは、上の✔マークがつくところ(C3からG16など)を見て、空欄なら0、✔なら1というように表しています。
例えば、C20の中には、次のような式が入っています。
=IF(C3="",0,1)
これはIF関数で、「もしC3が""(=空欄)なら0を、そうでなければ1を返す」という式。これがC20~C33、D20~D33、E20~E33、……と入っているわけです。なので、✔が入っていなければ0、✔ならば1が自動的に入るはずです。
その中で、H列、O列、V列は特別です。例えばH20には、次のような式が入っています。
=IF(SUM(C20:G20)=5,1,0)
これはどういう意味でしょうか。
大きく見ると、先ほどと同じくIF関数です。訳すと、「もしSUM(C20:G20)=5ならば1を、そうでなければ0を返す」という式です。
SUMというのは、足し算。つまり、SUM(C20:G20)というのは「C20からG20までの数値の合計」を表します。
つまりH20は、C20からG20までの合計を確認して、それが5だったら「1」、そうでなければ「0」を返しますよ!というセルです。C20からG20までは5マスあるので、すべてが「1」ならばその合計が5になり、H20も「1」になるわけです。
↑ C20~F20まで「1」だけど、H20は「0」
↑ C20からG20まですべて「1」だと、その合計は5なので、H20も「1」になります。
では、「5つで提出物完了」ではなく「3つで提出物完了」にするにはどうすればよいでしょうか。…そうです。「合計で5なら1を」ではなく、「合計で3(以上)なら1を」という式に変えてしまえば良いのです。
もう一度確認すると、H20はこんな式でした。
=IF(SUM(C20:G20)=5,1,0)
まず、ここの「5」を「3」に変えれば、3つの提出物で全提出になります。書きかえましょう。(※必ず半角数字で!!)
=IF(SUM(C20:G20)=3,1,0)
はい、変わりました。H20の見た目が、0になっていますよね?「3つで全提出」なのに、「5つ」提出されたので、「1」ではなく「0」になっているのです。これでも構わないのですが、「3つぴったり」ではなく「3つ以上」にするのなら、次のような式。
=IF(SUM(C20:G20)>=3,1,0)
こうしておくと、3つ以上の提出物がそろえば「1」が入ります。
あとは、H20の部分をフィルで下にグーッとやれば、H列は完成です。
同じ要領で、O20からO33、V20からV33をやっておけば、「3つで全提出」のプログラムの出来上がりです。もちろん、2つなら数字を「2」に、4つなら数字を「4」にすればいいだけです。お疲れさまでした!
5 終わりに
こんな感じで、自分の使いやすいようにカスタマイズできるのが、エクセルでのプログラムの良いところです。すべての要望に応えられるかどうか分かりませんが、これからも何か質問・疑問等ありましたら、連絡してみてください。最後まで読んでいただき、ありがとうございました。