Excelシート上で使える関数の使い方を説明。
今回は TEXT関数 について、使い方や活用例を紹介。
【本記事の目標】
TEXT関数の使い方・活用方法を知ろう
TEXT関数とは
TEXT関数とは
数値データを入力し、指定した形式の文字列に変換して表示する
という機能を持った関数です。
数値データであれば変換が可能ですので、数値が入力されているセルを指定したり、関数(計算式)を入力することも可能です。
また日付のデータ(2023/5/29 等)についても、Excelシート上は基本的に「シリアル値」という数値データとして扱われているので、こちらも入力することが可能です。
具体的には下記のように2つの情報を指定する必要があります。
=TEXT(値、表示形式)
詳しく説明していきましょう。
入力情報① 値
この「値」は文字列に変換したいデータで、基本的に数値データを入力します。
数値データであれば問題ないので、数値データが格納されているセルや計算結果が数値データになる関数等を入力することができます。
またシリアル値(日付・時刻データ)も基本的にはデータ形式は数値ですので、シリアル値が格納されているセルや関数も入力することが可能です。
ただし日付や時刻を直接入力すると、意図しない動きをするのでご注意ください。
というのも、セルに日付や時刻を入力するとExcelが自動的にシリアル値に変換してくれるため、日付が記入されているセルを指定することは問題ないですが、
関数の中に日付を直接入力した場合、Excelが自動的にシリアル値に変更してくれないため、
例えば =TEXT(5/27, ・・・) というように5月27日の日付を入力しても、これをただの分数(27分の5)として認識されてしまうのです。
もし日付を直接入力したい場合は、DATE関数を使ってシリアル値に変換した状態で記入する必要があります。
入力情報② 表示形式
ここでは「値」に入力した数値データを、どのような形式で文字列として表示したいか、を指定します。
指定する場合は、表示したい形式を文字列で表現して記入します。
具体例を下記にいくつか記載しておきます。
■具体例
=TEXT(12.34,”0″) ⇒ 12
=TEXT(12.34,”0.0″) ⇒ 12.3
=TEXT(12.34,”0.0000″) ⇒ 12.3400
=TEXT(12.34,”000″) ⇒ 012
=TEXT(12.34,”0個”) ⇒ 12個
=TEXT(DATE(2023,5,27),”m/d”) ⇒ 5/27
=TEXT(DATE(2023,5,27),”y/m/d”) ⇒ 23/5/27
=TEXT(DATE(2023,5,27),”yyyy/mm/dd”) ⇒ 2023/05/27
=TEXT(DATE(2023,5,27),”yyyy年mm月dd日”) ⇒ 2023年05月27日
このように表示形式には色々な書き方があり、ここでは紹介しきれないほどの表現方法があります。
ただこの表示形式は、セルの書式設定の表示形式と同じですので、
下記手順でセルの書式設定の表示形式を確認していただければ、記入方法を確認することができます。
TEXT関数でできる特殊な変換
ここでは私が個人的に使い勝手が良いと思っている表示形式を2つ紹介させていただきます。
TEXT関数は、セルの書式設定で表示形式を指定するのと非常に似た機能になっています。
(実際にTEXT関数で指定する「表示形式」の書き方は、セルの書式設定での書き方と同じです)
ただこれから紹介する2つは、セルの書式設定だけでは実現不可能な表現をさせることができます。
”001”形式で数字を表示
「表示形式」の具体例にも記載していますが、TEXT関数を使えば1桁の数値であっても任意の桁数で表示させることができます。
例えば3桁で表示させるには、
=TEXT(1,”000″) ⇒ 001
といった形で表示させることができます。
ただこれだけであれば、セルの書式設定でもユーザー定義で下記のように指定すれば、同じように表示させることができます。
ただし、TEXT関数で表示させている場合と、セルの書式設定で表示させている場合では、見た目は全く同じでも、中身のデータが大きく異なります。
TEXT関数:「001」という文字列のデータになっている
セルの書式設定:「1」という数値データを「001」と見せているだけ
実際に「001」というデータに変換されているのか、数値データは変わっていないが見た目だけ変えているのか、という違いがあります。
そのため、下記図のようにB欄に表示されている「001」というデータと”No.”という文字列を繋げたとき、TEXT関数で「001」と表示している場合は”No.001”と表示されるが、セルの書式設定で「001」と表示している場合は”No.1”と表示されるのです。
このように、たとえ1桁の数値であっても常に一定の桁で表示させて他の文字列と組み合わせたい場合には、TEXT関数が必ず必要になります。
曜日を文字列で表示
ある日付から曜日を表示させたい場合、いくつか方法があります。
■1つ目:WEEKDAY関数を使う
WEEKDAY関数は曜日を1~7で表示してくれる関数です。
これで表示された1~7の数値を、IF関数やSWITCH関数を使って
1の場合は「日」、2の場合は「月」・・・
といった関数を組み立てて曜日を表示させます。
例えばSWITCH関数を使えば下記のようになります(A1セルに日付が記入されています)
=SWITCH(WEEKDAY(A1,2),1,”月”,2,”火”,3,”水”,4,”木”,5,”金”,6,”土”,7,”日”)
■2つ目:セルの書式設定の表示形式で、ユーザー定義に”aaa”を入力する
■3つ目:TEXT関数を使って、表示形式に”aaa”を入力する
TEXT関数の表示形式は、セルの書式設定の表示形式と同じ書き方を使うことができるため、
”aaa”と記入することで曜日を表示させることができます。
=TEXT(A1,”aaa”)
このように3つ方法がありますが、1つ目は非常に複雑な計算式を使う必要があるため、基本的には2つ目か3つ目の手法をとるのが一般的かと思います。
ただこの2つ目と3つ目には大きな違いがあり、先ほど記載したのと同じように、
TEXT関数:曜日が文字列のデータとして記入・表示されている
セルの書式設定:日付データを使って曜日を見せているだけ
というように、見た目が変わっているだけなのか、データそのものが変わっているのかという違いがあります。
セルの書式設定ではデータ自体は日付データで変わっていないため、
例えばExcelでカレンダーを作る際に、下記のように条件付き書式を使って土曜・日曜を塗りつぶすといったことができません。
ただしTEXT関数の場合はデータ自体が「月、火、水・・・」に代わっているため、条件付き書式で設定が可能になるのです。
コメント