- ベストアンサー
excelであるセル内の数値をある文字に変換したい
excelで、ある列のセルにある数値の内、ある指定範囲内の数値のみある文字列に変換したい場合、どんな方法(関数やマクロ)があるでしょうか? 例として 10 20 100 →XX 1000→XX XX 50 100以上をXX(範囲外)に変換したい
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
関数は、別セルにしか表示できないので次の方法で如何でしょうか。 方法1 セル表示のみでよければ、セルの表示形式をユーザ定義で[>=100]xx 方法2 マクロ(VBA)例です。 対象範囲を選択してマクロ実行して下さい。 置換文字 = "xx"のxxの部分に任意文字列として下さい。 Sub sample() Dim rng As Range, r As Range 置換文字 = "xx" On Error GoTo err For Each rng In Selection.SpecialCells(xlCellTypeConstants, 1).Areas For Each r In rng If r >= 100 Then r.Value = 置換文字 Next Next err: End Sub
その他の回答 (6)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
'マウスで範囲を選択バージョン Sub TestValue() Const TestValueUpper = 100 'Const TestValueLower = 0 Const PadValue = "XX" Dim Scope As Range Application.ScreenUpdating = False Set Scope = Selection For Each Scope In Selection 'MsgBox Scope.Address & "=" & Scope.Value If IsNumeric(Scope.Value) Then If Scope.Value >= TestValueUpper Then Scope.Value = PadValue End If End If Next Application.ScreenUpdating = True End Sub
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
Sub TestValue() Const TestValueUpper = 100 'Const TestValueLower = 0 Const PadValue = "XX" Dim kk As Long Application.ScreenUpdating = False For kk = 1 To Cells(Rows.Count, 1).End(xlUp).Row If IsNumeric(Cells(kk, 1).Value) Then If Cells(kk, 1).Value >= TestValueUpper Then Cells(kk, 1).Value = PadValue End If End If Next Application.ScreenUpdating = True End Sub
- ereserve67
- ベストアンサー率58% (417/708)
ANo.2です 検索する文字列* *は任意文字列を表すワイルドカードなので何か入力されているならすべて検索されます.これで私はできましたが,できませんか.
- tsubuyuki
- ベストアンサー率45% (699/1545)
「100以上」でしたか^^;;; 失礼しました、忘れてください^^;;;
- ereserve67
- ベストアンサー率58% (417/708)
列の数値がある範囲(または空行がなく連続して入っているならどこのセルでもよい)を選択し, ・データタブ→オートフィルタで100以上の条件を指定 抽出された範囲を選択して ・CTRL+H(置換ダイアログボックス) ・検索する文字列*置換後の文字列XX ・すべて置換する
お礼
ご回答ありがとうございます。 検索する文字列が一つならいいですが、 オートフィールタで抽出されたセル全てを置換する場合、 検索する文字列を指定しなくても良い方法はありますか? (例で100以上全て=100,101,102,,~)
- tsubuyuki
- ベストアンサー率45% (699/1545)
> 100 →XX > 1000→XX 範囲を指定して、 2007以降→検索と置換→置換 2003以前→編集→置換 (共通:Ctrl+H) で置換のダイアログを表示 オプションを表示させ 「セル内容が完全に同一であるものを検索する」 にチェック 検索する文字列「100」 置換後の文字列「XX」 入力し、「すべて置換」ボタンをクリック 1000も同様に。
お礼
ご回答ありがとうございます。 検索する文字列パターンが少なければ良いですが、多い場合は繰り返すのが大変ですが、、、 例として、100以上全ての場合は?
お礼
ご回答ありがとうございました。 他のトラブルが入った為、テストに時間がかかりましたが、うまくいきました。