大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excelで、文字列を数式として認識する方法について、ご紹介します。結論から言うと、文字列を数式として認識するExcel関数はありません。代替案としては、「数式文字列を数式に変換する」方法と、「Excel VBAを使ってしまう」という方法があります。まずは、数式に変換する方法を検討してみて、ダメならVBAを使うという方向でいきましょう。

はじめに

この記事では、文字列を数式として認識する方法について、ご紹介します。

結論として、文字列を数式として認識するExcel関数は、ありません。残念。

ただ、代替案として、次の2つがあります。

  • 数式文字列を数式に変換する
  • Excel VBAを使う

まずは、数式文字列を数式に変換する方法で、対応できないかを検討して、ダメなら、VBAを使うという方向がいいです。

では、文字列を数式として認識する方法について、解説していきます。

この記事で紹介すること

  • 文字列を数式として認識する方法

目次から見たい項目へ移動すると便利ですよ。

目次

Excelで数式が数式文字列として入力されている

Excelで、数式が数式文字列として入力されている場合があります。

数式文字列を数式として認識することはできないか、についてです。

結論から言うと、数式文字列を、数式として認識するExcel関数はありません。

数式文字列の例

数式文字列は、こんな感じのものです。

数式文字列の例

数式文字列の例

数式が文字列の形式で、セルに入力されています。

こんな数式文字列が入力されていたデータがありました。

この数式文字列を数式として認識できると、数式として使えて、便利です。

数式文字列を数式として認識するExcel関数はない

残念ながら、数式文字列を数式として認識するExcel関数は、ないんですね。

代替案として、次の2つを考えました。

  • 数式文字列を数式に変換する
  • Excel VBAを使う

一つ目は、しょうがないけど、数式文字列を、数式に変換して使おうというものです。

もう一つは、Excel VBAの「Evaluate」を使って関数を作ってしまう、ということを考えました。

では、それぞれの方法をご紹介します。

Excelで数式文字列を数式に変換する

数式文字列を数式に変換する方法は、3つあります。

  • 表示形式を標準にしてEnter
  • 「=」を「=」に置換して数式にする
  • 区切り位置で「標準」に変更

という感じです。

簡単で、応用が利くので、「区切り位置」を覚えておくと便利です。

では、一つずつやってみます。

表示形式を標準にしてEnter

表示形式を「標準」にしてEnterで確定する、という方法です。

一番簡単な方法になります。

では、やってみます。

数式文字列を選択しておきます。

「ホーム」タブ→「数値」を選択して、「標準」に変更します。

表示形式を「標準」に設定

表示形式を標準に変更する

これだけでは、標準に変更されてないので、一つずつ「標準」に変更していきます。

セルをアクティブにして、Enterで確定します。

セルをアクティブにしてEnter

セルをアクティブにして、Enterで確定

これで、数式文字列を「数式」に変換できます。

数式文字列を「数式」に変換

数式文字列を数式に変換した結果

「数式」になりました。

あとは、同じように他のセルについても、セルをアクティブ→Enter確定を繰り返していきます。

他の数式文字列もEnterで確定する

他のセルもセルをアクティブ→Enter確定を繰り返していく

全ての数式文字列を、「数式」に変換できました。

変換するセルが多いと大変です。

「=」を「=」に置換して数式にする

次は、「=」を「=」に置換して数式にする、というものです。

では、やってみます。

変換したいセル範囲を選択して、「Ctrl + H」で「検索と置換」を開きます。

検索する文字列と置換後の文字列に、「=」を入力して「すべて置換」を選択します。

「=」を「=」に置換

「=」を「=」に置換する

これで、一気に、数式文字列を「数式」に変換できます。

数式に変換

「=」を「=」に変換した結果

数式に変換できました。

ただ、まだ表示形式が「文字列」のままなので、表示形式を「標準」に変更します。

表示形式を「標準」に変更

表示形式を標準に変更する

これで、数式文字列を数式に変換できます。

数式文字列を数式に変換

数式文字列を数式に変換した結果

これなら、大量に数式文字列があっても問題なしですね。

区切り位置で「標準」に変更

次は、「区切り位置」を使って、「標準」に変更して、「数式」に変換してみます。

これが、簡単で応用が利く方法です。

数式文字列を選択しておきます。

「データ」タブ→「データツール」→「区切り位置」を選択します。

「区切り位置」を選択

区切り位置を選択する

区切り位置指定ウィザードというものが表示されます。

3つの画面がありますけど、設定するのは、3つ目だけです。

1つ目は、特に設定しないで、「次へ」をクリックします。

1つ目は設定せず「次へ」

区切り位置指定ウィザードの1つ目は指定せず次へをクリック

2つ目も、特に設定しないで、「次へ」をクリックします。

2つ目も設定せず「次へ」

区切り位置指定ウィザードの2つ目も指定せず次へをクリック

3つ目の画面で、列のデータ形式のところを「G/標準」として、「完了」をクリックします。

3つ目で「G/標準」を選択して「完了」

区切り位置指定ウィザードの3つ目でG/標準を選択して完了をクリック

これで、すべての数式文字列が、「数式」に変換されます。

すべての数式文字列が数式に変換

すべての数式文字列が数式に変換される

すべて「数式」に変換されました。

「区切り位置」、便利です。

VBAで数式文字列を数式として認識する関数を作る

もう一つの方法が、VBAを使って、数式文字列を数式として認識する関数を作る、というものです。

では、やってみます。

VBAコード

数式文字列を数式として認識して、計算する関数を作ってみるとこんな感じになります。

Function Eval(a)
    '数式文字列を計算する
    Eval = Evaluate(CStr(a))
End Function

CStrで文字列に変換して、Evaluateで数式文字列を計算しています。

使い方は、上記のVBAコードを、標準モジュールにコピーすると、使えます。

手順は、

  • Excelのシート上で、「Alt + F11」を入力して、「VBE画面」を開く
  • 「挿入」タブ→「標準モジュール」を選択
  • 挿入された標準モジュールにVBAコードをコピペ

という流れです。

では、実行してみます。

数式文字列を数式として計算してみる

数式文字列を数式として認識して計算するVBA関数を、入力してみます。

作成したVBA関数を入力

数式文字列を数式として認識するVBA関数を入力

数式文字列を、数式として認識して、計算することができました。

他のセルにもコピーしてみます。

他のセルにコピーする

他のセルに作成したVBA関数をコピーする

全ての数式文字列を数式として認識して、計算できました。

VBAは最終手段ですね。

数式への変換で対応できるなら、数式文字列を数式に変換する方法で対応しましょう。

おわりに

この記事では、文字列を数式として認識する方法について、ご紹介しました。

結論として、文字列を数式として認識するExcel関数は、ありません。残念。

ただ、代替案として、次の2つがあります。

  • 数式文字列を数式に変換する
  • Excel VBAを使う

まずは、数式文字列を数式に変換する方法で、対応できないかを検討して、ダメなら、VBAを使うという方向がいいです。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す