2016.08.29 (Mon)
オフィスソフト使いこなし(第23回)
エクセルを使ってリピートユーザーの売上を判別する
売り上げデータを集計するとき、リピーターがどの程度あるのかわかれば、今後の経営に非常に役立ちます。
ここでは、飲食ホテル業の予約集計を例に、数式やチェックボックスを使って、リピーターの把握がわかりやすくできる方法を考えていきましょう。
数式がたくさん出てきますので、少し難解に感じるかもしれませんが、一度作ってしまえば、その後の入力の手間は半減します。
1) まずは資料を準備する
まずは、宿泊者の情報を入力する「住所録」と、宿泊料金などを記載した「予約コース」という2つのシートを作成します。
新しいシートは、現在のシートの右に「+」ボタンをクリックすると作成されます。住所録には、予約者の名前や住所、電話番号を入力し、「予約コース」にはコースや料金の情報を入力し、それぞれ名前をつけておきます。
さらにもう1つ、予約関する詳しい情報を記載する「予約状況」というシートを作成しましょう。項目については後で付け足せるので、今は必要な部分を並べておけばOKです。
2) 宿泊した月を表示する数式を入力する
入力ができたら、実際にデータを入力します。まずは、後で月別の状況を集計するために、宿泊した日から月だけを抜き出す式を、予約状況の「予約日」の欄に入力します。
式:=IF(B2=””,””,MONTH(B2))
関数「month」は、予約日が3月なら「3」、4月なら「4」を予約月に自動的に入力させます。「MONTH(B2)」だけ入力するのでもよさそうですが、予約日が未入力のセルでは値が取れないので、エラー表示になります。それを回避するため、あえて「IF」から始まる前半部分が必要になります。
3) 数式で省入力
予約状況のセルに、予約者の指名と住所を入力していきます。しかし、できるだけ文字や数値を入力する部分を減らした方が間違いの数は減りますし、入力もラクです。
そこで、過去に予約をした人の名前を入力すると、自動的に住所録から住所と電話番号を呼び出す数式を入力しましょう。数式は以下のとおりになります。
住所に入力する式:=IF(D2=””,””, VLOOKUP(D2,住所録!B:L,10,FALSE))
電話番号に入力する式:=IF(D2=””,””,IF(VLOOKUP(D2,住所録!B:L,6,FALSE))
ここで使った「vlookup」という関数は、指定した範囲(ここでは住所録)から、氏名に入力された値と一致するデータを選び、住所列(10番目の列)から該当する住所を選んで表示させる関数です。
もう一度、住所を呼び出す数式をもう一度振り返りましょう。
式:=IF(D2=””,””, VLOOKUP(D2,住所録!B:L,10,FALSE))
最初のif関数は、データが入力されていないときにエラー表示されるのを回避するための配慮です。
以降は、氏名(d2)に入力されているデータを、住所録シートにあるデータ(住所録!B:L)から検索し、これに完全一致(FALSE)するデータがあれば、住所列(10)から抽出する、という命令となります。
“10”というのは、住所録シートの中の「氏名」列(B列)から10番目の列という意味です。電話番号を表示するのであれば、B列から6番目なので、”6”となります。
ところが、ここで1つ問題があります。住所録にないデータが入力されると、エラーが表示されます。気になるなら、少し複雑ですが、エラーが出ないようにできます。それには、数式に「もし住所に該当する氏名がなければ空白を表示する」という命令を付け加えます。
まずは、住所録の氏名に合致する名前があるかどうかを判別する列を追加します。そして電話番号の右側の列番号のところで右クリックし、「挿入」を選びます。すると、電話番号の右に新しい行が追加されます。
挿入した列に、次の数式を入力します。
式: =IF(D2=””,””,COUNTIF(住所録!B:B,予約状況!D2))
上記の関数は、住所録に該当の名前があれば“1”,なければ“0”を表示する、という命令です。
さきほど「IF~VLOOKUP~」を入力した住所の列に戻り、エラーが表示されないように、式を修正しましょう。
式:=IF(D5=””,””,IF(G5=1,VLOOKUP(D5,住所録!B:L,10,FALSE),””))
If関数の間にもう一つif関数を挟みます。これで、氏名が空白なら“”、空白でなく、チェック欄が”1”ならvlookup関数を実行し、それ以外なら“”となります。
この数式は、もちろん住所以外の欄でも対応可能です。たとえば電話番号の場合は、住所に当たる”10”から、電話番号のセルに当たる”6”に変えます。
ここで、今まで作った式を、それぞれの下のセルにコピーし、データを入力していきます。数個入力してみて、正しい値が出ない場合は、範囲の選択や式の書き間違いをチェックし、修正していきます。
4) リスト表示で省入力
数式以外でも、わかっている項目はリスト選択をする方法があります。ここでは、予約状況のシートの「予約コース」欄に、リスト入力を使ってみましょう。
メニューリボンの「データ」タブをクリックし、データの入力規則を選択します。
ポップアップが開くので、入力値の種類にリストを選び、リストに使用する範囲(予約コースシートの予約コース行に入力されたセル)を「元の値」に入力します。
範囲はセルをコピーしたときにずれないように、「$B$1:$B$8」のように“$”をはさんでおきます。“$”は、セルや範囲を指定したときに、コピーや移動で範囲がずれるのを防ぐための記号です。
これで「予約コース」をイチイチ入力することなく、プルダウンで選択することができます。このリスト入力をコピーするには、普通のコピペではなく、「書式のコピー」を選択します。
5) 計算式を入力する
金額などは計算式で一度にやってしまいましょう。
「予約状況」のシートに入力した大人、子どもの人数と、「予約コース」シートに入力された料金から、金額を簡単に求める式を作ります。ここで「lookup」関数を使います。「vlookup」関数とよく似ていますが、設定が簡単なのでこちらを使います。
まずは、大人の予約金額を算出する計算式を作りましょう。そのための第一歩として、「予約コース番号」のセルに、以下の式を入力します。
式: =IF(K2=””,””,LOOKUP(K2,予約コース!$B$2:$B$8,予約コース!$A$2:$A$8))
これは「予約コース」シートに登録した連番を呼び出すための関数です。すでにK列で予約コースは選択されているため、K列を参照するように指示しています。下の行にもコピーしていきますが、参照元は変わらないため、“$”を忘れないようにしましょう。
続いて、予約時の大人の金額を算出しましょう。 “予約コースの大人の金額”×”大人の人数“です。If関数とlookup関数を組み合わせ、以下の数式をM列に入力します。
式:=IF(L2=””,””,(LOOKUP(L2,予約コース!$A$2:$A$8,予約コース!$C$2:$C$8))*予約状況!I2)
L列で表示した予約コースの番号を元に大人料金を参照し、その料金と人数をかけることで、大人料金の合計金額を算出しています。
これは子供料金に関しても同様です。N列にこども金額、合計金額に以下の数式を入力し、下のセルにコピーして、表を完成させます。
6) チェックボックスを使う
ここからもう少しステップアップしましょう。当初の目的である、リピーターがどのくらいあるか、チェックボックスを使って、わかりやすくする方法です。
「リピータチェック」列(G列)の上にチェックボックスを作ります。「開発」タブのメニューを使いますので、メニューに表示されていない場合には、「ファイル→オプション→リボンのユーザー設定」の順にクリックし、右側の一覧の「開発」のところのチェックボックスをオンにします。
続いて、「リピータチェック」のセルを選択して、コードの表示を選びます。すると、VBAのコードが表示されます。
詳しい説明は省きますが、とりあえず下記コードを入力してみてください。これはチェックボックスを一気に作成するマクロのプログラムです。作成数とスタートするセルの位置は適宜設定します。
‘——–↓ここを変更———
Sakuseisuu = 60 ‘チェックボックスの作成数
Set StartCell = Range(“G2”) ‘スタートする位置
‘——–↑ここを変更———
For i = 0 To Sakuseisuu – 1
With StartCell.Offset(i)
Set myChk = ActiveSheet.OLEObjects.Add(ClassType:=”Forms.CheckBox.1″, Link:=False, _
DisplayAsIcon:=False, _
Left:=.Left, Top:=.Top, _
Width:=.Width, Height:=.Height)
End With
With myChk
.LinkedCell = StartCell.Offset(i, 1).Address
.Object.Caption = “” ‘空白にする
.Object.Value = False
End With
Next
End Sub
‘————–ここまで貼り付ける——————–
コピーが終わったら、コードは開いたままで、元の表を表示させます。タスクバーのExcelアイコンを長押しすると選択できます。
開発タブの「マクロ」をクリックし、実行ボタンをクリックしてマクロを実行させます。すると、リピーターのチェックボックスにマークが表示され、リピーターなのかそうでないのかが、一目瞭然でわかるというわけです。
7)まとめ
今回は難しい数式やプログラムも使いました。しかし、これらの関数を使えば、間違いも少なく、正しい分析が可能になります。チェックボックスを使うことで、リピーターの割合が一目瞭然となり、今後の事業展開にも役立てられます。ぜひ挑戦してみてください。
連載記事一覧
- 第1回 10分で作るエクセル見積書 2016.02.01 (Mon)
- 第2回 パワーポイントで「魅せる文書」を作ろう 2016.02.01 (Mon)
- 第3回 テンプレートを活用しよう(ワード編) 2016.02.01 (Mon)
- 第4回 エクセルの作業効率をあげよう 2016.02.01 (Mon)
- 第5回 パワーポイントのアウトライン機能を活用しよう 2016.02.01 (Mon)
- 第6回 エクセルのグラフを活用しよう 2016.02.01 (Mon)
- 第7回 パワーポイントにメディアを埋め込もう(前編) 2016.02.01 (Mon)
- 第8回 パワーポイントにメディアを埋め込もう(後編) 2016.02.01 (Mon)
- 第9回 関数を使って請求書を作ろう 2016.02.01 (Mon)
- 第10回 エクセルの便利な機能「ユーザー設定のビュー」を活用しよう 2016.02.01 (Mon)
- 第11回 エクセルシートのセルの設定を変更されたくない場合は「シートの保護」を使おう 2016.02.01 (Mon)
- 第12回 エクセル入力作業を効率化するショートカット8選 2016.02.01 (Mon)
- 第13回 エクセルの便利な機能「ウィンドウ枠の固定」を活用しよう! 2016.02.01 (Mon)
- 第14回 エクセルで1行おきに行の背景色を変える方法(「条件付き書式」の利用) 2016.02.01 (Mon)
- 第15回 エクセルで日付の書式を「ユーザー定義」で条件に応じて変更する方法 2016.02.01 (Mon)
- 第16回 添削にはワードの「変更履歴の記録」を活用しよう 2016.05.12 (Thu)
- 第17回 よく使う単語をユーザー辞書に登録して効率アップ 2016.05.23 (Mon)
- 第18回 ワードで作成した請求書に合計金額を自動で入れる 2016.06.16 (Thu)
- 第19回 ワードでつくった案内状に宛名を差し込み印刷しよう 2016.06.23 (Thu)
- 第20回 印刷されない文字「隠し文字」を活用しよう 2016.07.11 (Mon)
- 第21回 簡単ステップでワードにグラフを挿入しよう 2016.07.26 (Tue)
- 第22回 エクセルで売り上げ予測を立てて目標を設定する 2016.08.09 (Tue)
- 第23回 エクセルを使ってリピートユーザーの売上を判別する 2016.08.29 (Mon)
- 第24回 画像圧縮でパワーポイントのファイル容量を減らそう 2016.09.06 (Tue)
- 第25回 パワーポイントのスライドショーを「ペン」で強調! 2016.09.27 (Tue)
- 第26回 エクセルで月ごとの売上推移を管理する 2016.10.11 (Tue)
- 第27回 イベントのアンケート結果をエクセルで分析する 2016.10.24 (Mon)
- 第28回 エクセルを1枚で印刷したい、共有したい時の解決法 2016.11.14 (Mon)
- 第29回 エクセルで宛名にフリガナを付け簡単に並び替える方法 2016.11.28 (Mon)
- 第30回 入力するだけ!意外に便利なエクセル関数 2016.12.12 (Mon)
- 第31回 エクセルの「プルダウン」機能を使いこなそう! 2016.12.26 (Mon)
- 第32回 Webサイトの「階層」をエクセルで改善する方法 2017.01.16 (Mon)
- 第33回 簡単かつ見やすい!特定のセルを自動で強調する方法 2017.01.27 (Fri)
- 第34回 見やすいエクセルを作る「書式設定」6つのポイント 2017.02.07 (Tue)
- 第35回 エクセルで「重複削除」を使いこなす 2017.02.22 (Wed)
- 第36回 エクセルデータの抽出なら「フィルター」機能が便利 2017.03.08 (Wed)
- 第37回 図表作りの強い味方「SmartArt」を快適に使うコツ 2017.03.15 (Wed)
- 第38回 ワードの誤記を簡単に修正「校閲機能」を活用しよう 2017.04.05 (Wed)
- 第39回 作業スピードが大幅アップ!ワードのTips集 2017.04.19 (Wed)
- 第40回 画像を使い過ぎて容量が大きいファイルを軽量化する 2017.05.15 (Mon)
- 第41回 プレゼンをスマートにするパワーポイント操作法 2017.05.22 (Mon)
- 第42回 ワード文書を本のようなレイアウトで表示する 2017.06.05 (Mon)
- 第43回 エクセルのクイック分析でデータを視覚化する 2017.06.13 (Tue)
- 第44回 ワード文書に図や写真をセンスよく挿入する方法 2017.07.04 (Tue)
- 第45回 エクセルで作業効率を上げるキーボードショートカット集 2017.07.20 (Thu)
- 第46回 データに合わせた最適なグラフをエクセルで作る 2017.08.02 (Wed)
- 第47回 SmartArt機能でワード文書にフローチャートを作成 2017.08.18 (Fri)
- 第48回 あいさつ文は自動入力機能で!ワードの効率アップ術 2017.09.01 (Fri)
- 第49回 顧客リストや住所録に使えるエクセルの入力機能 2017.09.13 (Wed)
- 第50回 うっかり上書きを防止するワードの編集の制限 2017.10.03 (Tue)
- 第51回 エクセルのテーブル機能を5分でマスターする 2017.10.16 (Mon)
- 第52回 ワードの機能でプロにも負けない画像編集を実現! 2017.11.06 (Mon)
- 第53回 オフィス365のワンノートで作業効率を劇的にアップ! 2017.11.13 (Mon)
- 第54回 エクセルの「数える」関数を覚えて効率化を実現 2017.11.27 (Mon)
- 第55回 セル内の情報を分割してエクセル表を自由自在に操る 2017.12.11 (Mon)
- 第56回 エクセルのアイコンセットで見やすい表をつくる 2017.12.19 (Tue)
- 第57回 トレース機能で、数式の参照先を見える化 2017.12.25 (Mon)
- 第58回 エクセルのエラーチェック機能を活用してミスを防ぐ 2018.01.12 (Fri)
- 第59回 ワードの便利な表機能を使いこなそう 2018.01.24 (Wed)
- 第60回 パワーポイントのズーム機能で、プレゼン力アップ! 2018.02.07 (Wed)
- 第61回 エクセルの「セルの読み上げ」機能で見落としを削減 2018.02.13 (Tue)
- 第62回 エクセルのセルを関数、フラッシュフィルで結合 2018.02.19 (Mon)
- 第63回 タブレットでエクセル操作時に絶対覚えたい便利技 2018.02.26 (Mon)
- 第64回 エクセルの3Dマップで見栄えする地図グラフを作ろう 2018.03.05 (Mon)
- 第65回 エクセルの共同編集機能で効率的に作業を進めよう 2018.03.13 (Tue)
- 第66回 パワーポイントの蛍光ペン機能で見やすい資料作りを 2018.03.20 (Tue)
- 第67回 フォーム機能を使ってエクセルの入力時間を短縮! 2018.03.28 (Wed)
- 第68回 ワード文書の全角・半角を簡単に統一するテクニック 2018.04.06 (Fri)
- 第69回 エクセルで修正指示がきちんと伝わるコメント機能 2018.04.10 (Tue)