- ベストアンサー
excelでこんなことができる関数があったと思うのですが
セルに「=」を除いて数式を打ちます。 例えば「2*3」と打つとします。 これは文字データと認識されます。 関数を使ってこれを別のセルに、答えの「6」と導き出す関数を教えてください。 よろしくお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
今やってみましたらちゃんとDLできましたよ。 ただDLするだけと書きましたが、DLしたあと アドインの設定をしないといけないようです。 再度トライされてみてはどうですか?
その他の回答 (7)
- gutugutu
- ベストアンサー率14% (184/1234)
過去ログ参照 NO.3の方の回答が良いかと思います。 マクロをくまなくてもDLするだけです。
お礼
とても良さそうに思えましたが、残念ながらアクセスできませんでした。 ありがとうございました。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 #5 さんとかぶってしまいますので内容は割愛しますが、 このExcel Ver4 マクロ関数を使った式は、絶対に他のシートやブックにコピーしてはいけません。場合によって、Excelアプリケーションが、エラーを出して終了してしまいます。シート間で、コピーができる方法としては、 「=EVALUATE(!A1)」という書き方がありますが、システムが不安定な状態になるので、私は、お勧めしません。 なお、Excel 2003 ですと、セキュリティでマクロの使用が検出されるかと思います。 VBAのユーザー定義関数で同じように作りますと、以下のようになります。関数名は任意です。 '標準モジュールに以下のコードを入れます。 Function MOJI2SHIKI(セル As Variant) As Variant Dim myValue As Variant Dim ret As Variant myValue = セル ret = Application.Evaluate(myValue) If IsError(ret) Then MOJI2SHIKI = セル Else MOJI2SHIKI = ret End If End Function ワークシートには、このように入れます。 =MOJI2SHIKI(A1) それから、Excel Ver4 マクロ関数が、本当に、VBAに置き換わるのなら問題がないのですが、置き換わっていない部分があり、今後、どうなるのかはわかりませんが、今のところ、Excel2003 までは、使用できます。 .
お礼
マクロで組むしかなさそうですね。 ありがとうございました。
- shiotan99
- ベストアンサー率68% (140/203)
こんにちは~ 4.0マクロ関数のことでしょうか? A1セルに 「2*3」、B1セルに計算結果だとします。 B1セルが選択された状態で メニューの挿入~名前~定義( または Ctrl+F3キー ) いちばん上の「名前」欄に任意の名前、ここでは仮に keisan と入れます。 いちばん下の参照範囲に =EVALUATE(A1)+NOW()*0 と入れます。 B1セルに =keisan と入れてください。6と出るはずです。 A2、A3…にも文字列の式を入れる場合は、 B1を下にフィルコピーすればOK。 4.0マクロ関数はいまでは互換性のためだけに残っているものです。 次期バージョンのエクセルで使えるかどうかの保証はありません。 これ以外では VBAでユーザー定義関数をつくるしかないと思います。
お礼
ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
多分INDIRECT関数の利用例をどこかでみて、記憶にうろ覚えで残ったのかも。 (例) A1に3、A2に2 とあるとする。 B1セルに(当然文字列で)A1:A2(半角)とあるとする。 たとえばB3に =SUM(INDIRECT(B1)) と入れると、合計が計算され 5と出ます。 しかしセル番地を参照するだけで、SUMそのものは、(そのままの!)関数に置き換えてくれるものはない。 VBAのEVALUATE(文字列を式として、評価=計算)しかない。
お礼
仰るとおり、indirectでした。 出来ませんでしたがすっきりしました。 やはりVBA使わないとだめみたいですね。 VBAはどうも苦手なので… ありがとうございました。
- otoutann
- ベストアンサー率26% (248/933)
A*Bのかけ算だけなら、2*3のセルがA1として、 =LEFT(A1,FIND("*",A1)-1) * RIGHT(A1,LEN(A1)-FIND("*",A1)) で計算できます。四則計算だけなら場合分けしてなんとかなりますが、 何の目的でそういう関数が必要か分かれば、他の手もあると思います。
お礼
関数をleftやfind使ってやるわけですね。 汎用性はないかもしれませんが、計算が一つの四則演算では大丈夫みたいですね。 ありがとうございました。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
通常の関数では、なかったと思います。 VBAでは、 Evaluate関数で、そうした数式の計算をさせることができます。 なので、ユーザー定義関数を作成することになろうかと思います。
お礼
ありがとうございます。 VBAで作るしかないのでしょう? あったと思ったのですが。
- chiyuko
- ベストアンサー率27% (35/127)
おそらくMMULTのことだと思います。 お試しあれ!
補足
質問が下手で申し訳ないです。 あるセルに計算式を入力し、 そのセルから答えを導く関数が知りたいです。 例) セル「A1」 「3+5」から セル「A2」 に 「8」と導くような関数です
お礼
最高です。 理想がそのまま実現しました。 本当にありがとうございました。