Googleスプレッドシートで、改行ありの定型文を文字列連結で量産する方法
こんにちは、柊クイチです。
仕事で『ほんの一部分だけ差し替えた、改行を交えたテキストを量産すること』が必要になり、Googleスプレッドシートでどうにかならないか……とやってみたらできた上にとても便利だったので、TIPSとして覚書きします。
数式さえ作ってしまえば差し替えテキストをセルに入れるだけでテキストが量産できるので、管理するにも便利だと思います。
例
以下のような定型文を数十人分作成する場合を考えます。
[山田太郎]様
[エンピツ]のご注文ありがとうございました。
ご購入確認のため、[山田太郎]様のご連絡先の[test@example.mailcom]までご連絡させていただきました。
発送まで[3]営業日お待ちください。
よくメールの定型文を作っておき名前などを「●●●様」などにしておき一括置換する、というライフハックが紹介されていますが、この場合は複数個所に別のテキストを入れなくてはなりません。
この赤字[]内を送る人に合わせて変更したい場合を考えます。
手順
2:データの入力
差し替えたい部分のデータをセルに入力します。
3:生成テキストの式を入力
文字列の連結(結合)を使います。
参考サイト
連結したい文字列をダブルクォーテーションかシングルクォーテーションで囲い、差し替えたいデータの入ったセルのアドレスを&で連結します。
ちょっとイメージがつきにくいと思うのですが、式はこんな感じです。
=$A2&"様 "&$B2&"のご注文ありがとうございました。 ご購入確認のため、"&$A2&"様のご連絡先の"&$C2&"までご連絡させていただきました。 発送まで"&$D2&"営業日お待ちください。"
この数式を、例の場合だとE2セルに入力します。
するとこんな風に、『生成テキスト』列に必要箇所が差し代わった文章が表示されます。
あとは3行目以降も同様に差し替えたいデータを入れて、テキストの式をオートフィルでコピーすると、必要な箇所を差し替えたテキストが量産できます!
4:生成テキストを少し整形して完了
この生成テキストをコピペするときに、少し注意点があります。
単純にコピペすると、こんな風にテキストの前後にダブルクォーテーションがついてしまうのです。
これは、セル内改行を行ったセルの値をコピーすると起こる現象で、一行のテキストの場合は起こりません。
そのため、改行を含むテキストを生成した場合は、最後にテキストのダブルクォーテーションを取り除いて整形する必要があります。
これで完了です。
まとめ:スプレッドシートのセルは変数的に使えて便利
なぜ紹介したようなTIPSが必要だったかというと、下記のようなソースコードを大量に作成する必要があったからでした。
<div class='testbox'> <h4>名前</h4> <p>山田太郎</p> <h4>ふりがな</h4> <p>やまだたろう</p> <h4>住所</h4> <p>東京</p> </div>
1件1件手作業で必要箇所を差し替えるとまず間違いなくどこかでミスが発生するので、なるべく機械的にやる方法を考えて試行錯誤してみたという事情です。
ただ、文字列の連結機能自体は知っていたのですが、その中で改行する方法やそもそもできるのかどうかもわかりませんでした。
スプレッドシートの数式が改行できるというのはちょっと驚きましたが、おかげで文章の差し替えにも使えますし、活用の幅が広がりました。
ぴったりはまる場面だととても便利です。
参考本
最近は共有の便利さでExcelよりスプレッドシート派なのですが、使いやすいデータの作り方という面ではずっとこの本をお手本にしています。
- 作者: 吉田拳
- 出版社/メーカー: 技術評論社
- 発売日: 2014/10/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る
今回紹介したTIPSには直接関係ないのですが、すごく役に立つ本なので情熱を持っておすすめし続けています。
「必要な作業を、いかに効率的に、ラクに、ミスなく済ませる仕組みを実現するか?」
時間のかかる作業があったとしたら、まちがってもそこにすばらしい根性を発揮してはいけません。そのような作業はいかにラクして瞬時に済ませられるだろうかと考える、「前向きな怠惰」の発想を身に着けていただきたいのです。
という著者の言葉は、仕事をする上での個人的座右の銘です。