- ベストアンサー
エクセル2000:B列に入っている関数をSUM関数だけ残し、そのほかは一括数値に変換したい
よろしくお願いします。 エクセル2000で、 A列に勘定科目、B列に縦にSUM関数ほか、VLOOKUP関数などいろいろ関数を入れて数字が表示されています。 具体的には予算を作成する過程での資料です。 そこで、B列のSUM関数だけをのこして、それ以外の関数をすべて「数値」(関数で現在計算結果として表示されている数値)に変換したいのです。その方法をお教えくださいませ。 よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
次の方法は如何でしょうか。 (1)対象範囲を選択→編集→置換→検索文字列を=SUM(、置換文字列を#SUM(→すべて置換 (2)対象範囲を選択→コピー→貼り付け選択→形式を選択して貼り付け→値を選択→OK (3)対象範囲を選択→編集→置換→検索文字列を#SUM、置換文字列を=SUM→すべて置換
その他の回答 (4)
- merlionXX
- ベストアンサー率48% (1930/4007)
No3 merlionXXです。 先ほどの回答はシート内のすべての数式を対象にしましたが、範囲が限定されるのであれば変更しなくてはいけません。 仮にB列とD列だけを対象にする場合は以下のようになります。 Sub test02() Dim Rng As Range, c As Range '変数の宣言 With ActiveSheet 'アクティブなシートにおいて Set Rng = .Range("B:B,D:D").SpecialCells(xlCellTypeFormulas, 23) 'B列とD列で数式のある範囲をRngと設定 For Each c In Rng 'Rngの各セル(c)について If Not c.Formula Like "=SUM(*" Then 'もしcの式が=SUM(で始まっていない場合 c.Formula = c.Value 'cの数式をcの値に置き換える End If 'If構文終了 Next c '次のcを繰り返す End With 'With構文終了 Set Rng = Nothing 'Rng設定終了 End Sub
お礼
ありがとうございます。 解決しました。VBAにたよらないで済みそうです。 でも、せっかくご指導いただきましたので、 勉強のためにも試してみます。 本当にありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
あるセルに入っている関数式を(当然、別セルにおいてになりますが)判別や抽出することは出来ない。 従って一括では難しい。 検索で検索対象を「数式」にすれば=SUM(が見つけられるが、それ以上この質問に対し有効な手が打てない。 ーー VBAを使えば、セルに設定されている式がわかるので、出来そうだ。 質問者がVBAが経験なければ、それも出来ないということです。 ーーー B列にどれぐらいSUM関数が入っているのかな。 しっかり検証してないが =SUM(を'=SUM(に全て置換し(アポストロフィを先頭につけるーー>文字列化する)、 B列全セル指定して、コピーー>同じ範囲で、形式を選択して貼り付けー>値 見えている=SUM(・・の式のセルを、アポストロフィを削除し、そのセルでENTER これで数式化する(ほかに配置を標準に戻すべき) SUMの数が多いと手数が大変だが、辛抱できるぐらい少なければやれると思うが。
お礼
ご回答ありがとうございました。 解決しましたので、VBAにたよらなくても済みそうです。 感謝いたします。
- merlionXX
- ベストアンサー率48% (1930/4007)
マクロでやる場合の一例です。 簡単ですので以下の手順をおためしください。 1.AltキーとF11キーを同時におして Visual Basic Editor画面を呼び出します。 2.画面上部のメニューバーから「挿入」、「標準モジュール」で出てきたコードウィンド(右側の白い広い部分)に以下のコードをコピペします。 '*****ここから下をコピペ***** Sub test01() Dim Rng As Range, c As Range '変数の宣言 With ActiveSheet 'アクティブなシートにおいて Set Rng = .UsedRange.SpecialCells(xlCellTypeFormulas, 23) '使用範囲で数式のある範囲をRngと設定 For Each c In Rng 'Rngの各セル(c)について If Not c.Formula Like "=SUM(*" Then 'もしcの式が=SUM(で始まっていない場合 c.Formula = c.Value 'cの数式をcの値に置き換える End If 'If構文終了 Next c '次のcを繰り返す End With 'With構文終了 Set Rng = Nothing 'Rng設定終了 End Sub '*****ここより上までをコピペ***** 3.AltキーとF11キーでワークシートへもどります. 4.メニューから、ツール、マクロ、マクロで出てきたマクロ名(test01)を選択して実行 これでできます。
- hana-hana3
- ベストアンサー率31% (4940/15541)
値に変換したい範囲をコピーして、右クリック(もしくは編集メニュー)から「形式を選択して貼付け」を選択します。 「値」のラジオボタンをクリックして「OK」で値が貼付きます。
補足
ご回答ありがとうございます。 実は、予算資料というものの、縦に大変長く、データ量が多く、 変換したいところだけ選択すること手間を省きたいという趣旨での 質問だったのです。実は、質問ではB列だけと簡易化してご質問しましたが、実際には何度かこのようなことを繰り返したい事情もあります。 ★B列すべてをコピーして、SUM関数以外の関数の表示数値を一括数値に変換する方法があれば教えてくださいませ。よろしくお願いします。
お礼
^^なるほど! できました。 ありがとうございました。 これでずっと処理が簡単になりそうです。 心より感謝申しあげます。