プロが教える店舗&オフィスのセキュリティ対策術

エクセルで
例えばA1のセルに1+1
と入力すると
B1のセルに2
と答えが出る関数があったと思います。
もちろんB1のセルに
=1+1
と入力する方法ではありません。

どなたかわかる人がいたら教えてください。
よろしくお願いします。

A 回答 (8件)

No.5、6、7です。



>なぜか0(ゼロ)になってしまいます。

#VALUE!とか、#NAME?とかのエラーでなく、0になるということはEVALUATE関数自体は機能している気がします。
EVALUATE関数で0(ゼロ)となるセルを指定してしまったのかも知れません。

そこで以下の検証をお願いできますでしょうか?

(1)0と表示されてしまうセルを選択
(2)ホームメニューの「数式」を選択
(3)「数式の検証」を選択
(4)すると添付画像のような「数式の検証」ダイアログが表示される
(5)ダイアログの検証(V)の最上段に「名前の定義」で付けた名前(添付画像では「calcu」)が表示されていることを確認
(6)ダイアログで「ステップイン」をクリック
(7)すると(5)の下に添付画像のように、「EVALUATE(Sheet1!A1)」などと表示される
(8)このとき、添付画像で色を付けた「Sheet1!A1」の部分が、そもそも計算させようとしている数式が入っているセルになっているか確認

※つまり、(7)で

EVALUATE(【1+1などの数式を入れた】計算させたいセル)

という風に表示されなければ、期待した結果にならないということになります。
逆に、上記手順でチェックして、EVALUATE関数が計算している数式が入っているセルを特定すれば、0になってしまう原因が判明すると思います。

また、「ステップイン」ボタンがグレーアウトするまで繰返して押下し、グレーアウトしたら今度は「ステップアウト」ボタンをグレーアウトするまで繰返して押下すると、最終的な結果(ご質問者のケースでは0「ゼロ」)になるまでの計算経緯を確認できます。
「エクセルで 例えばA1のセルに1+1 と」の回答画像8
    • good
    • 0
この回答へのお礼

何度もありがとうございます。
不思議なことに0をダブルクリックしたら、
なぜかできました。
ご丁寧に何度もありがとうございました。

お礼日時:2022/12/22 10:13

No.5、6です。


既に説明と添付画像で明らかなようにEVALUATEマクロ関数で解決するはずなのですが・・・・・・・

>残念ですが、うまくできませんでした。

遅ればせながらEXCELのバージョンを教えていたたけませんか?
また、うまくいかず、どのような結果になってしまうのか教えていただけませんか?
    • good
    • 0
この回答へのお礼

何度もありがとうございます。
バージョンは16です。

なぜか0(ゼロ)になってしまいます。

お礼日時:2022/12/20 08:53

No.5です。


大変失礼しました。勘違いがありました。

前回回答で、バージョン365で「EXCEL4.0のマクロを有効にする」のチェックを外しても問題なく動作すると書きましたが、勘違いでした。

問題なく動作するのはバージョン2010、2013で、これらのバージョンにはセキュリティーセンターのマクロの設定についてその選択肢がそもそもありませんでした。

365は「EXCEL4.0のマクロを有効にする」のチェックを外すと、前回回答の「=calcu」を記述しようとすると「#BLOCKED!」のエラーが表示されます。

したがって365ではトラストセンターのマクロの設定で「EXCEL4.0のマクロを有効にする」にチェックを入れておく必要があるということになります。
    • good
    • 0
この回答へのお礼

何度もありがとうございます。
残念ですが、うまくできませんでした。
ありがとうございました。

お礼日時:2022/12/19 16:06

enunokokoroさんのご回答のとおり、EVALUATE関数はEXCEL4.0のマクロ関数です。

以下のURLはご質問者と同様のご質問に対し、私が昨年回答した内容です。

https://oshiete.goo.ne.jp/qa/12386234.html

添付画像をご覧ください。

添付画像①のようにホームメニューの「数式」→「名前の定義」から吹出し(1)のように任意の名前をつけて参照範囲にEVALUATE関数を記述することで利用できます。

仮にB1セルを選択して名前の定義を行うとすると、気を付けるのは数式を吹出し(2)「=EVALUATE(A1)」のように相対参照で記述することです。ここで吹出し(3)のOKを押し、名前を定義します。

こうすると、付けた名前が「calcu」だとすると、吹出し(4)のように「=calcu」を記述するとB1セルにA1セルに対するEVALUATE関数実行を定義したので、表示セルの左隣のセルに記述された「文字数式」を計算して結果を表示できるようになります。

この状態で、バージョン365の環境で添付画像➁のように、「EXCEL4.0のマクロを有効にする」のチェックを外して試してみましたが、何の問題もなく、添付画像③のように計算結果が表示されます。

バージョン2010、2013でも検証しましたが、問題なく動作しました。

上記URLにも記載しましたが、この関数を記述したEXCELブックを保存するときは、.xlsm形式で保存する必要があります。
「エクセルで 例えばA1のセルに1+1 と」の回答画像5
    • good
    • 0

EVALUATE関数は、Excel 4.0のマクロを使う関数です。



最近のバージョンだと無効にされている可能性があります。
http://officetanaka.net/excel/function/tips/tips …
https://forest.watch.impress.co.jp/docs/serial/y …
セキュリティセンターで有効にできるか確認しては。
(検証できる環境ではないので、未確認です)

使えない場合は、ユーザー定義関数で対応しては。
https://kokodane.com/2013_macro_43.htm
    • good
    • 2
この回答へのお礼

マクロだったんですね。
だからできなかったんですね。
ありがとうございました。

お礼日時:2022/12/18 18:31

[No.2お礼]へのコメント、


》 これだと、「…正しくありません」となってしまいます。
余計なお世話ですが、そういうときのために、貴方はお使いの Excel のバージョンを明記すべきだったかと。
ちなみに、私の Excel 2019 でも駄目でした。

[No.1お礼]へのコメント、
》 =関数(A1)みたいな感じにしたい…
駄目もとで、無謀(?)にも[No.2]の Hypnomaticさんのアイディア(と同じかどうか不明だけど)にチャレンジ(?)したつもりです。(*^_^*)
では、…
1.セル B1 を選択⇒Alt+MMD⇒イッチャン下の[参照範囲]ボックス内に
 ̄ ̄=LEFT(A1,FIND("+",A1)-1)+MID(A1,FIND("+",A1)+1,9)
 ̄ ̄を入力⇒イッチャン上の[名前]ボックス内に文字列で EggLov を入力
 ̄ ̄⇒[OK]をパシーッ
2.文字列 1+1 を入力したセル A1 を下方に好きなだけオートフィル
 ̄ ̄(A列に文字列1+1、1+2、1+3、… を入力)
3.式 =IFERROR(EggLov,"") を入力したセル B1 のフィルハンドルを
 ̄ ̄「エイヤッ!」とダブルクリック

貴方も試してみて、結果がどうなったかを教えてください。
    • good
    • 0
この回答へのお礼

すいません。
レベルが高すぎて理解できませんでした。
本当にすいません。
ただ、mike gさんのは
単独の足し算ならできることはわかりました。

お礼日時:2022/12/17 11:53

エクセル関数に評価関数はなかったと思うので、自作してください



A1に数式、B1セルをアクティブにした状態で
上部タブの数式→名前の定義、と進みポップアップされたウインド内のフィールド内の

名前:eval
参照範囲:=EVALUATE(A1) 
と入力

これで自作関数ができましたので、数式を表示してある右隣のセルに=eval と入力することで計算式を実行してくれます
    • good
    • 0
この回答へのお礼

お答えありがとうございます。
これだと、「その関数は正しくありません」
となってしまいます。

お礼日時:2022/12/17 08:53

B1: =LEFT(A1,FIND("+",A1)-1)+MID(A1,FIND("+",A1)+1,9)

    • good
    • 0
この回答へのお礼

お答えありがとうございます。
=関数(A1)みたいな感じにしたいです。

お礼日時:2022/12/17 08:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています