- ベストアンサー
エクセル 数字の前の「00」を消す方法
エクセル初心者なので、行き詰ってしまいました。 どうか、簡単な方法を教えてください。 コード「001234」「001235」「001236」・・・と6桁になっている数字の前2桁「00」を 消して4桁にしたいのです。 置き換えで「00」を、なくすことを考えたのですが、コードが「001200」や「000012」などの 場合全ての「0」も消えてしまいます。 前の「00」のみを消す方法があったら教えてください。 どうぞよろしくお願いいたします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
試しにマクロを作ってみました。 最初はダミーデータでテストして、よければ使ってみてください。 対象セル範囲を選択しておいて、マクロを実行してください。 Sub test() Dim c As Range For Each c In Selection If Len(c.Value) = 6 Then c.Value = Right(c.Value, 4) End If Next End Sub セルの書式設定が「文字列」なら大丈夫ですが そうでない場合、000012 が 12 となります。 その場合は c.Value = "'" & Right(c.Value, 4) としてください。
その他の回答 (7)
- imogasi
- ベストアンサー率27% (4737/17069)
こんなの普通はMID、RIGHT、LEFT関数利用の初歩的な問題だが、少し考えると内容は色々考えられるのだ。 まずデータが文字列か数値か。 この質問の場合 (1)文字列と思うが (2)数値でも書式ーセルーユーザー定義ー000000で001234のように見せられる。この場合だとユーザー定義の書式を0000にすればよい。 (1)の文字列場合、数値にしてよいなら=A1*1で1234になる(書式は数値) 文字列のままだと、関数では#5のご回答のような種々の方法がある。 質問の書き方だが、すべてのデータが先頭桁00が保証されるのか、 あいまいな書き方になっている。だから#3のような質問になる。 何文字あっても文字列のまま先頭の0を省くのは、 =TEXT(A4*1,"0") で出来るようだ。 この質問に関して、少し奥行きがあるので、数値・文字列と書式について勉強してみてください。
お礼
ご回答ありがとうございます。 まず、質問の仕方にセルの表示形式等の情報が必要だと いうことがよくわかりました。 質問があいまいなためご回答者様にはいろいろな方法を 考えていただき恐縮いたしました。 「 =A1*1で1234 」は目から鱗でした。 関数についてもこれからもっと勉強していこうと思います。
- diashun
- ベストアンサー率38% (94/244)
No.6です。 回答を修正します。(複数セルの選択方法の修正) 1・選択されたすべてのセルが隣接している場合。 (1)数値変換対象以外の任意のセルに数値の 1 を入力します。 ※ただし、そのセルの表示形式が「標準」であること。 (2)セル、範囲、行または列を選択する。 (3)選択したセルまたはセルの範囲の横に表示されるエラー ボタン 「!」(エクスクラメーション)をクリックし、[数値に変換する] をクリックします。 2.数値変換対象のセルが複数の隣接しないセルまたはセルの範囲に含まれる場合。 (1)数値変換対象以外の任意のセルに数値の 1 を入力し、Enter キーを押します。 ※ただし、そのセルの表示形式が「標準」であること。 (2)セルを選択し、マウスの左クリックメニュー で [コピー] をクリックします。 (3)文字列として保存されている数値が含まれている、変換対象の隣接しないセルまたはセルの範囲を選択します。 複数のセルを同時に数値セルに変換するには、「Ctrlキー」を押しながら対象セルを連続してクリックします。 (4)マウスの左クリックメニューの[形式を選択して貼り付け] をクリックします。 (5)[演算] の下の [乗算] をクリックし、[OK] をクリックします。 以上。
お礼
ご回答ありがとうございます。 セルの表示形式は「文字列」だったのですが、やり方が悪いのか 「数値」にしてみても「!」が出てきませんでした。 しかし、いろいろな方法や考え方があると大変勉強に なりました。 修正案まで書いていただき本当にありがとうございました。
- diashun
- ベストアンサー率38% (94/244)
Excellの標準機能(エラー通知)を使えると思います。 まず、対象セルを選択して左クリックで「セルの書式設定」をクリックし、「表示形式」タブで「数値」をクリックします。 これで、そのセルの」表示形式が「数値」になりました。 Excellのバージョンが 97 ~ 2007 であれば、表示形式が「数値」のセルに文字(文字列)入力されている場合、そのセルを選択状態にするとセルの左上に 「!」(エクスクラメーション)の「エラーマーク」が表示されます。 そのマークにマウスをポイントすると、エラーの理由とその対処方法が 表示されますので、「数値に変換する」をクリックすれば、選択セルの表示形式が「数値」になると共に数値の先頭の"0"は全て表示されなくなります。 複数のセルを同時に数値セルに変換するには、「Ctrlキー」を押しながら対象セルを連続してクリックして一括処理できるはずです。 ・・・的外れならご容赦ください。 他にユーザー関数で処理することも簡単にできますが、とりあえず上記の方法でお試し下さい。 関数が必要なら補足でご一報ください。
- maron--5
- ベストアンサー率36% (321/877)
◆もしも、表示形式対応の場合はユーザー定義で、 0000 としてください ◆回答済みの「RIGHT関数」以外にもこんな方法もあります、参考に ........A.............B............C..........D..........E...........F 1...003652...3652...3652...3652...3652.....3652 2...000014...0014...0014...0014...0014.....0014 3...012345...2345...2345...2345...12345...012345 4...123456...3456...3456...3456...123456..123456 B1=RIGHT(A1,4) C1=MID(A1,3,4) D1=REPLACE(A1,1,2,) E1=TEXT(A1,"0000") F1=SUBSTITUTE(A1,"00",,1) ★ともに下にコピー
お礼
ご回答ありがとうございます。 いろいろな関数を教えていただきうれしいです。 別の機会でも使えそうなので、しっかり覚えて おきたいと思います。
- hiro-ss16
- ベストアンサー率42% (18/42)
頭に"0"が入力されていると言うことは、書式が"文字列"になっている からだと思いますが、右4桁を切り出す関数を使えば出来ると思い ます。 A B C 1 001234 1234 2 001235 1235 3 001236 1236 4 000012 0012 A1~A4に数値が入力されているとして、B1 に次の式を入れて 下にコピーします。 =RIGHT(A1,4) これでやってみてください。
お礼
ご回答ありがとうございます。 RIGHT関数を知らなかったので 大変参考になりました。
- xls88
- ベストアンサー率56% (669/1189)
ANo.2を投稿してから気付いたことがあります。 前ゼロが2桁付いていない場合はないのでしょうか? 123456 とか 012345 といった6桁の場合も 3456 とか 2345 となってしまいます。 あと、書式設定で6桁表示になっている場合にも提示したマクロは無力です。 失礼しました。
- fine_day
- ベストアンサー率70% (6285/8867)
A1のセルに001234が入っているとき、B1に「=RIGHT(A1,4)」と入れれば「1234」が表示されます。 RIGHTは右から指定した文字数を取り出す関数です。 A2、A3にもデータが入っているなら、B1を下に向かって連続コピーすれば、全部4文字になります。 http://maglog.jp/excel/Article256123.html A列のの6文字のデータを消すとB列のデータも消えてしまいますので、4文字のデータだけが並んだシートが必要な場合には、B列をコピー→「形式を選択して貼り付け」で「値」を選んで他のシートにコピーしてください。
お礼
ご回答ありがとうございます。 やってみたら簡単に出来ました。 関数の知識もあまり詳しくない状態でしたので 大変助かりました。
お礼
ご回答ありがとうございます。 セルの書式設定が「文字列」でしたので マクロを使うとすぐにできました。 会社でも使わせていただきます。 ありがとうございました。