2016年1月22日金曜日

Googleスプレッドシート:顧客固定IDとImportrange関数

H280122記載
顧客固定IDとimportrange関数があまりに便利なので、独立して書いてみました。



   

1  Googleスプレッドシート:顧客固定IDとImportrange関数


あまりに便利なので、特別に別にブログ化します。コンセプトは、

・同じ住所録を、あらゆる書類に使い回す。

・顧客固定IDを利用して、顧客固定IDの数字を入れるだけで、書類を完成させる。

です。今まで書いてきたものの統合版です。

2  顧客固定IDの設定とフォーム反映


フォームで反映させるシートに、予め、たとえば、A列に固定IDを入れる。

実は、これが一番節約的ですが、スクリプトを組まないとダメで、若干面倒です。

フォームの反映は、デフォルトでは、タイムスタンプが自動的にA列に入ります。そのため、最初に列を増加させ(A列を新たに作る)、その増加させた列の後(B列)から、フォームで反映させる項目を入れていく。

そんなスクリプトが必要となります。Google Apps Scriptでできないことはないですが、そのためだけにスクリプトを作るのが面倒です。

それなので、フォームで反映されるシートはそのままにしておいて、シートを追加して、そこに、importrangeしていく。

のが一番楽かと今のところ思いました。

この方法ですと、まず、A列に固定IDの欄を設けて、例えば、B列のところから、丸ごとフォームで反映されたシートをimportrangeしていくことになります(これを、以下とりあえず「統合シート」という)。

統合シートは、フォーム反映を直接しませんので、importrangeする箇所は自由です。たとえば、今まで使っていた住所録を、そのままコピペして、その後から、importrangeすれば、途中からフォーム使用による作成された住所データも含めた統合住所録ができることになります。

3  顧客固定IDの作成(Google Apps Scriptを利用)


これについては、既に別にブログ化しています。↓


lastRowまでするといらないところまでデータが入ってしまうので、とりあえず、100とか200とか入れておきました。

基本的に「統合シート」は削除等しません。filterやUNIQUE関数を使って重複等は絞り込めます。「統合シート」は、自由に項目を作っても特に問題なく、郵送不着などの項目を作って、それをフィルターしていけばいいということになります。

顧客固定IDは、管理には極めて便利です。これを別の書類にも使いまわします。

4  作成例:(FAX)送付状

4.1  意外と送付状は面倒です。


今ままでは、FAX送付状などは、wordのようなワープロで作っていた、というのが普通でしょうか。しかし、FAX送付状は、独自に作っていくと結構手間がかかります。間違えないように、FAX番号を入れたり、住所や宛先を書いたりする必要もあります。

送付文言を作ったり、添付書類の項目、枚数等も必要です。

そこで、FAX送付状の(ほぼ)自動化を考えます。

なお、このFAX送付状は、郵送のときの送付状にも使えます。

4.2  独自項目は、さらにフォームで


直接セルを入れていくのは結構神経使います。そこで、

・固定ID

・添付書類の項目

・その枚数

・送付文言(固定しないもの)

については、FAX送付状のテンプレにフォームを準備して、そのフォームが反映したシート(テンプレシートを既に作っていたら、一番前にフォーム反映シートがデフォルトで作成されます)を、vlookup関数を用いてテンプレシートに反映させます。

これの基本は、ブログ化しています。↓


固定IDを入れる箇所は、上記のブログのように(印刷)欄外に書くこともできます。

もちろん、この固定IDは、「統合シート」と同じIDを用いる必要があります。

4.3  FAX番号、宛先(会社名等)、住所などは、住所録「統合シート」から


これは、「統合シート」から、Importrangeします。

=if(vlookup($I$2,IMPORTRANGE("対象の別スプレッドシートのURLかID","統合!$A:$N"),9)="","",vlookup($I$2,IMPORTRANGE("対象の別スプレッドシートのURLかID","統合!$A:$N"),9))

使う分だけの統合シートの列を取り出し、何番目に入るものかの数字を入れます。

vkookup関数と他のスプレッドシートのデータから取るためのImportrange関数を使います。

たとえば、FAX送付状ならば住所まで必要ありませんので、統合データ上もFAX番号しかないものもあります。逆に、依頼者に送付するものであれば、FAX番号がないものもあります。そのため、上記のように関数を書いて、統合シートにないものは「空白」にしておく処理をしておけばよいということになります。

ここまで用意すると、上記の例では、「I2」のところに、IDの数字を入れるだけで、ほぼ自動に必要な項目が作成されます。


顧客固定IDが、一方では、フォームに反映されたシート(ここでは、FAX送付状テンプレのフォームから反映されたシート)から、また、他方では、他スプレッドシート(ここでは「統合シート」)からも作用するということになります。

4.4  テンプレシートの若干の修正


テンプレシートは、反映されたときに、たとえば、送付先の名称が長いと文字の大きさを小さくするなどの若干の修正が必要となる場合があります。

これまで自動化すると、余計に面倒で複雑となるとおもいます。

5  作成例:請求書


請求書項目も、同じように考えることができます。

宛名とか住所録から拾えるものは、「統合シート」から、請求項目については、独自にフォームを利用して、固定IDと連結して、テンプレシートに反映できるようにします。

フォームは、「テキスト」の回答項目でも詳細設定で、数字(整数だけ)等と限定もできるので、セルに直接書き込むより、フォームを使うほうが間違いもでません。

請求書の場合は、たとえば、整理番号に、「001(依頼者何枚目)「ID番号」」などと繋げれば(セルは分ける)、その依頼者ごとに整理番号も付することができます。



……………………………………………………追記予定あり