P4Pをやる上で大量の参加希望データをどう処理したか

P4Pで数百件の申込みをどう捌いたかという話を、次回やるときのために、またP4Pしてみようかなという方のためにメモしておこうと思います。
超マジな内容といいますか、ガチ業務では?という記事になってしまいました……。

同人誌頒布するのにこんなことやる必要ある……?

という感じの内容なんですが、数百を超えるP4Pを受付する場合こう言うことをやれば間違えにくい、処理しやすい、というまとめです。
私はたまたまIT戦士を生業としているのでやれていますが、初めて同人誌出そうという方にはむちゃくちゃハードル高くないかと思いました……。
とりあえず書いてみます。
最後にスプレッドシートも公開しているのでご参照あれ〜。みなさんのP4Pが少しでも効率化、時短できる手助けになったらいいな。

STEP1:まず申し込みフォーム選びがすごく大事

申し込みしていただく際に参加者が入力するフォーム選び、これが重要だと思いまして、最初に吟味しました。

私がフォームを選んだ際に仕様として重要視することをリストアップしてみました。(もう完全にやってることが仕事です……笑)

◆重要視したポイント

  1. 入力する人にとってストレスが少ないかどうか

  2. スマホでも入力しやすいかどうか

  3. 必要な入力項目をある程度柔軟に設計できるか

  4. 集まった情報をCSV形式でエクスポートできるか

  5. 返信する時にメール内容の管理がしやすいか(ミス防止)

  6. できるかぎり無料

最終的に選んだのがこちらのtayoriというサービスです。

◆特にここが良かったというポイント

◎管理画面から個別に返信でき、状態をステータスとしてタグ付けして管理できる
◎メールアドレスが重複した受信内容を一覧化できる


この2点が決め手でした。
ほしかった要件はすべて満たしていた上に便利な機能がついていたんですね!
1つのフォームまでなら無料なのでかなりありがたいです。

しかしこちらのサービス、完全にBtoB向けなので、個人向けの安いプランあったらいいのになってちょっと思っちゃいましたね。
いや、個人の利用なんて想定してないとおもうのですが……月額500円で3つくらいフォーム作れたらすごくいいのにな。

STEP2:集まった申し込みデータからエラーを取り除く

さて、CSVで吐き出したらEXCELを大活用して行くことになります。
大量のデータをさばく時、EXCELが相棒になってきます。
ありがとうEXCEL。
EXCELないよって方はGoogleスプレッドシートでも同じことができます。
スプレッドシートも最後に公開しているのでご参考になれば。

◆まず洗い出すべきエラー

  1. 同じアドレスからの重複申し込み

  2. 申込内容に不備があるデータ(希望アイテムが空、年齢認証が空欄)

  3. 入力されたTwitterアカウントがP4Pアカウントをフォローしてくれているかどうか、また存在しないアカウントがないか確認

エラー対策1:メールアドレスが重複しているセルに条件付き書式で色をつける

メールの列を選択して、その列の中で重複しているデータがあれば色がつくようにします

視覚的にぱっと見て重複している件数がわかるので、まず洗い出したら、確認メールを出すなり、NGとして一律弾くなど行い、重複を解消します。

エラー対策2:条件付き書式で色付けして入力不備を洗い出す

こちらも、条件付き書式を活用します。

今回【A:マグカップ】【B:同人誌】という2種を受付しました。
そのため、必須項目にするために【希望しない】という選択肢を作っていたのですが、やはり間違えてAもBも【どちらも希望しない】を選択した方が数名出てきました。

【希望しない】を含むセルに色付けし、視覚的にぱっとみてわかるようにすることで、どちらも希望しない状態になっている方を洗い出します。

人が入力する以上ミスは起きるものです。
入力ミスを減らすためにはミスしにくいフォーム設計が一番ですが、P4Pでは逆に参加者が本当に利用条件を守ってくれるのか判断するため、ふるいにかける必要があるので矛盾している部分だと思います。

考え方はP4Pを行う側人それぞれですが、私としては、
●確認を促して返事が来るかどうか
●その上で対応してくれるならコミュニケーションが可能、信頼に足る

という判断で、一度は不備がありますけど訂正受け付けますよという連絡をし、お返事がくれば手動でデータを修正して参加受付ということにしました。

ちなみに、この辺のやり取りをする上でtayoriの管理画面はめちゃくちゃ便利でした。

googleフォームを利用している方を多く見かけますが、個人的にtayoriはすごく使いやすく、やり取りの管理がしやすいのでおすすめです!

エラー対策3:P4P用のTwitterアカウントをフォローしてくれているかどうかをEXCEL関数を使って見えるようにする

まずフォロワー一覧をCSV化、またはEXCELのデータにします。
次にEXCEL関数を使って、入力されたアカウント名と、フォロワー一覧を照合して、実際のフォロワーの中に入力されたアカウントが存在しているのか見えるようにします。

まずはフォロワー一覧化してEXCEL(スプレッドシート)に入れる

◆無料ソフトPochitter!

いくつかやり方がありますが、無料のソフトを使うのが楽だと思います。
Windows用です。

◆Webサービスを活用する

無料ソフト使えなかった方にはこちらのサービスを利用するといいのですが、有料サービスなんですよね…しかも高い。

今回は無料お試し期間を利用してこちらのサービスから一覧を取得してみました。

◆手動でテキストをコピペして処理

正規表現という言葉がわかる方だったらこのやり方で行けます。数分でできます。

詳しく記事にしました。ご参照ください。これで一覧化が可能です。スプレッドシートにもペーストできますよ!@〜のアカウント列だけ必要なので、他のセルは削除しても問題ないです。

正規表現ってなに? 文字コード? 改行コード??という方は
Pochitter!使うといいですよ!

入力されたアカウント列とフォロワー一覧をEXCEL関数で照合する

◆まず準備

として、入力されたtwitterアカウント、フォロワー一覧の列を選択したら【@→https://twitter.com/に全置換】をします。

このために、@を含めたツイッターアカウントを入力してもらうフォームにしておくといいですよ。

大体何件かは@がない入力情報や、スクリーンネームを付け足してある方などもいらっしゃるので、手動で潰しましょう。

◆余分な半角スペースが入っている時がある

URLに飛んだらアカウントがない、そういう時に結構あったのが余分な半角スペースです。アカウントの列を選択したら、半角スペースを全置換で削除(置換内容を空にする)しておきましょう。

◆countifを使って照合を行う

スクリーンショット 2021-11-27 15.06.15

countifを使って【Twitterアカウント列】の内容が、【実際のフォロワー】の列にあるかどうかを【照合】の列で照らし合わせます。
あれば件数が、なければ0になるので、0の方はフォローしてくれていないということになります。

この関数を使ってやります。
=COUNTIF(G:G,F2)

◆0になっているアカウントを確認する

@をURLに変換しておけばすぐにクリックして該当アカウントのページに飛べるので、飛んだ先でアカウントが存在するかどうかなどチェックしてみてください。

今回の申し込みで分かったのですが、存在しない方か、無関係そうなアカウントに飛んだ方に確認の連絡を行ってみたところ、大抵Twitterアカウント名の入力ミスでした。

ですので、ここでやりとりして正しいアカウント情報をいただける方は参加OKという方針でやりとりしました。

STEP3:年齢認証を見やすくする

今回は頒布物にR18のものがあったので、年齢認証を行う必要がありました。そこで、西暦月日(19000101)のように入力してもらう欄を設けました。
また、18歳でも高校生を弾きたいので、西暦にする必要がありました。

この数字19000101を●歳とEXCELで変換し、年齢認証しやすくします。

◆まずは19000101→1900/01/01の形式に変換する

意外と入力する時に、/を入れるかどうかってスマホだと結構めんどくさいし間違えやすいポイントになるのであえて/抜きの西暦で入力してもらうようにしていました。

そのデータをまず【1900/01/01】のように変換します。

スクリーンショット 2021-11-27 15.34.23
=LEFT(K2,4)&"/"&MID(K2,5,2)&"/"&RIGHT(K2,2)

左の列を参照して/入れるって感じです。
K2のKは列なので、ここをお手元のEXCELに合わせてください。

◆日付変換した列と【今日】を参照して年齢を出す

スクリーンショット 2021-11-27 15.41.29
=IFERROR(DATEDIF(L2,T$16,"Y"),"")

L2→日付変換したセル
T$16→今日の日付を予め入れておいたセル

IFERRORで囲むことで、年齢認証が空欄の場合エラーが出ないようにしておく


STEP4:乱数を割り当て、EXCELで一気に抽選する

データ整形も終わったところで、抽選が必要なものをガッとEXCEL使って抽選していきます。

スクリーンショット 2021-11-27 15.44.52

◆まず乱数を割り当てよう

=RAND()

これをひとつのセルに適用したらびゃーっと下まで反映させます。

RANDOM関数を使って、ランダムな数字が割り当てられます。

注意!この数字は事あるごとに更新されちゃうので、一列割り当て終わったら、値に変換しておくことをおすすめします。

値にするには……
【列ごと選択してコピー】→【右クリック】→【形式を選択してペースト】→【値】をクリックすればOKです。

◆RANKを使って必要な件数を抽選する

=IF(RANK.EQ(G2,$G$2:G90)<=10, "当選", "")

G2,$G$2:G90  このGが→乱数の列のセルなので適宜変えてください。

<=10 ここでは10件選ぶという式にしています。
30件選びたかったら  <=30  にします。 

これで一気に抽選できます。

TIPS! 頒布物をカウントするには

列に何件あるかをEXCELでカウントします。今回は回答項目を【参加希望します】にしていたので、頒布物の列に何件あるかをカウントしました。

スクリーンショット 2021-11-27 16.07.59
=COUNTIF(J:J,T4)

J列 J:J に【T4のセルと同じ言葉】が何件有るか
カウントする内容です。

TIPS! 一気にメールを送りたい

  1. フォームで申し込んでもらったメールの列をコピーし、正規表現が使えるテキストエディタにペーストします。

  2. 正規表現を使って、改行を,(コロン)に変更します。

  3. 1行になったアドレスを全てコピーし、ご利用のメールソフトのBCCに貼り付ければOKです

正規表現、テキストエディタの使い方はこちらをみてください。だいたい分かると思います。
仕組みの話をすると、EXCELはTab区切りのテキストを横並びのセルに、開業すると行が変わって当てはめるようになっているんですね。
なので、セル同士の縦の区切りである改行を,(コロン)にしてやれば、メールで一気に送れる1行のテキストデータにできるっていうわけです。

注意!送る時はTOでもCCでもなくBCCを利用しましょう。
TOやCCは、複数の人に送ると、送られた人それぞれがお互いのアドレスが見えてしまいます。
BCCであれば、お互いに見えません。

あとは手動と目視の時間……

このあと、Twitterアカウントを全て実際にチェックして、P4P参加条件を満たしているか見ていきます。ここはもう目視、手動です。
頑張ります!!

以上の工程で、数百件分のP4Pの申込情報を精査していきました。
欲しい方に手にとって欲しいので今回は多めに受けてみましたがすごく大変なので、上限を設ける方、交換に絞る方がいるのも納得です……。中華BL、めっちゃ人気ジャンルや……。

P4Pこれからやりたい方、やってらっしゃる方の参考になればいいなと思います。なるのかな!?!?
自分のメモ用に残しておきます。

スプレッドシートを公開中!

管理しやすい状態にしてあるシートと、抽選のシート2枚いり。元はEXCELだったので不具合あったらすみません、変換できてるはず…です。

◆スプレッドシートの方
【シート名のタブを右クリック】→【別のワークブックにコピー】
で複製して使えるのでどうぞ〜!

◆EXCELで使いたい方
EXCELにしたい方は、【ファイル】→【ダウンロード】からMicrosoft Excelを選んで保存してご利用ください。