Squareで公演チケットのオンライン販売~DLデータ活用編(前)~

ここは、小~中劇場規模の舞台公演(主に演劇)で制作やチケット管理業務をしてきた私が培ってきた事を綴るnoteです。

以前、公演チケットのオンライン販売でSquareを取り上げましたが、

ダウンロードした販売データが、この説明だけだとやはり使いづらいかと思い、補足をしたいと思います。

このnoteで出来るようになることは、
関数を使用して一つのセルから欲しい文字を抽出したり、

1回の注文で複数の券種や日時を購入した場合のデータをまとめる方法です。


1.商品登録の際に

まずはチケット販売をするにあたり、公演を一つの商品として登録し、オプションで公演日時と券種を選択できるように設定します。

商品登録は特に難しいことはありません。感覚的に操作していけます。
※オンラインビジネスから商品登録しないと、イベントチケットを作成できません。

[オンラインビジネス]→[商品]→[サイトの商品]→[新規商品を登録]

[商品タイプ]→[イベント]に変更
[商品タイトル]→公演名
としたら、オプショングループを作成します。
今回は公演日時と券種(一般、U25)を作り価格を設定します。

形式は公演日時はドロップダウン、券種はラジオボタンに設定。
すると販売画面ではこのように表示されます。

その他、販売サイトのレイアウトや返信メールの文言など色々他にもすることはありますが、これも感覚的にできると思います。
必要な設定を完了すれば販売開始できます。

2.販売データをダウンロードする

販売データをダウンロードする手順は2通りあります。
(1) [ホーム]→[オーダー]→データをエクスポート
(2) [ホーム]→[オンラインビジネス]→[オーダー]→データをエクスポート

取得する情報はほぼ同じですが、なぜか書式が違います。
(1)は、文字化けしてない、一覧も断然見やすいデータがダウンロードされます。しかし、どのデータをダウンロードするかは手動で設定しないといけません。なのでダブりやダウンロードし忘れがおこる可能性があるので注意してください。

(2)は、ダウンロードの確認がその場で出来ず一度メールで送られてくる、文字化けしてる(Windowsだけかも)、表が見づらいetc 使いづらいところもありますが、「最後のエクスポート以降の注文」を選択してダウンロードできるのは手動のミスが減らせて良いところだと思います。

3.セルから文字を抽出する関数(TEXTBEFORE/AFTER)

今回は(2)でダウンロードしたデータを使用してみます。
文字化けを直したり、申し込み1件分を抽出する方法(UNIQUE関数)は、前の記事の後半部をご覧ください。

チケット購入する際に、オプションで公演日時と券種を選べるようにしましたが、ダウンロードしたデータは全て1つのセルに入ってしまいます。

このままでも集計などは出来ますが、できれば日時と券種は別のセルに分けたいと思います。
文字を抜き出す関数にはLEFT,RIGHTなどがありますが、ここで使用するのは、こちら。
TEXTBEFORE/AFTER・・指定した文字または文字列の前(後)に出現するテキストを返す。

=TEXTBEFORE(text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found])

text・・・検索対象の文字列/セル
delimiter・・・抽出したい文字の前にある文字。区切り文字(記号)
[instance_num]・・・区切り文字が何番目の文字か指定※省略可
[match_mode]・・・大文字小文字の区別(する=0/しない=1)※省略可
[match_end]・・・テキストの末尾を区切り記号として扱う。※省略可
[if_not_found]・・・一致しない場合に返す文字 ※省略可

商品のオプションのセル(AI3)を使って説明します。

まずは券種である "一般" を、TEXTAFTERを使用して抽出してみます。
上の式に当て嵌めてみると、
text・・・AI3
delimiter・・・コロン(:)
[instance_num]・・・2
[match_mode]・・省略/ [match_end]・・省略/ [if_not_found]・・省略

=TEXTAFTER(AI3,":",2)
となります。delimiterは ” ” で囲ってください。

これで、2個目のコロン(:)より後ろのある文字列が抽出されました。

次に公演日時である、11月16日(木)19時 を抽出したいと思います。前にも後ろにもいらない文字があるので、TEXTBEFOREとTEXTAFTERを併用します。
つまり、コンマ(,)より前 かつ 1個目のコロン(:)より後ろの文字を抽出する式を作ります。
=TEXTBEFORE(TEXTAFTER(AI3,":",1),",")

コンマはセル内に1つしかないので、TEXTBEFOREの[instance_num]は省略できます。
beforeとafterの順番を逆にしても同じ結果になります。
=TEXTAFTER(TEXTBEFORE(AI3,","),":",1)

これで公演日時だけ抽出する事ができました。

少し長くなりましたので、後編に続きます。


この記事が気に入ったらサポートをしてみませんか?