人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルの置換機能について
列で40列、行で3500行ぐらいのデータがあり、
そのうちの半分に値が、半分はブランクというデータがあります。そこから置換でブランクを”0”にするということをしたいのですが、処理するのに、
15?20分ぐらい掛かってしまいます。
置換ではなく、他にマクロ等でブランクセルのみを”0”にする良い方法はないでしょうか?

●質問者: hac20380
●カテゴリ:コンピュータ
✍キーワード:エクセル セル データ ブランク マクロ
○ 状態 :終了
└ 回答数 : 5/6件

▽最新の回答へ

1 ● Mook
●20ポイント

マクロの実装例です。

対象範囲を選択して実行してみてください。

Sub fillZero()
 Dim rng As Range
 For Each rng In Selection
 If IsEmpty(rng) Then
 rng.Value = 0
 End If
 Next
End Sub
◎質問者からの返答

すいませんVB初心者なのですが、

例えば"K"列と"L"列を選択した場合の式は

どうなるのでしょうか?お願いします。


2 ● 清角克由
●20ポイント

ちょっと正攻法ではないかもしれませんが、以下の方法ではいかがでしょうか?

シートをコピーする。

元のシートのデータをCTRL+A等で全選択し、CTRL+C等でコピーする。

コピーしたシートの一番左上のセル上でマウス右クリックまたはメニューの編集の[形式を選択して貼り付け」を選び、その中にあるリンク貼り付けを選ぶ。

ブランク部分は0、それ以外の部分は元のシートの該当個所を参照する形になる。

コピー後のシートを再度全選択(CTRL+A)し、同じ場所に形式を選択して貼り付けで今度は値のみを選択する。

私の環境ですと、置換ではちょっと待たされましたが、上記のアクションをとれば、さほど時間はかかりませんでした。(40列×4000行くらいのデータでやったのですが、置換でも15分も待たされはしませんでしたが....)


3 ● りくっち
●20ポイント

例示のようなファイルを作成して、

A1を選択

→Ctrl+Shift+End

→Ctrl+H→

「検索する文字列」をそのまま、置換後の文字列「0」で「すべて置換」

という手順で置換してみましたが、私のPCでは数秒で処理することができました。

WinXP、Excel2002、Pen4 2.4GHz 512MBの環境です。

環境がかなり劣るということでしたら、PCの処理能力のせいということもあると思います。


環境にあまり差がないようでしたら、

データ自体の問題も考えられます。

(実際のデータや環境がわからないのでなんとも言えませんが)


単に手法の問題ならばいくつか方法があります。


Sub blank_0()

 Cells.Replace What:="", Replacement:="0", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

End Sub



一瞬で0が書き込まれます。

これは複数のまとまっていないセルに対して同じ数字を加減乗除するのに便利です。

(例えば数字を全部1000で割って千円表示するなど)



以上ご参考まで。

◎質問者からの返答

>「空白セル」にチェックし、OK

ここで”選択範囲が大きすぎます”とエラーに

なってしまいました・・・


4 ● きゃづみぃ
●20ポイント

以下の手順で できるかもしれません。

まず、

列で40列、行で3500行ぐらいのデータと同じだけの

エリアに 0を入れて用意します。

それをコピーし、

元のところで 右クリック、

形式を選択して貼り付け で

演算の箇所の加算を 選択し、OKとします。

すると 貼り付け分が すべて 0加算され

ブランクセルも 0になります。

文字列のセルは そのままです。

ただ、数式の箇所には +0 が 付与されますので

数式がある場合は、いまいちかもしれませんが。

◎質問者からの返答

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

結構いいかもしれません。


5 ● kaiton
●20ポイント

#3のrikuzaiさんの回答に似ていますが..

3番目までは同じです。


マクロでは、

Selection.SpecialCells(xlCellTypeBlanks).Select

Selection.FormulaR1C1 = "0"

選択した範囲で上の操作をキー記録したものです。

環境にもよるでしょうが、数秒で終わると思います。

ブランクのセルが、空白が入力されているセルなのか、空っぽのセルなのか?

悩んだのですが、空っぽのセルとして回答しています。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ