- ベストアンサー
数値(計算式)を関数として認識させる、計算させる
5+2 4*9 : と数値(式)がセルにたくさん入っているものを計算させたいのですが、 =を置換等で挿入したりできないので困っています。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
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 と式が表示されると思います。 以上になります。
その他の回答 (6)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
一法として、イミディエイトウィンドウを使ってみます。 ワークシート上で処理したいセル範囲を選択、Alt+F11 で VBE 起動、イミディエイトウィンドウが表示されていない場合は Ctrl+G などで表示、ウィンドウに for each c in selection:c.formula="="&c.value:next c と記入、同じ行内にカーソルを置いたまま Enter。
お礼
ありがとうございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、「=」抜きの関数の様な文字列データが入力されているセル範囲がA1~A9のセル範囲であるものとします。 まず、適当な列(ここでは仮にB列とします)の1行目のセルに次の様な関数を入力して下さい。 =" ="&A1 次に、B1セルをコピーして、B1~B9の範囲に貼り付けて下さい。 次に、B1~B9の範囲をコピーして、適当な列(ここでは仮にC列とします)の1行目のセルに、"値のみ"を貼り付けて下さい。 次に、C1~C9の範囲をコピーして、A1~A9の範囲に貼り付けて下さい。 そして、A1~A9の範囲内に存在する全ての「 =」を、一括して「=」に置換して下さい。 これで、元の文字列の先頭に、「=」を付けた関数となります。 尚、C列に貼り付けずに、直接A列に貼り付けても良いのですが、万が一何かミスを犯してしまって、元データであるA列の文字列が消えてしまった場合には取り返しがつかなくなる恐れがあるため、バックアップもかねて一旦、C列に貼り付けた方が良いかも知れません。 それから、もし、元の文字列の中に「 =」という文字列が含まれている場合には、B1セルに入力する関数の中の「&」よりも前の部分を、" ="の代わりに、例えば"゛="(「濁点」+「イコール」)等の様な、「元の文字列の中には使われていない文字の組み合わせ」に変えた上で、同様の操作を行って下さい。
お礼
式の形態は残したかったので思った通りの結果が求まりました。
- keithin
- ベストアンサー率66% (5278/7941)
ついでにもう一個,マクロを使った方法 手順: B1セルを選ぶ(必ず行う) 名前の定義を開始 名前 calc 参照範囲 =evaluate(!A1) と間違い無くこの通りに作成し,OKする 5+2等が記入されているセルの「右隣のセル」に =calc と記入する どの右隣セルにも,同じくこの通りに記入する。
お礼
ありがとうございました。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 「置換」では無理みたいですが、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
お礼
ありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
「数値(式)」が記入されているセル範囲に,セルの書式設定の表示形式のユーザー定義で =@ と設定,見た目上「=5+2」「=4*9」などのような表示になることを確認する セル範囲をコピーする ウィンドウズのスタートメニューからもう一個エクセルを新たに起動する 形式を選んで貼り付けで「テキスト」を選んで貼り付ける。
お礼
表示形式の変更だけしかしてないので 値としてペーストしても変わりないと思います。
- matyu1003
- ベストアンサー率42% (257/598)
No.1 です。校正しそこないました。 1. の工程は不要です。いきなり2から。 3. の工程はExcel標準ではなくCSV形式で保存して下さい。です。 すいませんでした。
お礼
( ' が重要です)はないほうがスムーズにできたのですが 簡単な方法で解決しました。