人気マンガがだれでも無料♪電子コミック読み放題!!

エクセル2003を使用しています。
住所一覧を参照して市町村JISコードを返したいのですが可能でしょうか。

A列
大阪府大阪市○○区○○町1-1
高知県高知市○○11-1
愛知県海部郡○○町○○○○61
  ・
  ・
  ・

と住所が並んでいます。

過去の質問やサイトを調べて都道府県を抽出することはできたのですが、
JISコードを参照するには市区町村部分まで引っ張り出さないといけないようです。

何か簡単にできるような計算式等、ありませんでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

データは、地域の区分け、それも、都道府県に別けるのは面倒だから、せいぜい以下のような10ブロック別けぐらいで十分だと思います。



(北海道,東北地方,関東地方,中部地方,北陸・甲信越,東海,近畿地方,中国地方,四国地方,九州地方)

今回の使ったデータは、全部で、122,619行で、それを分散させれば、後は、どこを検索するかブロックを最初に決められれば、後はそんなに問題はないと思います。それを分散したら、1シート、1万数千件程度の検索です。そのデータのブック自体は別にし読み取り専用にしておき、そのブックのシートを、データベース関数やExcelのデータベース検索コマンド(フィルタオプション)でできるかと思います。

この場合、元のデータ自体を加工するという考えは、あまりしないほうがよいのではないかと思います。また入力データを切り分けするなら、その元のデータを考慮しないといけないはずです。

なお、JISコードは、集計すると2,520個で、市町村データは、80,813件でした。ただし、それは、「他に掲載がない場合」や「同名」が存在しているなどの理由からで、12万件自体は変わらないはずです。

個人的には、やはり、専用のデータベースの方が、現在のデータのままでは検索の効率はよいと思っています。

今回、私の使用したデータは以下の[ZIPJIS]というK3(桐)ファイルです。
(内容の説明では、2005年6月20日までの変更に対応。)
http://kitagawa.tv/zipjis/zipjis.htm

参考URL:http://kitagawa.tv/zipjis/zipjis.htm
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ございません。
やはり簡単にはいかないようですね・・・
あればよく使われそうな処理なので、簡単な方法があるかと思いましたが・・・
VBAくらい勉強しようと思います。
貼っていただいたURLも、参考にさせていただきます。
ご回答ありがとうございました。

お礼日時:2005/05/20 19:40

>JISコードを参照するには市区町村部分まで引っ張り出さないといけないようです。



住所の完全な分割は #2 の chie65536 さんがコメントされておりますとおり、複雑な例外処理を必要とするため、非常に難しいと思います。

実は以前、住所を分割するVBAユーザー定義関数を作成したことがあります。「市区町村部分の抜き出しさえできれば、JIS コードを参照することができる」ということであれば、アップしてみます。

ただ、長文マクロですし、精度も保証できない、、、というお粗末なものですから、ご希望があれば、、ということにさせて下さい。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。
きちんとしたものを作るのはかなり複雑なようですね。。
何か簡単な方法があればと思ったのですが・・・
とりあえず、VBAの勉強をしてみようかと思います。
また、宜しくお願い致します。
ご回答、ありがとうございました。

お礼日時:2005/05/20 19:36

1.都道府県


47個しかないので、都道府県(漢字)と2桁コードのエクセルシートテーブルを自分で作るとしても簡単です。
都道府県漢字をエクセルの住所データより抜き出せば
(ただし要スキル)、VLOOKUP関数で都道府県コード化は可能です。これは済んだようですね。
問題は原住所データに都道府県漢字が入っていたり入ってなかったりするとお手上げです。
2.全国市区町村名
これは数が3千6百以上(合併で3000あまりに減少か)あって、自分で電子データを作るとするとまあ不可能の部類でしょう。
具体的な内容はJISコードブックが(規格協会で)市販されていますが、平成の市区町村大合併の最中で改訂版が現状に追いついていない恐れがあります。
電子化されたデータがフリーで公開されているかどうか知りませんが(私は見たことがない)、郵便番号データ(十数万件?)ならあるので、そこから市区町村漢字データを作ることは可能ですが(ただしプログラムをつくれることが必要)、市区町村コードは自分で入れないといけないので不可能の部類でしょう。
3.コード化
もし都道府県漢字+市区町村漢字+市区町村JISコードデータ(5桁)があれば、コード化できるか。
まず第1弾として、エクセルの関数などで市区町村のレベルまでの漢字が抜き出せるかということですが。
関数では難しいでしょう。FIND関数のような、「含む」を検知できるものは、(VLOOKUP関数のようには)対象を変えて実行してくれないので、町字番地部分が邪魔です。
この段階になると「表引き」プログラム(VBA)の作成技量かデータベースへインポートして、SQLを使える環境が必要でしょう。
「MSアクセス」やSQLを使えるデータベース言語の利用です。
その場合「含む」を検知する、LIKE*やINSTR関数などを使うことになるでしょう。
プログラム作成では3000千件、毎回総なめ判別すると、処理時間が相当かかると思われるので、市区町村のテーブル側のデータの「構造化」の技量が必要でしょう。構造化とは毎回(エクセルの毎行)比較判別する回数を劇的に減らす工夫・仕組みのことです。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ございません。
詳しく検討していただきありがとうございます。
エクセルは関数こそそこそこ使える程度の素人ですので、なかなか難しそうですが・・・
でも勉強してみまようと思います。
ご回答ありがとうございました!

お礼日時:2005/05/20 19:33

一応、Excelで試してみました。



今、公開されている新しいテキストファイルを、mdb 化して、VBAコードを書いてみましたが、結果としては、とても実用にはなりませんでした。

レコードセットを開いて検索しているのですが、約14Mbyte もある中から、Like 検索しJISコードは出ることは出ますが、1つの検索でも、数10秒、しばらく考えているようです。これでは、Excelからの実用化は、今の段階では、ちょっと無理みたいです。

少なくとも、mdbでは、うまくいかないような気がします。テキストファイルも、昔やったことがありますが、実用レベルではありませんでした。他にも似たような方法はありますが、おそらく、同じ発想の中からでは、成功しませんね。他の方法がたぶんあるはずですが、もう、Excelの範疇ではなくなります。

やはり、現状では、Access から開いてAccessのクエリから検索させるのとでは、雲泥の違いがあるようです。
一応、ご報告まで。
    • good
    • 0
この回答へのお礼

わざわざ試していただいてありがとうございました!!
お礼が遅くなり申し訳ございません。
なるほど、Accessを使って検索するんですか。。
Accessはほとんど使ったことがないので、勉強してみようと思います。
ありがとうざいました。

お礼日時:2005/05/17 11:12

No.1さんへ。


質問者さんが聞いているのは「郵便番号」ではなく「JIS市町村コード」の事ですが、ATOKは「JIS市町村コード」をサポートしていません。
※JIS市町村コード=2桁の県コード、3桁の地域コードで構成された5桁コード

質問者さんへ。
残念ながら簡単には行きません。
VBマクロでコードを書いて、一覧から検索する事になります。
しかも、入力された住所の書き方によって、かなりの例外処理を必要とします。
例えば「町」や「村」を省略して「○○町1234番地」と書かずに「○○1234番地」と書かれていたり「○○県○○郡○○町字△△3番」と書くべきを「○○県○○郡○○△△3番」と書いたり。

他にも、単純には行かない事例が山ほどあります。

JIS市町村コード一覧を住所でソートしてみると判りますが、検索の順番を間違うと嘘のコードになってしまう場合もあります。

経験から言えば、ExcelよりAccessで作った方が良さそうです。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。
やはり簡単にはできませんか・・・(>_<。)
Accessやマクロはほとんど使ったことがないので、
何か関数みたいなものがないかと思ったのですが・・・・
ご回答、ありがとうございました!

お礼日時:2005/05/17 11:04

住所から郵便番号への変換は


「ATOK」環境では出来るようです.ジャストシステムのFAQをご参照下さい。

「AMET」言う機能らしいです。 私は必要ないと思ったのでインストールしていませんけど。所謂逆引きですよね。

マイクロソフトの漢字変換は使っていないので分かりません。 少なからず「お▲●さん」なので(笑)

参考URL:http://faq.justsystem.co.jp/faq/1003/app/jsfaq.j …
    • good
    • 0
この回答へのお礼

早々のご回答ありあがとうございました。
ただ郵便番号ではなく「市区町村JISコード」という5桁のものがありまして、それを参照させたいのです。
データは一覧で取得しているので、市区町村部分まで抜き出しさえできれば可能かと思うのですが・・・
ATOKには便利な機能があるのですね!こちらIME使用です。。(^_^;)

お礼日時:2005/05/13 15:33

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q郵便番号(7桁)=>市区町村コード(6桁) 変換

郵便番号(7桁)から市区町村コード(6桁)に変換したいのですが、なにかよいデータベースは、ありませんか?
無料で利用できるところでお願いします。

Aベストアンサー

ここら当たりのデータを利用するか、
http://www13.plala.or.jp/bigdata/municipal_code_1.html

5桁から6桁に計算して変換すれば?
https://ja.wikipedia.org/wiki/%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%83%87%E3%82%A3%E3%82%B8%E3%83%83%E3%83%88

Q住所コード11桁の住所データベース

住所コード11桁の住所データベースを探しています。
有料のサービスはいくつかあったのですが、無料のものはないのでしょうか?

住所コード5桁のものは郵政省の住所データベースが使えそうではありますね。

そもそも11桁の6~11桁の採番は、全国共通ではないのでしょうか?
それぞれのサービスによって異なるのでしょうか?

Aベストアンサー

>そもそも11桁の6~11桁の採番は、全国共通ではないのでしょうか?

参考URLを見ると判りますが、国土地理協会が独自に採番しています。
データも国土地理協会が、有料にて配布しているので、”無料サービス”を
第三者が行うのは無理があり、存在しないのではないでしょうか。

参考URL:http://www.kokudo.or.jp/master/sub/sub01.html

Q【Excel】住所から市区町村名を抜き出す方法

いつもお世話になります。セル内に住所が入力してあり、その住所を元に地方公共団体コードをつけたいと思います。地方公共団体コードとは市区町村ごとに充てられた6桁の数字です。
A列に住所が入力してあります。(県名は入力してありません。)次にB列に以下のような式を入力しました。
=if(find("区",a1),left(a1,find("区",a1)),if(find("郡",a1),left(a1,find("郡",a1)),if(find("市",a1),left(a1,find("市",a1)),"")
A列に区が含まれていたら、左から区の部分までをぬきだし、偽なら郡を探し、真ならば左から郡のところを抜き出し、偽なら市を探し、真ならば左から市のところを抜き出し偽ならば何もしない。
すごく、分かりづらいかもしれませんが・・・。ごめんなさい。
うまくいかないのですが、良い方法はありませんでしょうか?

Aベストアンサー

#02です
>、"郡"の場合は抽出する文字列を郡ではなく"町"もしくは"村"で

=IF(ISERROR(FIND("郡",A1)),LEFT(A1,MAX(IF(ISERROR(FIND({"区","市"},A1)),0,FIND({"区","市"},A1)))),LEFT(A1,MAX(IF(ISERROR(FIND({"町","村"},A1)),0,FIND({"町","村"},A1)))))

完璧にはできませんが、IF文繰り返しより少しはマシでしょうか

Q住所から市町村名を取り出す

access2003 Win-XP

住所禄の住所の項目があります。その住所から市町村名を取り出す。

住所           市町村名
○○県XX市      XX市
○○県△△市    △△市
□□県**市    **市

こんな感じで、クエリでできるでしょうか?
取り出す市町村名は、特定の限定した町村で、それ以外は無しでいいです。

Aベストアンサー

途中から失礼します。

特定の5市町村なら、Switch関数でいいかと。
例えば、

> 住所           市町村名
> ○○県XX市      XX市
> ○○県△△市    △△市
> □□県**市    **市

で、それ以外は、その他なら、クエリのフィールドに下記の式を設定すればいいでしょう。

市町村名: Switch([住所]="○○県XX市","XX市",[住所]="○○県△△市","△△市",[住所]="□□県**市","**市",True,"その他")

市町村以降の住所(地番等)も入力されているなら、Like演算子を使って、

市町村名: Switch([住所] Like "○○県XX市*","XX市",・・・・)

市区町村がもっと多かったり、抽出対象の変更がたびたびあるなら、
下記のような変換テーブルを作成して、

住所変換
元住所    市町村名
-----------------------
○○県XX市 XX市
○○県△△市 △△市
□□県**市 **市
・・・・・  ・・・

クエリのフィールドに下記のように設定します。

市町村名: Nz(DLookup("市町村名","住所変換","'" & [住所] & "' Like [元住所] & '*'"),"その他")

途中から失礼します。

特定の5市町村なら、Switch関数でいいかと。
例えば、

> 住所           市町村名
> ○○県XX市      XX市
> ○○県△△市    △△市
> □□県**市    **市

で、それ以外は、その他なら、クエリのフィールドに下記の式を設定すればいいでしょう。

市町村名: Switch([住所]="○○県XX市","XX市",[住所]="○○県△△市","△△市",[住所]="□□県**市","**市",True,"その他")

市町村以降の住所(地番等)も入力されているなら、Like演算子を使って、

市町村名: Swi...続きを読む

Q複数の同じフォーマットのファイルを新しいブックで一つのシートにまとめる方法

仕事で、各部署から送られてきた、同じフォーマットのファイル(シート1にのみデータ有)が50個近くあります。
それを新しいブックで一つのシートにまとめなくてはいけません。
地道にコピペするのは時間がかかるのでマクロで処理を行いたいと思います。
マクロでの処理方法ご存知の方、処理方法の載っているサイトをご存知の方、もしくはマクロより簡単な方法がありましたら教えてください。

あと、逆に一つのシートをいくつかのファイルに振り分けていく方法もご存知でしたら教えて下さい。
よろしくお願いします。

Aベストアンサー

すみません。質問を勘違いしていました。
>新しいブックで一つのシートにまとめなくてはいけません
でしたね。
Sub Sample1()
Dim buf As String, i As Long
Dim j
buf = Dir(Sheets("Sheet1").Range("A1").Value & "\*.xls")
Do While buf <> ""
Workbooks.Open Worksheets("Sheet1").Range("A1").Value & "\" & buf
Sheets("Sheet1").Range("A1:J1000").Copy
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Workbooks(buf).Activate
Application.CutCopyMode = False
Workbooks(buf).Close SaveChanges:=False
buf = Dir()
Loop
End Sub
で試してみてください。使い方などは
http://oshiete1.goo.ne.jp/qa4225063.html
を参照してみてください。同じ質問があったので気がつきました。

すみません。質問を勘違いしていました。
>新しいブックで一つのシートにまとめなくてはいけません
でしたね。
Sub Sample1()
Dim buf As String, i As Long
Dim j
buf = Dir(Sheets("Sheet1").Range("A1").Value & "\*.xls")
Do While buf <> ""
Workbooks.Open Worksheets("Sheet1").Range("A1").Value & "\" & buf
Sheets("Sheet1").Range("A1:J1000").Copy
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Workbooks(buf).Activate
Application.CutCop...続きを読む

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

 何卒よろしくお願いいたします。

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む

Qエクセルで数字の頭に0を追加する方法はありますか?

エクセルのVLOOKUP関数を使って検索をしようと思いますが、
検索する番号が一つが6桁の番号で表示されており、もう片方が7桁の番号で表示されています。
つまり、6桁は頭に0が付いていなくて、7桁には頭に0が付いています。
【例】 6桁=123456、7桁=0987654

ですから同じ表示にしたいのですが、出来れば6桁の頭に0を付けたいのです。
【例】 6桁=123456 → 7桁=0123456

どうすれば、変換できるかよい方法がありましたら教えて下さい。よろしくお願いいたします。

なお、対象セルは3千個程あるので、とてもじゃないけど一個づつは出来ません。
また、当方素人なので出来れば判り易い方法でお願い致します。

Aベストアンサー

範囲選択をして右クリック
セルの書式設定
 ↓
表紙形式
 ↓
ユーザー定義
 ↓
種類のところに 0000000
と記入すれば頭に0が付きます。

QEXCEL VBAマクロ作成で、他のEXCELからデータを取り込みたい

メインプログラム(EXCEL VBA)より、
他のフォルダーにあるEXCELの項目の内容を取り込みたいです。
たとえば他のフォルダーのEXCELのRange("A2:A3").ValueをメインプログラムのRange("C2:C3").Valueにセットしたい時です。

・コマンドボタン押したら、どこのEXCELから取り込むかのポップアップ(?)は、表示はできてます。
・作業者が選んだパスとブックもMsgBoxで表示できてるので、もらう相手の場所も取得できてます。

・となると次はOPEN,INPUTですか?
テキストデータの取り込みですと、Inputでそのバッファを定義してるのですが、なんか違うような。。。

よろしくお願いします!

Aベストアンサー

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Cells(2, 2).Value ' 相手シートの B2 の値を自分自身の A1 に書き込む

readBook.Close False ' 相手ブックを閉じる
Set readSheet = Nothing
Set readBook = Nothing

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Ce...続きを読む

QExcelで都道府県を入力するとそのコードを表示させるようにするには?

Excelについて質問です。
例えばセルB1に都道府県を入力すると、A1に都道府県コード(1~47までの数字)を表示させたいと思っています。
別シートのA列に都道府県コード、B列に都道府県を作って47都道府県コードとその都道府県を作ってVLOOKUPで表示させようとしましたがうまくできませんでした。
次にif関数を使って「B1が北海道ならA1に1を表示」というように47都道府県をif関数を重複させて作っていきましたがif関数を8つぐらいまでしか重複させることができず失敗に終わりました。
何か良い方法はありますでしょうか?

Aベストアンサー

No.4です。頭の部分がありませんでした。以下の文を追加します。

B1都道府県を入力すると、A1に都道府県コードを表示させたいシート(以下「同じシート」と呼びます)の空いているセル・・・仮に"D1"セルとします・・・に"北海道01青森県02~鹿児島県46沖縄県47"の文字列を入れます。

この文字列の作り方は、次のようにすると簡単です。
別シートのA列に都道府県コード、B列に都道府県を作ってあるとのことなので、これを利用します。C列は未使用と仮定します。

先ず、都道府県コードが入っているA列の書式を"文字列"に変更して、A1に"01"を入れます。A1を選択状態にして、右下の「.」をダブルクリックすると、
セル"A1"~"A48"に"01"、"02"~"47"が入力されます。

次に、"C1"に「=B1&A1」、"C2"に「=C1&B2&A1」を入れ、・・・・・・と続きます。


それから、神奈川県、和歌山県、鹿児島県が4文字なので、このままではうまく表示できませんので次のように訂正します。

同じシートの都道府県コードを表示させたいセル"A1"に次の式を入れます。
=MID($D$1,FIND(B1,$D$1)+LEN(B1),2)

見苦しくなり、申し訳ありませんでした。

No.4です。頭の部分がありませんでした。以下の文を追加します。

B1都道府県を入力すると、A1に都道府県コードを表示させたいシート(以下「同じシート」と呼びます)の空いているセル・・・仮に"D1"セルとします・・・に"北海道01青森県02~鹿児島県46沖縄県47"の文字列を入れます。

この文字列の作り方は、次のようにすると簡単です。
別シートのA列に都道府県コード、B列に都道府県を作ってあるとのことなので、これを利用します。C列は未使用と仮定します。

先ず、都道府県コードが入っているA列の書...続きを読む

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

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

Aベストアンサー

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

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)
としてください。


人気Q&Aランキング