Notionその5~販売管理~

日々の生活のなかでNotionを使ってきました。最近はアルバイト業務管理のためのシステムもNotionで完成しました。
そのノウハウを生かし、”Notionを仕事で使う” という切り口で「販売管理業務」を例に基本的な使い方ご紹介したいと思います。この分野の情報をネットやマニュアル本でみつけられなかったため自分で組み立ててみました。もっとシンプルな方法があるのだろうと思いますが、使い方の一例としてご紹介します。

取り上げる例は「八百屋さんのレジ」です。販売日を入れ、商品をプルダウンリストから選ぶとその単価が設定され、数量を入れると金額が算出されます。単価は改訂に対応できます。
入力された多数のデータは、年月で絞り込んで月報にしたり、ひとつの商品だけを抽出して売上げ推移をみたり、担当者別に販売実績推移をみたりに使います。

1.データベースのリレーションとロールアップ

この仕組みを実現するために、「売上DB」と「単価DB」をつくり、ふたつのDBを関連づけ(リレーション)たうえで、「売上DB」に「単価DB」の情報を取り込んで(ロールアップ)利用しています。

単価をその日の単価表をみながら都度入力するのは大変だし間違いもおこります。
そこで単価はシステムのなかで自動的に読み出すようにしました。またシステムが最新の単価しか持っていないと、過去の売上データが新単価に変更されてしまう問題があるので、改訂年月日ごとの単価表をつくることでその問題がおこらないよにしました。

Notionは用意されているテンプレートを使うことでメモ・タクス管理などが簡単に実現できますが、それだけでは宝の持ち腐れです。メモやタクス管理だけに使うなら、それらに特化したアプリのほうが便利だと思います。
Notionが活躍するのは、ややこしい事柄を扱う分野です。単純な整理だけでは処理できない事柄があったら、物事を縦横の表形式にして整理します。データベースです。

データベースは可能な限り一個にします。ややこしい事柄だと項目数が多くなり横長の表になりますがそれでいいんです。いわば「データ倉庫」ですね。表の1行がひとつのデータのかたまりです。そのなかの項目間で演算等をして目的とする項目を生成します。例えば、数量×単価=金額など。
横長の扱いづらいデータは、「リンクドビュー」という表示形式で、もとデータをそのままリンクによって別途に読み出し、目的に応じて表示項目を絞り込むなどの変更して使います。これでデータの入力・編集がやりやすくなるし、目的に応じたデータだけをみることができます。

アウトプットするときは、みせる必要ない項目を非表示にし、必要あれば項目の並び順を調整し、ビューといわれる多彩な表示形式(表・リスト・ボード・ギャラリー・カレンダー・タイムライン)で目的にマッチした見せ方にして使います。

本例の場合、当初はひとつのDB「売上DB」だけにしてみました。しかし販売品目が「みかん」ひとつのときは問題ありませんでしたが、「りんご」も「バナナ」も追加すると問題がでました。単価は品目別に改訂に対応させるのですが、販売管理DB単体ではその品目の販売日に該当する単価を摘出することはできませんでした。

そこで品目別・販売期間別の「単価DB」を設けて、そのなかから適合する単価を選出する方法にしました。まず「リレーション」を使って売上DBと単価DB間にリンク(相互接続)をはります。これで相互にDBを覗き込むことができるようになりますが、相手側のデータを利用することはできません。「ロールアップ」で可能になります。「ロールアップ」を使って単価DBから売上DBに単価情報を取り込み、その情報を扱える環境にします。
1件の販売データをつくるときに「りんご」か「みかん」か「バナナ」を指定します。品目欄に文字入力するのではなく、プルダウンメニューのなかから品目を指定するかたちです。これは本来は「単価DBへのリレーション」という項目ですが、最終的には項目名を「商品名」に書き換えています。

<単価表>
商品ごとの2020/1/1~・2021/1/1~・2022/1/1~の販売単価表です。

テーブルに各項目を入力する。
項目名(プロパティー)と属性
  商品名=タイトル(このDBのキー項目)
  2020・2021・2022年の販売単価=数値
  ↗売上DB=リレーションをつくると自動的に生成される項目です。

<売上表>

①販売年月日を現れるカレンダーで入力すると年月が表示されます。
②販売品目をプルダウンから選択すると単価が表示されます。
③数量を入力すると販売金額が表示されます。
④担当(担当者・支店など)を入力します。

項目名(プロパティー)と属性
  日付=日付 (****/**/** 文字型)
  日付数値=関数(toNumber(日付)で数値に変換する)
  ↗単価DB=リレーション/単価テーブル/商品名
  数量=数値
  2020・2021・2022年の販売単価=ロールアップ/単価テーブル/各単価
  単価文字=関数(IF文による分岐→項目2参照)
  単価=関数(toNumber(単価文字)で数値に変換する)
  金額=関数(数量*単価)                  
  担当=タイトル(このDBのキー項目:文字型のみ)

2.IF文による分岐

次に販売品目ごとに、販売年月日に応じて対応する単価を求める必要があります。これをNotionの関数のなかから IF 文で実現します。エクセルと同じで条件分岐のための関数です。

IF(条件、条件に合致した値、条件に合致しない値)という書き方になります。
IF文の条件で期間分岐させます。もし販売日が2021/1/1よりも前なら2020年単価を適用、もし2022/1/1よりも前なら2021年単価を適用、2022/1/1以降なら2022年単価を適用します。
IF文の条件式として、日付文字(****/**/**)も2021/1/1なども文字型データですので数値型に変換して使います。単価文字も単価DB上では数値型ですが、ロールアップして持ってくると文字型に変っていますので、これも数値型に変換して金額計算ができるようにしておきます。
文字型から数値型に変換するには、「toNumber」という関数を使います。toNumber(文字型データ)とすると、データは数値型になります。

これで目的を達成することができましたが、今後単価を改訂する都度にIF文を書き換える必要があります。
IF(条件、条件に合致した値、IF(条件、条件に合致した値、条件に合致しない値))
このように入れ子を追加する必要があり、日々に単価が変動するような場合は事実上運用は困難です。一気に該当する単価を摘出できる関数があるといいんですが、残念ながらデータベースというものの制約で、できないのではないでしょうか。このへんはわたしの能力ではよくわかりません。

なお、月報をつくるには年月日を年月に転換したデータをつくることで指定年月の抽出を簡単にさせます。関数を使って、formatDate(年月日、”YYYYMM”)とすれば 2022/05/05 というデータは 202205 になります。

3.システム項目の非表示

数値のための項目など、目的達成のためにやむを得ず作ったシステムのための項目は邪魔です。それらは「項目の非表示」でかくし、みやすい表に仕上げます。


投稿者: こもれび倶楽部

戦後昭和歌謡曲と8ミリを楽しんでいます。