• ベストアンサー

数値(計算式)を関数として認識させる、計算させる

5+2 4*9 : と数値(式)がセルにたくさん入っているものを計算させたいのですが、 =を置換等で挿入したりできないので困っています。

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

  • ベストアンサー
  • matyu1003
  • ベストアンサー率42% (257/598)
回答No.1

A1セルに 5+2 もしくは '5+2 と入っているとします。 1. CSVファイルをExcelで開きます。 2. A列に行を挿入し、'= を入れます( ' が重要です)。B1が 5+2 もしくは '5+2 になります。 3. CSVファイルを保存します。 4. CSVファイルをメモ帳で開きます。 5. メモ帳で開いたCSVファイルは =,5+2 になっているはずです( ' が取れます)。 6. =, を = に置換します。 7. CSVファイルを保存します。 8. CSVファイルをExcelで開きます。A1 は 7 と表示され、セルを選択した場合に上側には 5+2 と式が表示されると思います。 以上になります。

re_ttaro
質問者

お礼

( ' が重要です)はないほうがスムーズにできたのですが 簡単な方法で解決しました。

その他の回答 (6)

回答No.7

一法として、イミディエイトウィンドウを使ってみます。 ワークシート上で処理したいセル範囲を選択、Alt+F11 で VBE 起動、イミディエイトウィンドウが表示されていない場合は Ctrl+G などで表示、ウィンドウに for each c in selection:c.formula="="&c.value:next c と記入、同じ行内にカーソルを置いたまま Enter。

re_ttaro
質問者

お礼

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

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.6

 今仮に、「=」抜きの関数の様な文字列データが入力されているセル範囲がA1~A9のセル範囲であるものとします。  まず、適当な列(ここでは仮にB列とします)の1行目のセルに次の様な関数を入力して下さい。 =" ="&A1  次に、B1セルをコピーして、B1~B9の範囲に貼り付けて下さい。  次に、B1~B9の範囲をコピーして、適当な列(ここでは仮にC列とします)の1行目のセルに、"値のみ"を貼り付けて下さい。  次に、C1~C9の範囲をコピーして、A1~A9の範囲に貼り付けて下さい。  そして、A1~A9の範囲内に存在する全ての「 =」を、一括して「=」に置換して下さい。  これで、元の文字列の先頭に、「=」を付けた関数となります。  尚、C列に貼り付けずに、直接A列に貼り付けても良いのですが、万が一何かミスを犯してしまって、元データであるA列の文字列が消えてしまった場合には取り返しがつかなくなる恐れがあるため、バックアップもかねて一旦、C列に貼り付けた方が良いかも知れません。  それから、もし、元の文字列の中に「 =」という文字列が含まれている場合には、B1セルに入力する関数の中の「&」よりも前の部分を、" ="の代わりに、例えば"゛="(「濁点」+「イコール」)等の様な、「元の文字列の中には使われていない文字の組み合わせ」に変えた上で、同様の操作を行って下さい。

re_ttaro
質問者

お礼

式の形態は残したかったので思った通りの結果が求まりました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.5

ついでにもう一個,マクロを使った方法 手順: B1セルを選ぶ(必ず行う) 名前の定義を開始  名前 calc  参照範囲 =evaluate(!A1) と間違い無くこの通りに作成し,OKする 5+2等が記入されているセルの「右隣のセル」に =calc と記入する どの右隣セルにも,同じくこの通りに記入する。

re_ttaro
質問者

お礼

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

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 「置換」では無理みたいですが、VBAだと別セル表示で可能のようです。 データが入っている右隣りのセルに計算結果を表示させるようにしていますので、 範囲指定した右の列は使用していない状態にしてください。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub 計算() Dim c As Range For Each c In Selection c.Offset(, 1) = "=" & c Next c End Sub ※ 必ず範囲指定した後にマクロを実行してください。m(_ _)m

re_ttaro
質問者

お礼

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

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

「数値(式)」が記入されているセル範囲に,セルの書式設定の表示形式のユーザー定義で =@ と設定,見た目上「=5+2」「=4*9」などのような表示になることを確認する セル範囲をコピーする ウィンドウズのスタートメニューからもう一個エクセルを新たに起動する 形式を選んで貼り付けで「テキスト」を選んで貼り付ける。

re_ttaro
質問者

お礼

表示形式の変更だけしかしてないので 値としてペーストしても変わりないと思います。

  • matyu1003
  • ベストアンサー率42% (257/598)
回答No.2

No.1 です。校正しそこないました。 1. の工程は不要です。いきなり2から。 3. の工程はExcel標準ではなくCSV形式で保存して下さい。です。 すいませんでした。

関連するQ&A

  • 関数計算されたセルを数値にする方法

    すいませんが、教えてください。関数計算されたセルを関数計算の状態ではなく、数値として変更することは可能でしょうか? たとえばA1セル(1),B1セル(2)があり、C1セルに=SUM(A1+B1)と入力すると画面上では3とでますが、セルの中身としては関数式の状態です。これを"3"と認識したいのですが・・・。

  • エクセルの表計算書式のセルを普通の数値にしたい。

    セルの値がA1+B2となっていて、表示される数値が8とします。 わたしがやりたいのは、A1+B2の式をなくして、8の数値だけにしたいのですが、 どうやればできますか?ひとつのセルだけだったら書き直せばいいんですが、膨大なセルの数なので、どうにか表計算の式をなくして、上のバーも数値だけににしたいのですが可能ですか?

  • エクセルで数値が0以下になった場合他の数値を1マイナスする

    エクセルでの計算式でどうしても分からないので質問させてもらいます。 セルA1に10という数値、セルA2には20という数値があり、A1から何度か引き算をしていき セルA1の数値が0になった場合セルA2の20から1マイナスさせて その後、またセルA1には10と数値が入るようにしたいのですが 式が全然分からず、困っております。 簡単な計算のようなのですが、よくわからなかったので どのような式を使えば良いのか、わかる方宜しくお願いします。

  • 関数計算

    関数計算で、A列に 2 5 4 3 6 として、4以上の数値の平均値の90%相当額を求める方法で、A列に数値入力するだけで済む方法を教えてください。 SUMIFとCOUNTIFを使ってみましたが、計算済み数値のセル番号を入れてもうまく計算されず、数値を直接入力しなければなりません。 よろしくお願いします。

  • 関数 ~に最も近く~よりも高い数値

    関数苦手です。宜しくお願いします。 セルA1からF5まで適当な数値が入っており、B1からF5までの中でセルA1に最も近く、A1よりも高い数値を選ばせたいです。同様なA1に最も近く、A1よりも低い数値を選ぶ式をお願いします。

  • 2つの関数の積を数値計算で解く

    時間tで微分すると、共にtの関数であるS(t)、I(t)の積の形で表せる関数F(t)を 数値計算で解きたいのですが、やり方がわかりません。 関数が1つだけの時のやり方はわかるのですが、関数が2つ、しかも積となるとお手上げで…。 式の形は dF(t)/dt=-αS(t)I(t)   (αは係数) となります。このような形の式を数値計算で解くやり方を解説しているページ、 または書籍をご存知の方がいらっしゃいましたらご教授願います。

  • 関数がかかっているセルの数値に関数を・・・

    以前、下記の「平均の出し方を教えて下さい」で質問したものですが、 対象のセルA1~A10には、それぞれ C1-B1 のような関数(計算式) がかかっています。 これに「AVERAGE」をかけるとただしく出ません。 数値だけを認識させて、AVERAGEを出すにはどうしたらいいのでしょうか? よろしくお願いいたします。 --------------------------------------------- (以前の質問) エクセルでの関数を教えてください。 セルa1からa10に順に数値を記入します。 入力がa3やa7までの途中であっても=残りが未入力であっても a11に平均を自動的に(一つ入力が増えるたびに)出したいです。 a11にどのような式を入れたらいいのでしょうか? よろしくお願いいたします。 投稿日時 - 2014-05-02 18:52:39

  • 数式の計算結果により表示されたセルを数える関数を教えてください

    Excel2003です。 「=COUNTA(範囲)」で文字や数値、式などのデータが入力されているセルを数えることができますが 数式の計算結果により表示された文字や数値の入ったセル(数式の計算結果で空白のセルを数えない)を数える関数を教えてください  

  • エクセルで100万~500万のセルには、セルの数値の10%を乗じる計算

    エクセルで100万~500万のセルには、セルの数値の10%を乗じる計算式を教えてください? 経費の計算式で、対象セルの数値が100万~500万の場合は、10%といった計算式を作りたいと思っています。 計算式により、A1が 1,300,000 の場合は A2は 130,000(10%)といった計算です。 お手数ですが、ご教授願います! 

  • 関数の数値を変えずにドラッグ

    エクセルでランキングの表を作成しています。 関数式はいたって単純で セル1(1行目)   RANK(D2,D2:D200) セル2(2行目)   RANK(D3,D2:D200) セル3(3行目)   RANK(D4,D2:D200)             ・             ・             ・ です。 参照範囲をみていただければわかる通り この式を入力したい行数が200あります。 そのため、200行のセルに、 一つ一つ関数式を入力することは大変なので ドラッグで 範囲の数値D2:D200を変えずに ランキングを表示するセルの数値D2~だけを加数することはできませんでしょうか?

専門家に質問してみよう