セルの数値を適した表示形式にしたい
「日付を入力したセルの隣のセルに曜日を出したい」というように、Excelでは日付から曜日を出すことができますが、そのやり方については実に様々な方法をこれまで見かけてきました。
なかでもWEEKDAY関数を使っているケースが多かったのですが、そうしたケースに出会うたびに私が「こっちのほうが簡単じゃない?」と言って紹介してきたのがTEXT関数による方法です。
セルの書式設定の「表示形式」タブで、セルの値の表示を様々な形式に変換できますが、関数で値の表示形式を変えることができるのがTEXT関数です。日付を曜日に変えるほか、数値をパーセント表記にしたり、桁区切りにしたりと様々な使い方ができます。
日付から曜日を出すには
日付から曜日を出すには次のようなTEXT関数を使います。A1セルに日付が入力されている時、この日付の曜日を出すには次の関数を使います。
=TEXT(A1,"aaa")
B1セルに「=TEXT(A1,"aaa")と入力
このTEXT関数は第一引数に指定した値の表示形式を変更する関数で、この場合は日付データ(シリアル値)を曜日の表示に変更したということになります。
ちなみにこの図のように第二引数が「"aaa"」だと「土」という表示なりますが、第二引数を変更することで次のようなバリエーションもあります。
- "aaaa"→「土曜日」
- "ddd"→「Sat」
- "dddd"→「Saturday」
=TEXT(値,表示形式)
日付を文字とつなげる方法
例えばあるセルに「今日は2017年10月16日です」という表示を、常に今日現在の日付で出すようにしたい場合。今日現在の日付はTODAY関数で出すことができます。
=TODAY()
という式を入力したセルには今日現在の日付がでます。
これを普通に結合演算子の&(アンパサンド)を使って「今日は」という文字列、「です」という文字列とつなげるとこうなってしまいます。
「="今日は"&TODAY()&"です"」と入力した結果
日付部分はシリアル値の表示になってしまいます。こういう時にTEXT関数で日付部分の表示形式を設定することができます。
次の式であれば「今日は2017年10月16日です」という表示になります。
="今日は"&TEXT(TODAY(),"yyyy年m月d日")&"です"
「="今日は"&TEXT(TODAY(),"yyyy年m月d日")&"です"と入力した結果」
また、TEXT関数の第二引数を次のように変更することで、日付部分は次のような表示形式にもできます。
- "yyyy/m/d"→2017/1/1
- "yyyy/mm/dd"→2017/01/01
- "m/d"→10/16
- "ggg年m月d日"→平成29年1月1日
- "gg年m月d日"→平29年1月1日
- "g年m月d日"→H29年1月1日
数値を書式設定した表示に変換する方法
- 数値をパーセント表記にする方法
A1セルに「1」が入っている時、次の式は「100%」という表示の値を出します。
=TEXT(A1,"0%")
「100.0%」など小数点以下の桁数を変更するには第二引数を次のように調整します。
=TEXT(A1,"0.0%")
- 数値を桁区切り表記にする方法
=TEXT(A1,"#,###")
また、数値を千円単位で表示するには第二引数を「"#,###,"」、百万円単位にするには「"#,,"」とします。
A1セルに「1」が入っている時、これを「01」や「0001」のように表示するには次のような式を使います。
- =TEXT(A1,"00")→「01」という値が出ます。
- =TEXT(A1,"000")→「001」という値が出ます。
- =TEXT(A1,"0000")→「0001」という値が出ます。
「セルの書式設定」の表示形式との使い分け方
要は「セルの書式設定」にある「表示形式」の設定・変更と同様のことがTEXT関数でもできるということですね。
例えば日付が入っているセルを選択して書式設定を開き、「表示形式」タブの「ユーザー定義」を選択→「種類」欄に「aaa」と入力するとサンプル欄に「月」と表示されます。
ユーザー定義の「種類」欄に「aaa」と入力
TEXT関数の場合は第一引数に指定したセルの値を変換して他のセルに表示されるということになります。
特に決まった使い分け方があるわけではないので、やりやすい方、ラクな方、わかりやすい方を使いましょうということになります。