ITライター 立山秀利
Excelで複数のセルの値を統合したい場合、&演算子で各セルを結合するのが定番だ。その際、日付のセルを結合しようとすると、結合した整数になってしまい、元のセルと同じ形式にならないことがよく起こる。今回はその解決方法を紹介する。
例えば、予約票をExcelで作成したいとする。予約日付はD8セルに入力。そして、C12セルには「ご予約の変更・取り消しは<予約日付の3日前> 17:00まで承ります。」という一文を表示したいとする。
図1
この一文の前半部「ご予約の変更・取り消しは」は欄外のC15セル、後半部「 17:00まで承ります。」はC16セルにあらかじめ用意しておくとする。
C12セルは前半部のC15セルと、予約日付の3日前の日付と、後半部のC16セルを&演算子で連結すれば、目的の一文を組み立てられる。予約日付の3日前の日付は、予約日付であるD8セルから3を引けば算出できる。よって、以下の数式をC12セルに入力すればよいはずだ。
-----------------------
=C15&D8-3&C16
-----------------------
しかし、結果は図2の通り、「ご予約の変更・取り消しは42947 17:00まで承ります。」となってしまう。D8セルは「2017年8月3日(木)」という日付なのに、C12セルでは日付の部分が42947という数値に変わってしまった。
図2
この原因は、セルを連結すると表示形式の設定が適用されないことにある。Excelの日付は内部的には整数(シリアル値)で管理されている。予約日付のD8セルの日付は内部的には整数であり、セルの表示形式を「yyyy"年"m"月"d"日("aaa")"」と設定することで、「2017年8月3日(木)」の形式で表示している。
図3
実際にD8セルの表示形式を「標準」に変更すると、データ自体は整数の42950であることがわかる。
C12セルの数式内の「D8-3」の部分は「42950-3」と計算され、表示形式が適用されないままC15セルおよびC16と連結されたため、図2のような結果になったのだ。
このように&演算子でセルを連結すると、設定してある表示形式が適用されず、“生”のデータが連結されてしまう。このような問題を解決してくれるのがTEXT関数だ。指定したデータを指定した表示形式の文字列に変換する関数である。
-----------------------
TEXT(値, 表示形式)
-----------------------
引数「表示形式」には、「書式記号」を用いて、目的の表示形式を表す文字列を指定する。書式記号はさまざまな種類があるが、今回は以下を使う。
-----------------------
・西暦年4桁 yyyy
・月 m
・日 d
・曜日1文字 aaa
-----------------------
これらの書式記号と、「年」など固定の文字列を組み合わせ、「2017年8月3日(木)」のような表示形式にするには、以下のように記述すればよい。固定の文字列はそのまま記述する。
----------------------
yyyy年m月d日(aaa)
----------------------
上記を引数「表示形式」に指定する。文字列として指定するので、全体を「"」で囲む。なお、セルの表示形式のように、「年」など固定の文字列の前後に「"」は不要なので、誤って記述してしまわないよう注意してほしい。
引数「値」には、予約日付のD8セルの3日前ということで、「D8-3」を指定する。以上を踏まえると、TEXT関数の2つの引数は以下のように指定すればよいとわかる。
----------------------
TEXT(D8-3,"yyyy年m月d日(aaa)")
----------------------
後は上記TEXT関数の数式を、前にC15セル、後ろにC16セルを連結するよう、C12セルの数式を修正すればよい。
----------------------
=C15&TEXT(D8-3,"yyyy年m月d日(aaa)")&C16
----------------------
これでC12には、「ご予約の変更・取り消しは2017年7月31日(月) 17:00まで承ります。」と、予約日付の3日前の日付が目的の形式で表示できるようになった。
図4
セルを連結する際は日付以外に、時刻や通貨でも同様に表示形式が無視される問題が起きるので、TEXT関数を利用して目的の表示形式に設定しよう。
立山秀利(たてやま・ひでとし)
カーナビのソフトウェア開発、Webプロデュース業務を経て、現在は、システムやネットワーク、Microsoft Officeを中心に執筆中。 主な著書に『Excel VBAのプログラミングのツボとコツがゼッタイにわかる本』などがある。
(監修:日経BPコンサルティング)