• ベストアンサー

エクセル 数字の前の「00」を消す方法

エクセル初心者なので、行き詰ってしまいました。 どうか、簡単な方法を教えてください。 コード「001234」「001235」「001236」・・・と6桁になっている数字の前2桁「00」を 消して4桁にしたいのです。 置き換えで「00」を、なくすことを考えたのですが、コードが「001200」や「000012」などの 場合全ての「0」も消えてしまいます。 前の「00」のみを消す方法があったら教えてください。 どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

試しにマクロを作ってみました。 最初はダミーデータでテストして、よければ使ってみてください。 対象セル範囲を選択しておいて、マクロを実行してください。 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) としてください。

chobizo
質問者

お礼

ご回答ありがとうございます。 セルの書式設定が「文字列」でしたので マクロを使うとすぐにできました。 会社でも使わせていただきます。 ありがとうございました。

その他の回答 (7)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.8

こんなの普通はMID、RIGHT、LEFT関数利用の初歩的な問題だが、少し考えると内容は色々考えられるのだ。 まずデータが文字列か数値か。 この質問の場合 (1)文字列と思うが (2)数値でも書式ーセルーユーザー定義ー000000で001234のように見せられる。この場合だとユーザー定義の書式を0000にすればよい。 (1)の文字列場合、数値にしてよいなら=A1*1で1234になる(書式は数値) 文字列のままだと、関数では#5のご回答のような種々の方法がある。 質問の書き方だが、すべてのデータが先頭桁00が保証されるのか、 あいまいな書き方になっている。だから#3のような質問になる。 何文字あっても文字列のまま先頭の0を省くのは、 =TEXT(A4*1,"0") で出来るようだ。 この質問に関して、少し奥行きがあるので、数値・文字列と書式について勉強してみてください。

chobizo
質問者

お礼

ご回答ありがとうございます。 まず、質問の仕方にセルの表示形式等の情報が必要だと いうことがよくわかりました。 質問があいまいなためご回答者様にはいろいろな方法を 考えていただき恐縮いたしました。 「 =A1*1で1234 」は目から鱗でした。 関数についてもこれからもっと勉強していこうと思います。

  • diashun
  • ベストアンサー率38% (94/244)
回答No.7

No.6です。 回答を修正します。(複数セルの選択方法の修正) 1・選択されたすべてのセルが隣接している場合。 (1)数値変換対象以外の任意のセルに数値の 1 を入力します。 ※ただし、そのセルの表示形式が「標準」であること。 (2)セル、範囲、行または列を選択する。 (3)選択したセルまたはセルの範囲の横に表示されるエラー ボタン 「!」(エクスクラメーション)をクリックし、[数値に変換する] をクリックします。 2.数値変換対象のセルが複数の隣接しないセルまたはセルの範囲に含まれる場合。 (1)数値変換対象以外の任意のセルに数値の 1 を入力し、Enter キーを押します。 ※ただし、そのセルの表示形式が「標準」であること。 (2)セルを選択し、マウスの左クリックメニュー で [コピー] をクリックします。 (3)文字列として保存されている数値が含まれている、変換対象の隣接しないセルまたはセルの範囲を選択します。 複数のセルを同時に数値セルに変換するには、「Ctrlキー」を押しながら対象セルを連続してクリックします。 (4)マウスの左クリックメニューの[形式を選択して貼り付け] をクリックします。 (5)[演算] の下の [乗算] をクリックし、[OK] をクリックします。 以上。

chobizo
質問者

お礼

ご回答ありがとうございます。 セルの表示形式は「文字列」だったのですが、やり方が悪いのか 「数値」にしてみても「!」が出てきませんでした。 しかし、いろいろな方法や考え方があると大変勉強に なりました。 修正案まで書いていただき本当にありがとうございました。

  • diashun
  • ベストアンサー率38% (94/244)
回答No.6

Excellの標準機能(エラー通知)を使えると思います。 まず、対象セルを選択して左クリックで「セルの書式設定」をクリックし、「表示形式」タブで「数値」をクリックします。 これで、そのセルの」表示形式が「数値」になりました。 Excellのバージョンが 97 ~ 2007 であれば、表示形式が「数値」のセルに文字(文字列)入力されている場合、そのセルを選択状態にするとセルの左上に 「!」(エクスクラメーション)の「エラーマーク」が表示されます。 そのマークにマウスをポイントすると、エラーの理由とその対処方法が 表示されますので、「数値に変換する」をクリックすれば、選択セルの表示形式が「数値」になると共に数値の先頭の"0"は全て表示されなくなります。 複数のセルを同時に数値セルに変換するには、「Ctrlキー」を押しながら対象セルを連続してクリックして一括処理できるはずです。 ・・・的外れならご容赦ください。 他にユーザー関数で処理することも簡単にできますが、とりあえず上記の方法でお試し下さい。 関数が必要なら補足でご一報ください。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

◆もしも、表示形式対応の場合はユーザー定義で、 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) ★ともに下にコピー

chobizo
質問者

お礼

ご回答ありがとうございます。 いろいろな関数を教えていただきうれしいです。 別の機会でも使えそうなので、しっかり覚えて おきたいと思います。

  • hiro-ss16
  • ベストアンサー率42% (18/42)
回答No.4

頭に"0"が入力されていると言うことは、書式が"文字列"になっている からだと思いますが、右4桁を切り出す関数を使えば出来ると思い ます。     A       B       C 1  001234  1234 2  001235  1235 3  001236   1236 4  000012   0012 A1~A4に数値が入力されているとして、B1 に次の式を入れて 下にコピーします。 =RIGHT(A1,4) これでやってみてください。

chobizo
質問者

お礼

ご回答ありがとうございます。 RIGHT関数を知らなかったので 大変参考になりました。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

ANo.2を投稿してから気付いたことがあります。 前ゼロが2桁付いていない場合はないのでしょうか? 123456 とか 012345 といった6桁の場合も 3456 とか 2345 となってしまいます。 あと、書式設定で6桁表示になっている場合にも提示したマクロは無力です。 失礼しました。

  • fine_day
  • ベストアンサー率70% (6285/8867)
回答No.1

A1のセルに001234が入っているとき、B1に「=RIGHT(A1,4)」と入れれば「1234」が表示されます。 RIGHTは右から指定した文字数を取り出す関数です。 A2、A3にもデータが入っているなら、B1を下に向かって連続コピーすれば、全部4文字になります。 http://maglog.jp/excel/Article256123.html A列のの6文字のデータを消すとB列のデータも消えてしまいますので、4文字のデータだけが並んだシートが必要な場合には、B列をコピー→「形式を選択して貼り付け」で「値」を選んで他のシートにコピーしてください。

chobizo
質問者

お礼

ご回答ありがとうございます。 やってみたら簡単に出来ました。 関数の知識もあまり詳しくない状態でしたので 大変助かりました。

関連するQ&A

専門家に質問してみよう