[[20090327153308]] 『文字列の最後が5桁の半角数字かを判定したい』(なん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字列の最後が5桁の半角数字かを判定したい』(なん)

 ある有名ショッピングモールでウェブショップを構えていますが、
顧客データをCSVでダウンロードすると、
県・市区町・番地が分かれているため、

 「3-1-5」 のような数字の住所が、
日付データとして
「37626」のような5桁の数字に変換されてしまいます。

 現在データ収容の関係上、この分かれた住所データを
関数とマクロで1つの文字列にまとめているのですが、
その住所から末尾が5桁に変換されてしまったものを目視で探し出し、
手作業で元に戻す作業をしています。

 これではどうしても見逃してしまうことがありますので、
どうにかいい方法がないものかと考えています。

 文字列の最後が5桁の半角数字かどうかを判定して、
「注意」などのアラートを出せれば、
見逃すことはなくなると思うのですが、
色々調べてみても、どうすれば良いのか計りかねています。

 また、欲を言えば、判定した上で
元の数字に変換できないものかと考えていますが、
私にはすこしハードルが高すぎるかもしれません。

 もし、何かいい方法をご存知の方がいらっしゃいましたら
どうかお教えください。

ヒントや参考になるURL等でもありがたいです。

ずうずうしいですが、よろしくお願いいたします。


 こんにちは。かみちゃん です。

 > ヒントや参考になるURL等でもありがたいです。 

 以下は参考になりますでしょうか?
[[20090321231136]]『テキストの頭4文字が半角数字であるか?』(shut) 

 (かみちゃん)
 2009-03-27 16:05

 元々データを読むときに文字列で読み込めばいいと思います。

 CSVファイルをいきなりダブルクリックなどで開かず、
 まずExcelを開いてから、外部データの取りこみをすれば、
 該当の列を文字列で取り込む指定ができます。

 ご参考になれば幸いです。
 (sato)


 こんにちは。かみちゃん です。

 > 文字列の最後が5桁の半角数字かどうかを判定

 さきほどの過去ログを元に、VBAでするならば、以下のような感じです。

 Sub Sample()
   Dim ss As String

   ss = "住所37626"
   MsgBox ss Like "*#####" 'True

   ss = "住所0123"
   MsgBox ss Like "*#####" 'False
 End Sub

 ただ、satoさんもおっしゃっているとおり、
 > 元々データを読むときに文字列で読み込めばいいと思います。
 は、賛成です。

 CSVファイルをダブルクリックして、開くのは、便利ですが、余計な自動変換をしてくれるので、厄介ですね。

 (かみちゃん)
 2009-03-27 16:20


かみちゃんさん、satoさん、ありがとうございます。

最初に教えていただいたURLから

=RIGHT(A1,5)=RIGHTB(A1,5) で、判定することができました。

 せっかくVBAも教えていただきましたが、
あいにくそこまでのスキルがないため確認できませんでした。

 ただ、お二方のおっしゃるとおり、
文字列で読み込むに越したことはありませんので、
そちらの方向でやってみたいと思います。
どうもありがとうございました。


 お遊びで
 =IF(LEN(LOOKUP(10^10,RIGHT(A1,ROW(4:8))*1))=5,TEXT(RIGHT(A1,5),"y-m-d"))

 IF(LEN(LOOKUP(10^10,RIGHT(A1,ROW(4:8))*1))=5,TEXT(RIGHT(A1,5),"y")*1&TEXT(RIGHT(A1,5),"-m-d"))

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.