文章の一部を自動生成して置き換えたい (LibreOffceのCalc(表計算)を使用)
文章の一部を自動生成して置き換えたい
何をしたいのか簡単に説明すると
「今日(2020年9月13日)の出来事」
の年月日の部分を自動生成して、その自動生成したものを元の文章に置き換えようというもの。今日は9月13日を指定、明日は9月14日を指定、1ヶ月後は…、というのを出来るだけ簡略化したい。
ワープロソフトやテキストエディタの置換機能でその都度自分で置き換えることが出来ますが、それを数回作業をするだけならともかく頻繁に行う場合は面倒。
いろいろ方法はありますが、今回は表計算ソフト(LibreOffice
Calc)を使ってやってみることにします。
(方法自体は単純な部類なので、MS Excelでもほぼ同じように出来るでしょう)
置き換えたい部分を自動生成
これは表計算のオートフィルで作ります。今回は単なる日付を生成するだけなので、オートフィルで作ります。
定形的部分を作成
文章の中でそのまま利用したい部分をセルに書いておきます。
今回の場合は日付前の
「今日の(」
と日付後の
「)の出来事」
をそれぞれ別のセルに書いておきます。
文章の必要な部分が揃ったので、最後にCalcのconcat関数でテキストを連結して完成させます。定形部分は固定セルとして指定するので、関数の指定方法は以下のようになります。
=CONCAT($C$2,B2,$C$3)
この数式のセルを日付部分のセルに合わせてオートフィルしてやります。
ですが、この指定方法では日付部分が以下のようにおかしなことになります。
日付部分をtext関数で文字列に変換
Calcなど表計算ソフトでは日付は内部で数値として扱われているので、この場合には任意のフォーマット指定をした文字列へと変換する必要があります。
こういうときはtext関数を利用します。以下のように、変換したいセルと任意のフォーマットを指定します。
=TEXT(B2,"YYYY年M月D日")
フォーマットの指定方法は、セルのフォーマットからフォーマットコードを取得してそれを用います。
text関数で日付を文字列として生成したら、これをconcat関数で指定すれば完成です。
=CONCAT($C$2,TEXT(B2,"YYYY年M月D日"),$C$3)
これを応用すれば、日本語での日付と英語での日付を併せて用いることも容易に出来ます。
=CONCAT($C$2,TEXT(B2,"YYYY年M月D日"),$C$3," (",TEXT(B2,"D. MMM. YYYY"),
")")
(同じ日付セルを異なるフォーマットコードで指定してやってます)
Calcを用いたのはオートフィルや関数などの機能でテキストを自動生成しやすいってのもありますし、後は生成したテキストを別のソフトへコピペしやすいってのもあります。
コメント
コメントを投稿