では、現場運営表作りを半自動化して、ヒューマンエラーによる
1人多かった!やばい!
はたまた
あれ!?●●さん、今日じゃなかったっけ!?
という繁忙期あるある(じゃダメなんですが…)を無くそう!
と言いました。
その中で
※このセルは、VLOOKUP関数と、別の関数を同時に使用するので、改めてご説明します。
と一部の機能を棚上げしてしまったので、今回はそのご説明です。
前提条件
前回同様、顧客名簿をExcelもしくはGoogleスプレッドシートで作っている場合に、今回の方法が威力を発揮します。
イメージはこんな感じ。
完成イメージ
顧客Noを打ち込むだけで、所持器材などが自動的に表示される様なテンプレートを作成します。
前回の記事ではこのうち、器材に関する情報の自動入力が完成していませんでした。
使用する関数-IF
Excelやスプレッドシートには様々な関数、つまり、ある条件を与えると、特定の結果を返してくれる便利なものが予め実装されています。
今回使用するのはIFという関数です。
Excelを提供するMicrosoftによると
IF 関数は Excel で頻繁に使用される関数の 1 つであり、ある値と期待値を論理的に比較できます。
スプレッドシートを提供するGoogleによれば
論理式が TRUE の場合はある値を返し、FALSE の場合は別の値を返します。
つまり、条件分岐を実現する関数です。
実例を挙げて見て見ましょう。
灰色のセル(=場所)に『=IF(A4=A7,”YES”,”NO”)』と打ち込むことで、与えられた条件を判断し、正しい場合、異なる場合、それぞれの結果を表示します。
この関数を訳してみると
“A4″の値(山田)と”A7″の値(山田)が等しい、これが正しければ”YES”、間違っていれば”NO”と表示しなさい
という意味です。
最初の条件を判断する部分には、等号や不等号だけでなく、計算式や関数などを含めることも出来ます。
また、結果を返す部分も、文字列だけでなく、計算式や関数を入れることが出来ます。
実装
今回は1つのファイルに”顧客リスト”と”現場運営表”というシートが存在するとして考えます。
※別ファイルの場合、別の関数や構文が出てきてしまうので…
重器、マスク、フィンに関しては参加者が所持していてレンタル不要の場合に『-』、持っておらずレンタルの準備が必要な場合に『●』を表示します。
尚、これらはフリーサイズ、もしくはサイズがあっても3種類程度なのでこの様にしています。
ウエットやドライスーツ、ブーツに関しては、レンタルの準備が必要な場合にはサイズを表示する様にします。
重器・マスク・フィン
前回のVLOOKUPも利用します。
構文は以下の通り。
“=IF(VLOOKUP(参加者のNo,’顧客リスト’!A2:V4,器材所持を表す列番号,FALSE)=””,”●”,”-”)”
ここで、”‘顧客リスト’!”は『顧客リストというシートの』という意味です。
”●●=”””というのは、●●が空白なら、という意味です。
尚、全てを手入力する必要は無く、”FALSE”と構文を区切る”,(カンマ)”、正誤の結果を表す文字列以外は該当の場所をクリック(セルの場合)またはドラッグ(範囲の場合)することで自動的に入力されます。
これを踏まえて各項目を見てみましょう。
1:”=IF(VLOOKUP(A6,’顧客リスト’!A2:V4,17,FALSE)=””,”●”,”-”)”
2:”=IF(VLOOKUP(A6,’顧客リスト’!A2:V4,18,FALSE)=””,”●”,”-”)”
3:”=IF(VLOOKUP(A6,’顧客リスト’!A2:V4,21,FALSE)=””,”●”,”-”)”
以上の通りです。
スーツ・ブーツ
この項目ではもう一工夫して、結果を返す際に、もう一度VLOOKUP関数を使用します。
構文は以下の通り。
“=IF(VLOOKUP(参加者のNo,’顧客リスト’!A2:V4,器材所持を表す列番号,FALSE)=””,VLOOKUP(参加者のNo,’顧客リスト’!A2:V4,身長や体重を表す列番号,FALSE),”-”)”
具体的にはこちら。
4:”=IF(VLOOKUP(A6,’顧客リスト’!A2:V4,17,FALSE)=””,VLOOKUP(A6,’顧客リスト’!A2:V4,14,FALSE),”-”)”
5:”=IF(VLOOKUP(A6,’顧客リスト’!A2:V4,17,FALSE)=””,VLOOKUP(A6,’顧客リスト’!A2:V4,15,FALSE),”-”)”
6:”=IF(VLOOKUP(A6,’顧客リスト’!A2:V4,17,FALSE)=””,VLOOKUP(A6,’顧客リスト’!A2:V4,16,FALSE),”-”)”
以上の通りです。
参考-重器やフィンのサイズも自動表示にする
フィンのサイズ、S・M・Lの3サイズをレンタルで準備している場合が多いでしょうか。
そのサイズ判定までを自動化するのであれば、結果を返す際に計算を噛ませ、さらにIF関数を用いて条件分岐することで、実現可能です。
~例~
足のサイズが24cm以下はS、25cm~26cmはM、27cm以上はL
の場合
=IF(VLOOKUP(A6,’顧客リスト’!A2:V4,21,FALSE)=””,IF(VLOOKUP(A6,’顧客リスト’!A2:V4,16,FALSE)<25,”S”,IF(VLOOKUP(A6,’顧客リスト’!A2:V4,16,FALSE)<27,”M”,”L”)),”-”)
こんな感じです。
尚、入れ子になった複雑なIF関数は、IFSという関数で表現することも出来ます。
これについてはまた詳しくご説明しますね!
<追記>
現場運営を考えるとレンタルフィンの在庫数と、当日の必要数に応じて足のサイズとフィンのサイズが1対1対応で無い場合も十分に考えられると思うので、その辺りまで自動化するためには、かなりの工夫が必要だと思います。BCも同様ですね。
また、BCやウエットの場合は、身長と体重、性別から総合的に判断する必要があるので、これもなかなか難しいでしょう。
出来ないことは無いと思いますが、全部自動化してしまうと、融通の利かなさ、というデメリットも出てくるので、自分は最初にご紹介した形が一番使いやすく感じています。
なんでもパソコン、ではなく、パソコンと人の手、双方の良いところを上手く使い分けて、効率化と正確性、柔軟性を一気に実現してみませんか?