アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問なんですが。
数百とデータが入力された住所録の中で下記の様に住所が入力されているセル列があるんですけど、

○○市○○町1-2-3
○○区○○町4-5-6

と丁目・番地・号が半角全角数字が各データ毎にバラバラに入力されている住所データ列のセル内の数字を全て半角に統一したいのですが、やはり各セルを修正していくしかないんでしょうか?
他に方法がありましたら教えてください><

よろしくお願いします。
Excel2003を使用しております。

A 回答 (4件)

カタカナも半角になっていいなら ASC関数を使えば一括処理できます。


それが嫌な場合は 作業列を2つ使って

A1セルにデータがあるとして

■B1セル
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
A1,"1",1),"2",2),"3",3),"4",4),"5",5)

■C1セル
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
B1,"6",6),"7",7),"8",8),"9",9),"0",0)

とします。
    • good
    • 0

では、関数やマクロを使わない方法を回答してみます。



 [編集] → [置換]
で全角の数字を半角に置き換えましょう。

数字ですので 0 から 9 まで10回繰り返す必要がありますが、シートに不要な関数やマクロを残さずに済みます。
    • good
    • 0

列数が少ない(住所列だけとか。

関数を入れるので数十列は困る)
英数カナ文字を全角に変換する(全角に統一してよいとして)、
でJIS関数があります。
この方法が出てないようですが、どうですか
=JIS(B1)
東1-2-3東1-2-3
ヒガシ2-3ヒガシ2-3
マンションA-2マンションA-2
    • good
    • 0

別解です。


VBAで、アクティブシートの使用しているセルを全て処理対象にしています。replaceToNarrowを実行してください。
出典は分からなくなってしまいました。原作者さんご容赦下さい。
2000用のコードですが、2003でも動くかも。
なお、数字だけでなく、全角のハイフン、()も半角に変換するコードです。
おまけは全角のーも半角ハイフンに直します。必要なら’を外して下さい。
Sub replaceToNarrow()
Dim rng As Range
Application.ScreenUpdating = False
For Each rng In ActiveSheet.UsedRange
With rng
.Value = cnv_narrow(.Value)
'おまけ ー も半角-に直したい時
'.Value = cnv_hyphen(.Value)
End With
Next
Application.ScreenUpdating = True
End Sub

Private Function cnv_narrow(target As String)
Dim regEx, Match, Matches

Set regEx = CreateObject("VBScript.RegExp")
regEx.Pattern = "([0-9-\(\)])+"
regEx.IgnoreCase = True
regEx.Global = True
Set Matches = regEx.Execute(target)
cnv_narrow = target
If Matches.Count > 0 Then
For Each Match In Matches
regEx.Pattern = Match.Value
regEx.IgnoreCase = False
cnv_narrow = regEx.Replace(cnv_narrow, StrConv(Match.Value, vbNarrow))
Next
End If
Set regEx = Nothing
End Function
'おまけ
Private Function cnv_hyphen(target As String)
Dim regEx, Match, Matches

Set regEx = CreateObject("VBScript.RegExp")
regEx.Pattern = "ー"
regEx.IgnoreCase = True
regEx.Global = True
Set Matches = regEx.Execute(target)
cnv_hyphen = target
If Matches.Count > 0 Then
For Each Match In Matches
regEx.Pattern = Match.Value
regEx.IgnoreCase = False
cnv_hyphen = regEx.Replace(cnv_hyphen, "-")
Next
End If
Set regEx = Nothing
End Function
    • good
    • 0

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