Excelの隠し関数!DATEDIF, EVALUATEを知ってる?

Excelの隠し関数!DATEDIF, EVALUATEを知ってる? Excel

本記事では、主にExcel 2021を使用して検証および画像の作成を行っています。一部の関数は、無料のWeb版Excelでも動作しますが、動作しないものもありますので、本文中で注記します。

Excelの「隠しコマンド」!?メニューにはない、知る人ぞ知る4つの秘密の関数

「Excelの関数なら、大体知ってるよ。SUMでしょ、VLOOKUPでしょ、最近だとXLOOKUPとか…」

そう思ったあなた、素晴らしいExcel使いですね!

でも、ちょっと待ってください!

もし、Excelの関数リストに載っておらず、数式バーに入力しても候補にも出てこないのに、なぜかちゃんと動く「隠し関数」が存在するとしたら…?

今回の「Excelで暇つぶし」は、そんなExcelの歴史の闇に(?)埋もれた、秘密の関数たちを白日の下に晒す、探求の旅です。

「え、そんな関数があるの?なんで隠されてるの?」

その理由は、Excelがまだ生まれる前の大昔、表計算ソフトの覇者であった「Lotus 1-2-3」というソフトからの乗り換えを促すため、互換性を維持するために残された「遺産」だから、などと言われています。

Microsoftが公式にサポートしているわけではないので、いわば「動作保証外」の関数たち。

そんなスリリングな4つの関数、DATEDIF, DATESTRING, NUMBERSTRING, EVALUATEの謎を、一緒に解き明かしていきましょう!

1. DATEDIF関数 – なぜ便利なのに隠されたのか?期間計算の達人

考えかた

まず最初にご紹介するのは、隠し関数界のスター、DATEDIF関数です。

この関数は、誕生日から年齢を計算したり、入社日から勤続年数を計算したりといった、「期間計算」を非常に簡単に行うことができる、極めて便利な関数です。

なぜこれが公式サポートされていないのか、Excel界の七不思議の一つとも言われています。

数式と解説

=DATEDIF(開始日, 終了日, 単位)

[動作環境] Excel 2021: ✅ / Web版Excel: ✅

この関数のすごいところは、第3引数の「単位」を変えることで、様々な期間を求められる点です。

  • "Y": 満年数を返す(年齢計算に最適!)
  • "M": 満月数を返す
  • "D": 日数を返す
  • "YM": 1年に満たない月数を返す
  • "MD": 1ヶ月に満たない日数を返す
Excel画像

代替案はあるの?

残念ながら、DATEDIFと全く同じ機能を持つ公式関数は存在しません。

ただ、単純に「年数」だけを知りたい場合は、YEARFRAC関数が使えます。

=YEARFRAC(開始日, 終了日)

この関数は、2つの日付間の年数を、小数点以下の日数も含めて返します(例: 25.5年)。

結果をINT関数で整数化すれば、年齢計算に近いことはできますが、やはりDATEDIFの”Y”が返す「満年齢」の正確さには敵いません。

Excel画像

2. DATESTRING & NUMBERSTRING – 和暦と漢数字に一発変換!

考えかた

次にご紹介するのは、日本のビジネス文書などで、たまに必要になる「和暦」や「漢数字」への変換を一瞬でやってのける、双子のような関数です。

数式と解説

=DATESTRING(シリアル値)
=NUMBERSTRING(数値, 形式)

[動作環境] Excel 2021: ✅ / Web版Excel: ✅

  • DATESTRING: 2025/7/31のような日付を、「令和07年07月31日」という和暦の文字列に変換します。
  • NUMBERSTRING“: 123のような数値を、漢数字の文字列に変換します。第2引数の「形式」を変えることで、様々な種類の漢数字にできます。
    • 形式1: 一万二千三百四十五
    • 形式2: 壱萬弐阡参百四拾伍
    • 形式3: 一二三四五
Excel画像

推奨される代替案:TEXT関数

実は、これらの関数の機能は、公式にサポートされているTEXT関数で、ほぼ再現可能です。

Microsoftとしては、こちらを使うことを推奨しています。

  • 和暦に変換:
    =TEXT("2025/7/31", "[$-ja-JP]ggge""年""m""月""d""日""")
  • 漢数字に変換:
    =TEXT(12345, "[DBNum1]") (形式1)
    =TEXT(12345, "[DBNum2]") (形式2)
    =TEXT(12345, "[DBNum3]") (形式3)

表示形式のコードを覚える必要はありますが、公式にサポートされている安心感がありますね。

Excel画像

3. EVALUATE関数 – 文字列を「数式」として実行する、最強のラスボス

考えかた

さあ、いよいよ最後にご紹介するのは、隠し関数界の「ラスボス」、最も強力で、最も謎に満ちたEVALUATE関数です。

この関数の能力は、まさに異次元。

セルに入力された「文字列」を、Excelの「数式」として解釈し、その計算結果を返すという、とんでもない力を持っています。

【最重要注意点】
このEVALUATE関数は、Web版Excelでは使用できません。デスクトップ版のExcelでのみ動作する、まさに「禁断の関数」なのです。

使い方と解説:名前の定義でのみ使用可能

この関数の最大の特徴は、セルに直接=EVALUATE(…)と入力しても、エラーになって使えないという点です。

では、どうやって使うのか?

答えは、Excelの「名前の定義」機能の中でだけ、この関数はその力を発揮するのです。

  1. まず、「数式」タブに移動し、「定義された名前」グループの中にある「名前の定義」をクリックします。
  2. 「新しい名前」ダイアログボックスが表示されたら、「名前」の欄に、好きな関数の名前を付けます。(例: KeisanJikkou)
  3. 次に、最も重要な「参照範囲」の欄に、以下の数式を入力します。
    =EVALUATE(Sheet1!$A$1)
    (※Sheet1!$A$1の部分は、数式が書かれた文字列を入力したいセルを、シート名付きの絶対参照で指定します。)
  4. 「OK」をクリックして、名前を登録します。
Excel画像

これで準備は完了です!

あとは、A1セルに「計算したい数式の文字列」を入力し、別のセルに =KeisanJikkouと入力するだけ。

さあ、その驚くべき挙動を見てみましょう!

Excel画像

ご覧の通り、A1セルの文字列を書き換えるだけで、B1セルの計算結果がリアルタイムに変化します!

まるで、Excelのセルが電卓になったかのようですね。

動的なシミュレーションツールを作成したり、ユーザーが入力した条件で計算式を切り替えるような、高度なシートを作成する際に、絶大な威力を発揮する可能性があります。

まとめ

今回は、Excelの関数リストには載っていない、4つの「隠し関数」を探求する旅に出ました。

非常に便利なDATEDIF、今ではTEXT関数にその役目を譲ったDATESTRINGNUMBERSTRING、そして禁断の力を持つEVALUATE

これらの関数は、Excelが歩んできた長い歴史と、表計算ソフトの進化の過程を物語る、生きた化石のような存在です。

公式にサポートされていないため、実務で積極的に使うことは推奨されませんが、その存在と能力を知っておくことは、あなたの「Excelの引き出し」を、間違いなく豊かにしてくれるはずです。

たまには、こんなExcelの歴史の片隅に眠る「ロストテクノロジー」に思いを馳せてみるのも、また一興ではないでしょうか。

タイトルとURLをコピーしました