- ベストアンサー
2以上のセルを1に一括変換したい
Excel2003 or 2010で質問です。 B列からZ列まで様々な数値が入っています。 マイナスの数値はありません。0のもの、1のものは対象外です。 2以上の数値の入ったセルを1に変換したいと思います。 大小様々な数値がはいっているので置換で修正するのは困難な状態です。 何か良い方法で2以上の数値を1に変換することはできないでしょうか? よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>マイナスの数値はありません。0のもの、1のものは対象外です。 わざわざこういう言い方をしてるということは,具体的に扱っているデータは整数だけ(今回はマイナスはないので自然数だけ)という意味なんでしょうか。(整数とは,小数点以下の数字を持たない数のことです) そういうことなら単純に 手順: 範囲を選択する Ctrl+Hで置換を出す 0 を zzz に全て置換する 改めて範囲を選択する Ctrl+Gを押す 現れたダイアログでセル選択をクリックする 現れたダイアログで定数にマークし,さらに数値だけチェックしOKする 1を含む数字のセルが飛び飛びに選択されるので,1を記入しコントロールキーを押しながらEnterで一斉入力する 改めて置換で zzz を 0 に全て置換する。 #別の解釈 セル範囲を選択する セルの書式設定で表示形式からユーザー定義で [>=2]1;G/標準 と設定する 2や2.5とか3とかは1と表示が変わります。 1.8とか0.8とかはそのままの表示です。 #さらに別の解釈 基本的にはSIGN関数で希望の値に計算できます。
その他の回答 (5)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 別セル表示の場合、SIGN関数が一番簡単だと思います。 その回答はすでに出ていますので、VBAでの一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてください。 ※ セルを範囲指定した後にマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim c As Range For Each c In Selection If c > 1 Then c = 1 End If Next c End Sub 'この行まで 尚、範囲指定したセルには文字列データはない!という前提です。 以上、参考になれば良いのですが・・・m(_ _)m
お礼
凄い!!これで一発でできました!!ありがとうございます!感謝です!勉強になりました!ありがとうございます!!
- mu2011
- ベストアンサー率38% (1910/4994)
NO4です。 同様の回答がありました事、失念していましたので読み飛ばし下さい。
- mu2011
- ベストアンサー率38% (1910/4994)
置換例です。 B:Z列を選択した状態で以下の手順は如何でしょうか。 (1)0を任意文字(仮にabc)で置換 (2)1を任意文字(仮にxyz)で置換 (3)Ctrl+G→セル選択→定数を選択→数式バーに1を入力→Ctrl+Enterキー押下 (4)abcを「0」で置換、xyzを「1」で置換
お礼
凄い!!これで一発でできました!!ありがとうございます!感謝です!
- esupuresso
- ベストアンサー率44% (257/579)
>B列からZ列まで様々な数値が入っています。 >マイナスの数値はありません。0のもの、1のものは対象外です。 但し、空白セルがあります・・・と追記されたら困るので空白セルもあると仮定して・・・ 数値の入っているセル範囲(例えばB1~Z10までとして・・・) 名前ボックスに「B12:Z22」を入力して「Enter」キーを押すと入力した部分の範囲が選択されます 選択された状態のまま =IF(B1>1,1,IF(B1="","",B1)) の式を入力して「Ctrl」を押したまま「Enter」を押します そのまま範囲選択された状態になっていますので数式の入ったセル内で「Ctrl」+「C」でコピー 右クリック→「形式を選択して貼り付け」を選択→「値」にチェックを入れて「Esc」キーを押して点滅している範囲部分を解除します 範囲選択はまだされた状態になっていますので、マウスカーソルが矢印の+の形になる部分(選択部分の上の方の枠線上など)を見つけカーソルの形が変わったらマウスの左ボタンを押した状態で元のセル範囲「B1~Z10」の中に被せる様にして配置 「コピー又は移動先の内容を置き舞えますか」と表示されますので「OK」をクリックすると置き換えられます ・・・・・以上・・・・・ 簡単に説明しますと、B列からZ列までに入っているセル範囲と同じ「列数」、「行数」を、空いているセルを使ってそこに数式を入れ、その数式を「値」として変換後、置き換えてしまうという方法です 言葉で説明すると長くなりますけど実際やってみるとすぐ終りますよ ^^; 一応画像添付をしておきますが範囲は「B2~J5」の部分を置き換える方法です 違いはセル範囲の部分だけですが、ここで使用している数式は次のようになります =IF(B2>1,1,IF(B2="","",B2))
お礼
凄い!!これで一発でできました!!ありがとうございます!感謝です!
- qtyam
- ベストアンサー率42% (23/54)
簡単な方法があったら私も知りたいなーと思いつつ 私なら、こうして実現するって方法を。 、、が!一括変換ではないのでたぶん希望されている答えとは違いますが。 (1)同じだけ空いているとこ、もしくは別シートに、 =IF(A1>=1,1,0) と入力 ※A1の部分は数値が入っているセル(別シートの場合シートの指定も必要) ※今回のは1以上は1に、それ以外は0って言い替えられると思うので、1以上を条件とした。 (2)さっき入力したセルを縦、横同じ範囲分ドラッグして式の自動コピーをする。 (3)1と0になったと思うので、その範囲のセルをまとめてコピー (4)入れ替えたいとこを選択 (5)右クリックメニューの”形式を選択して張り付け” (6)"値"にチェックして貼り付け 完成、、全然一括じゃない、、、けど、慣れたら簡単なんだよね、、1分かからないと思うし、、 ■メリット 数値が入ってるセル範囲が少々大きくても対応できる 自分で数式指定するから、条件を細かく指定できる とかかな、上記式だと数値じゃなくても1とかになっちゃうから注意ね 読み返してみるとわかりにくいな、、
お礼
凄い!!これで一発でできました!!ありがとうございます!感謝です!
お礼
凄い!!これで一発でできました!!ありがとうございます!感謝です!