はじめに

 どうも、寒くなっても上着を脱ぐ癖がやめられないしがないITエンジニアです。
夏の間はそれでも快適に過ごしていたのだが、最近は秋らしい寒い日が続いているのに、
上着を脱いでしまって寒さに震えてしまう始末である。
これを人は馬鹿と呼ぶ。

 さて、今回はExcelTEXT関数の使用方法について解説していこうと思う。
この関数は何かと便利なため使い方を覚えておくとかなり作業効率が上がるだろう。

 筆者も仮想実数から実数への変換や、日付から曜日を割り出すなど様々な用途で使用している。
また、DAX関数ではFORMAT関数となっているため、PowerBIを使用する方は覚えておこう。

関数の書式

TEXT(書式設定する値,"適用する表示形式コード")

関数のパラメータは以下の通りです。

  • 書式設定する値 日付や数値など書式設定する対象の値
  • 適用する表示形式コード “0”“#”など定められた表示形式コードを指定する。
                また、文字列として処理するため(ダブルクォーテーション)で囲う必要がある。
                なお、表示形式コード以外は文字として扱う。

TEXT 関数 (microsoft.com)

日付や時刻データで使用できる表示形式コード

表示形式コード説明
YY年(YYにすれば後ろ2桁、YYYYにすれば4桁取得)
なお、一応1桁、3桁でもエラーにはならないが正規の使い方ではないだろう。

例:2022年10月8日
YY →22
YYYY→2022
E和暦(1桁~2桁の指定によって表示が可変する)

例:2022年10月8日
E→4
EE→04
G和暦の元号(1桁~3桁によって表示が可変する)

例:2022年10月8日
G→R
GG→令
GGG→令和
M月(1桁~4桁の指定によって表示が可変する)
分と表記が被っているので要注意
分と月では月の方が優先される。

例:2022年1月1日
M→1
MM→01
MMM→Jan
MMMM→January
D日(1桁~2桁によって表示が可変する)

例:2022年10月8日
D→8
DD→08
H時(1桁~2桁によって表示が可変する)

例:07:08:06
H→7
HH→07
M分(1桁~2桁によって表示が可変する)
”M”に時(H)や秒(S)が隣接している場合は分とみなされる。
より厳密には”H”の右側にある場合は分など、
時や秒との位置関係を基準に割り当てられるようだ。

例:07:08:06
m→8
mm→08
S秒(1桁~2桁によって表示が可変する)

例:07:08:06
S→6
SS→06
AAA曜日(3桁~4桁によって表示が可変する)
AAA:日、月、火、水、木、金、土
AAAA:日曜日、月曜日、火曜日、水曜日、木曜日、金曜日、土曜日

例:2022年10月8日
AAA→土
AAAA→土曜日
※大文字小文字の区別はない

数値データで使用できる表示形式コード

0数値(対応する位が空の場合は0埋め)

例:12345
000000→012345
#数値(対応する位が空の場合は切り詰め)

例:12345
######→12345
%パーセント表記にする

例:0.12
00%→12%
/分数に変換

例:0.12
0/0→1/8

 なお、この他にも色々あるようだが、必要性がないのと信ぴょう性に欠けるため記載しない。
他の表示形式コードが知りたい方は、下記のサイトで色々紹介されているため見てみるといいだろう。

TEXT関数で数値に表示形式を適用した文字列を返す | Excel関数 | できるネット (dekiru.net)

使用方法

 以下にTEXT関数の使用方法を示す。
日付のフォーマット変更や日付から曜日を取得、数値を実数表記にするなどの解説を行う。
まあ、曜日の取得以外はセルの書式設定でできるのだが取れる手段は多い方が良い。

日付のフォーマット変更

 では日付のフォーマット変更する例を解説していく。
以下のように第一パラメータに日付データをセットし、第二パラメータに表示形式コードを指定する。
日付のフォーマットを変更するため表示形式コード”YYYY/MM/DD”を指定している。
この“/”表示形式コードではないため単なる文字として扱われる。

[Excel]TEXT関数(日付フォーマット変更)
=TEXT(B3,"YYYY/MM/DD")

 ちなみに、この辺りはセルの書式設定でどうにかできる。
どちらか得意な方で設定できればいいだろう。

[Excel]セルの書式設定

日付から曜日を取得

 では、日付から曜日を取得した例を解説していこう。
以下のように第一パラメータに日付データをセットし、第二パラメータに表示形式コードを指定する。
今回は曜日を取得したいので表示形式コード”AAA”を指定している。

[Excel]TEXT関数(日付から曜日を取得)
=TEXT(B3,"AAA")

 なお、表示形式コード“AAAA”にすることで、○曜日までの記述になる。
TODAY関数と一緒に使用して現在の曜日を取得するのもありだろう。

[Excel]TEXT関数(日付から曜日を取得②)
=TEXT(B3,"AAAA")

数値を実数表記に変更

 次に数値の取り扱い方法として数値データを実数表記に変更してみる。
こちらもセルの書式設定でも同様のことができるが折角なので覚えておくとよい。

 以下のように第一パラメータに数値データをセットし、第二パラメータに表示形式コードを指定する。
数値を実数表記にするため表示形式コード”#####.00”を指定している。
“#”は指定した位に値が無い場合は省略されるため、実数部は“0”と表記するのが肝である。
なお、“.”TEXT関数上では何の意味を持たない通常の文字として解釈される。
そのため、適当に“.”を付けまくるとそれがそのまま反映されるので注意しよう。

[Excel]TEXT関数(数値を実数表記に変更)
=TEXT(B2,"#####.00")

 ちなみにIF文で比較した際、見た目上は同じ値にもかかわらず不一致になる場合がある。
これは数値と文字列を比較しているためである。
TEXT関数は名前の通り文字列型となるため、数値と比較した場合に不一致になることに注意しよう。
また、TEXT関数を使用しなくても数値ではなく文字列として扱われている場合もあるため、
こういった事象が確認できた場合はセルの書式設定を確認し、
型の指定に誤りがないか確認した方がよい。

[Excel]TEXT関数

最後に

 いかがだっただろうか。
筆者の場合はテスト用の比較にTEXT関数をよく使用しているのだが、
この記事を書いている最中、実は普段使いでは使用する機会がないのではと疑問に思ってしまった。
少なくとも曜日を取得する際に便利だと思うが、
もしかしたらそれくらいしか使い道がないかもしれない。

By ta-boss

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です