残業を減らす!Officeテクニック

使いどころがわからない? ExcelのTEXT関数って実は便利 ~知る人ぞ知る効率化テク

曜日の表示だけでなく土日の塗り分けにも利用可能

「TEXT関数」で作業効率を上げよう

 日付から曜日を表示する、数値を桁区切りするといった処理は、セルの表示形式で設定しますよね。また、「TEXT関数」でも同様の処理が可能です。じゃあ表示形式でいいのでは? と思われたように、使いどころのわかりにくい関数です。

 実は「表示形式を整える」という動作がポイントで、使い方次第で作業効率がアップする名関数なのです。今回は知る人ぞ知るTEXT関数の便利ワザを3つ紹介します。

TEXT関数の構文

 最初にTEXT関数の構文をおさらいしておきましょう。引数[値]には、形式を整えたい値を指定します。数式中で値を直接指定する時は「"」(ダブルクォーテーション)で囲みます。引数[表示形式]には、書式記号を「"」で囲んで記述します。主な表示形式の例も参考にしてください。

TEXT関数の構文。引数[値]に指定した数値を[表示形式]に指定した形式に整える。[表示形式]に指定する書式記号は「"」で囲んで指定する
TEXT関数の使用例。元の値が同じでも指定した書式記号によって結果は異なる

日付と曜日のズレをTEXT関数で回避する

 Excelを使ってスケジュール表を作成することがありますよね。日付と曜日がズレているけど、どちらが正しいのか? といった問い合わせを受けてしまった……。ありがちですが、何とか回避したいところです。以下は、6月7日(水)を「木」と手入力して間違えた例です。

2023/6/7は水曜日だが、間違えて「木」と入力してしまった

 このようなミスの防止にはTEXT関数が有効。日付を参照して「月」「火」のような曜日を表示するため、曜日がズレてしまうミスがなくなります。

セルB3に「=TEXT(A3,"aaa")」と入力した。セルA3の日付を曜日表示に切り替えられる

セルの値と連動するテキストを生成する

 表の近くに注釈を配置しておくことがありますよね。日付や合計値などを確認して、手入力していませんか? 例えば以下のような状態です。合計値はセルI1に集計されています。

合計値はセルI1に集計している。セルH2には「本日(2023/6/5)までの売上合計は7,725,700円です。」とメモが入力されている

 または、文字列と関数を「&」でつなげてもうまくいかない! といったケースも考えられます。

セルH2に「="本日(" & TODAY() &")までの売上合計は" & I1 & "円です。"」と入力した
TODAY関数で求めた日付がシリアル値で表示された。合計値も桁区切り記号を挿入したい状態だ

 このような時もTEXT関数を使います。書式記号の「"yyyy/m/d"」で日付、「"0,0"」で金額の桁区切り記号を表示させます。

セルH2の数式を「="本日(" & TEXT(TODAY(),"yyyy/m/d") & ")までの売上合計は" & TEXT(I1,"0,0") & "円です。"」と修正した。日付と金額の表示形式をTEXT関数で整える

土日の塗り分けにTEXT関数を利用する

 スケジュール表を作成して土日を塗り分けるときは、条件付き書式の利用が定番です。[ホーム]タブにある[条件付き書式]-[新しいルール]の順にクリックして新規作成できます。

 土日の判定にWEEKDAY関数を使うのが一般的ですが、曜日の判定に使う数値を思い出せなくて、いちいち調べている人は多いのではないでしょうか。

条件付き書式で、WEEKDAY関数を指定して日曜日を判定している例。判定条件の「=1」が思い出せなくて困ることがある

 TEXT関数で代用可能です。曜日を1文字で表す書式記号「"aaa"」を使って日付を整えて、結果を「土」「日」といった文字列で比較します。

 以下は「日付が日曜日の場合」の条件式として「=TEXT($A2,"aaa")="日"」と指定しています。土曜日を判定するには「=TEXT($A2,"aaa")="土"」です。

条件付き書式で、TEXT関数を指定して日曜日を判定している例。条件式は「=TEXT($A2,"aaa")="日"」となっており、日曜日を判定していることがわかりやすい