• ベストアンサー

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

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/7941)
回答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/7941)
回答No.3

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

re_ttaro
質問者

お礼

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

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

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

関連するQ&A