• ベストアンサー

excelでこんなことができる関数があったと思うのですが

セルに「=」を除いて数式を打ちます。 例えば「2*3」と打つとします。 これは文字データと認識されます。 関数を使ってこれを別のセルに、答えの「6」と導き出す関数を教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • gutugutu
  • ベストアンサー率14% (184/1234)
回答No.8

今やってみましたらちゃんとDLできましたよ。 ただDLするだけと書きましたが、DLしたあと アドインの設定をしないといけないようです。 再度トライされてみてはどうですか?

arigecchu
質問者

お礼

最高です。 理想がそのまま実現しました。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (7)

  • gutugutu
  • ベストアンサー率14% (184/1234)
回答No.7

過去ログ参照 NO.3の方の回答が良いかと思います。 マクロをくまなくてもDLするだけです。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1076973
arigecchu
質問者

お礼

とても良さそうに思えましたが、残念ながらアクセスできませんでした。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。 #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 までは、使用できます。 .

arigecchu
質問者

お礼

マクロで組むしかなさそうですね。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.5

こんにちは~ 4.0マクロ関数のことでしょうか? A1セルに 「2*3」、B1セルに計算結果だとします。 B1セルが選択された状態で メニューの挿入~名前~定義( または Ctrl+F3キー ) いちばん上の「名前」欄に任意の名前、ここでは仮に keisan と入れます。 いちばん下の参照範囲に =EVALUATE(A1)+NOW()*0 と入れます。 B1セルに =keisan と入れてください。6と出るはずです。 A2、A3…にも文字列の式を入れる場合は、 B1を下にフィルコピーすればOK。 4.0マクロ関数はいまでは互換性のためだけに残っているものです。 次期バージョンのエクセルで使えるかどうかの保証はありません。 これ以外では VBAでユーザー定義関数をつくるしかないと思います。

arigecchu
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

多分INDIRECT関数の利用例をどこかでみて、記憶にうろ覚えで残ったのかも。 (例) A1に3、A2に2 とあるとする。 B1セルに(当然文字列で)A1:A2(半角)とあるとする。 たとえばB3に =SUM(INDIRECT(B1)) と入れると、合計が計算され 5と出ます。 しかしセル番地を参照するだけで、SUMそのものは、(そのままの!)関数に置き換えてくれるものはない。 VBAのEVALUATE(文字列を式として、評価=計算)しかない。

arigecchu
質問者

お礼

仰るとおり、indirectでした。 出来ませんでしたがすっきりしました。 やはりVBA使わないとだめみたいですね。 VBAはどうも苦手なので… ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • otoutann
  • ベストアンサー率26% (248/933)
回答No.3

A*Bのかけ算だけなら、2*3のセルがA1として、 =LEFT(A1,FIND("*",A1)-1) * RIGHT(A1,LEN(A1)-FIND("*",A1)) で計算できます。四則計算だけなら場合分けしてなんとかなりますが、 何の目的でそういう関数が必要か分かれば、他の手もあると思います。

arigecchu
質問者

お礼

関数をleftやfind使ってやるわけですね。 汎用性はないかもしれませんが、計算が一つの四則演算では大丈夫みたいですね。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

通常の関数では、なかったと思います。 VBAでは、 Evaluate関数で、そうした数式の計算をさせることができます。 なので、ユーザー定義関数を作成することになろうかと思います。

arigecchu
質問者

お礼

ありがとうございます。 VBAで作るしかないのでしょう? あったと思ったのですが。

全文を見る
すると、全ての回答が全文表示されます。
  • chiyuko
  • ベストアンサー率27% (35/127)
回答No.1

おそらくMMULTのことだと思います。 お試しあれ!

arigecchu
質問者

補足

質問が下手で申し訳ないです。 あるセルに計算式を入力し、 そのセルから答えを導く関数が知りたいです。 例) セル「A1」 「3+5」から セル「A2」 に 「8」と導くような関数です

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの関数について

    具体的な例で質問させていただきます。 セル内に「35.15m2」といった文字も含んだ値に対し、別のセルの「0.3」を掛けた答えを、関数を使って出したいのですが、いい関数、もしくはいい方法はありますか? ご存知の方がいましたら、よろしくご教授ください。

  • excel 関数にて文字を0として認識させる方法

    数式の中に数字以外の文字が入ると#VALUE!が出ます。 ヘルプを参照すると、 「文字列が正しいデータ型に変換されません。必要な演算数や引数について、数式または関数が正しいかどうか、また、数式で参照するセルの値が有効かどうかを確認します。たとえば、セル A5 に数値が入力され、セル A6 に "なし" という文字列が入力されている場合、数式 =A5+A6 は、エラー値 #VALUE! を返します。」 これを解決させるにはどうしたらいいでしょうか? 上の例ですと、"なし"と打ち込んだ場合0として認識させるようにしたいです。

  • Excelで、iserror関数を使用した結果は数値ではないのですか?

    ご質問させていただきます =IF(ISERROR(VLOOKUP(A2,$A$29:$F$40,3,FALSE)),"0",VLOOKUP(A2,$A$29:$F$40,3,FALSE)) という関数を作りました。 この際、エラーが表示される場合に、0に置き換える、という意味で この関数を作ったのですが 表示された 0 は ・表示がセル内で左詰になっている ・条件式書式で「セルの値が 0 のときに フォント色を白」  という条件をつけても、フォント自体は白にならない という2点から、0は数値ではなく文字として認識されている、と自分なりに捉えました。 しかし、疑問に思ったのは、 ・表示された 0 を引用した数式は成り立つ (たとえば、A1の値をIserrorで表示したときに0が出て、A2が2の場合  B1の数式を、 =A1+A2  とすると、2が表示される) ということから、数式を作ると数値として認識される、ということです。 この関数でセルに表示された "0" は、文字として認識されるのでしょうか? それとも数値として認識されるのでしょうか? ちなみに、自分は、0を表示させずに {条件式書式を使用したいと考えています。} さらにそのセルの値をさらに別の数式に反映させたいです。 なので、一番上に表示した数式の "0" の部分を "" にしてしまいたくないのです。(空欄表示の場合は、完全に次の数式に反映できず、このセルの値 {この場合は空欄} を引用した数式の値は #VALUE と表示されました) どなたか詳しい方、ご回答よろしくお願いいたします。

  • エクセル関数について、教えて下さい。

    エクセル関数について、教えて下さい。 a1:300 、 b1:* 、 c1:10 と入力してあります。 ここで、 d1へ =concatenate("=",a1,b1,c1) を設定した時に得られて表示される文字は、 「 =300*10 」 となります。 この時、この文字を数式として活用したいのですが、つまり解が " 3000 " と別のセルでも良いので、解答するようにしたいのですが、お解かりになる方教えてください。

  • Excelの関数

    MAX関数の答えに該当するセルの列番地を別の関数の引数の一部に使いたいのですが、どのようにすればいいですか? 例えばMAX(A1:G10)とあってその答えがC5だとします。 別のセルで=C10を入れるのですが、そのCはMAX関数の答えのCをひっぱってくるようにしたいのです。 宜しくお願いします。

  • エクセルで挿入した列に関数が値を返しません。

     エクセルで列を挿入したセルに、関数を入力しても値を返しません。 関数を入力しても、数式バーに表示される数式がセルに表示されるだけで、答えは出ません。式はあっていて、違うセルに数式をコピーして張り付けると、値を返します。  また、挿入した列に元からある空白の列をコピーして貼り付け、関数を入力しても値を返します。  どこかで変な設定をしてしまったのでしょうか?  分かる方、どうか教えてください。

  • エクセル 関数 について質問です。

    エクセル 関数 について質問です。 設定目標に対しての、プラス、マイナス、した数値をセルに表示させたいのですが、どのような関数(数式)を使えばいいのですか?文章だと解りづらいので例を挙げます。 例 設定目標=10 実際成績=8 セルに表示させる答え=+2 設定目標=10 実際成績=12 セルに表示させる答え=-2 乱筆、乱文で申し訳ありませんが、よろしくおねがいします。

  • エクセルのcountif関数でカウントできません。

    エクセルもまだまだ初心者という感じの者で恐縮です。セルに表示されている文字をcountif関数でカウントできません。2重にリンクというか数式を張り付けている(vlookup関数で表示させた文字を別のシートで=を使って表示させている)せいでしょうか?でてくる値が0になってしまいます。検索条件の文字はシート上に見えていますし、範囲しても間違えていないのになぜでしょう。どなたか是非お教えください。宜しくお願いします。

  • エクセルの表記について

    困ってます・・・ 同じセル内で=$H$1+5の後に「D/α」の文字を入れたいのですが関数認識してしまいます。 数式の後にD/αを入れる方法がありましたら教えてください。お願いします。

  • エクセル 関数について

    歯科医院開業にあたり、キャンセルデータ集計表を作成しています。 キャンセルのあった日を合計するという主旨のものです。 キャンセルのあった日は、H.26.10.01(例)のようにセルに入力し(セル設定は文字列)、これを合計欄に数式で計算させたいのです。 単純に数字の合計であればオートサムを使うのですが。 このような場合は関数などの設定で日数を合計できますでしょうか? 詳しい方よろしくお願いいたします。

専門家に質問してみよう