ExcelやGoogleSpreadSheetなどで、同じデータを探したいけど文字の形式とかが若干異なってるからうまく探せない!、という方のために対処方法を書いていこうと思います。
なお、今回は具体例として
・住所の丁目、番地の形式が数字と漢数字が混在している
・丁目の手前まではあってる
・vlookupで2つの表を照合したいのにうまく探せない!!
↓
■やりたいこと
・番地と丁目の数字は漢数字ではなく数値にしたい
という状況を例にして書いていきます。
結論:置換を駆使する
タイトルにも書きましたが、置換を駆使するのが一番簡単かと思います。
他にも検索したらExcelの式を使っている例などもありましたが、これは割と上級者向けです。
また住所をあわせる必要が定期的にあるわけではなく、今回だけできたらOKって人は置換を使ってしまった方が良いと思います。
なお、定常業務であれば下記の記事が参考になるのでそちらを使ってみると良いと思います。
実際に丁目、番地を変換する方法
Excel、GoogleSpreadsheetのどちらでも良いのですが、「編集 > 検索と置換」とか「検索 > 検索と置換」のような項目があると思うので、まずその画面を開きます。
開いたら、一丁目から順番に変換、、、していったら、「十一丁目」が「十1-」に変換されてしまうので、大きい数字から変換していきましょう。
「えー、そんなこと言っても何十丁目とか何回もやるの嫌だよー」
と言う人がいらっしゃると思いますが、そこは安心。
おそらくデータの中にそこまで大きな数字の丁目の住所はそこまで多く無いと思うので、大体20丁目から1丁目までを置換して、その後並び替えなどを使って数字の並びから外れたものは手で変更していけば良いです。
番地もやることはだいたい同じで、20ぐらいから順番にやっていけばだいたいのやつは置換できると思います。
そして残ったものは手作業でやってしまいましょう。
または、ちょっと数が多そうであればGoogleAppScriptを使って一気に変換をしてしまうのもいいかもしれません。
参考:[Google Apps Script]スプレッドシートで検索と置換を行う
ただこれも少しプログラミングをかじっていないとわからないと思うので、住所の変換に30分ぐらい使っても何の問題も無いよって人はバチバチ置換してしまいましょう。
追記(2019/12/01)
一応書いてみました。これをSpreadsheetのツール>スクリプトエディタに貼り付けて上げれば使えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
// Google App Script // 漢数字のを数次型の表記に一括変換 function change() { // 一発で終了したい場合には、Excelのオートフィルとかを駆使してこのitemsをいっぱい用意すれば行ける。 // もしくはこのitemsもスクリプトで生成をする。 var items = { "二十":"20", "十九":"19", "十八":"18", "十七":"17", "十六":"16", "十五":"15", "十四":"14", "十三":"13", "十二":"12", "十一":"11", "十":"10", "九":"9", "八":"8", "七":"7", "六":"6", "五":"5", "四":"4", "三":"3", "二":"2", "一":"1", }; var sheet = SpreadsheetApp.getActiveSheet(); Object.keys(items).forEach(function(key){ // 丁目の変換 var finder = targetSheet.createTextFinder(key+"丁目"); finder.replaceAllWith(items[key]+"-"); // 番の変換 var finder = targetSheet.createTextFinder(key+"番"); finder.replaceAllWith(items[key]); // 数字だけでも変換 // var finder = targetSheet.createTextFinder(key); // finder.replaceAllWith(items[key]); }) } |
まとめ
「住所を合わせる方法を置換でやるなんて思いついてたけど、それがめんどくさいから調べてきたんや!!」って言う方、力技を使ってしまってごめんなさい笑
ただ、今回はたまたま住所の文字列をあわせたいという問題でしたが、名前だったら?商品番号だったら?など他の場合にも使える、ちょっと時間がかかるけれど絶対に解決できる方法というのはとても大切だと思ったため今回置換で行いました。
私自身も式やGoogleAppScript、VBAで変換を書けないわけでは無いのですが、大したデータ量出なかった場合には置換を使って力技でやってしまうと思います。
なにげに一番応用が効きますし、周りの人に相談された時の説明も楽ですからね!!
今日はここまで読んでくださってありがとうございました^^
コメント