- ベストアンサー
エクセルでの住所表示について
たとえば、A1に東京都港区六本木6-10-1、A2に東京都港区赤坂3とデータが入っています。これをすべてハイフン以降を抜いた丁目までの 表示にしたいと思っています。(「丁目」の表示はいりません) 今は「=MID(A1,1,(SEARCH("-",A1)-1))」という関数を使っていますが、大量のデータにまとめて関数をかけるので、ハイフンのないA2はエラー表示になってしまいます。 そこで、ハイフンのあるものは上の関数の計算をして、ハイフンのない データは元のデータを返すようにしたいのですが、どうしたらいいでしょうか?
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
NO1です。 >でもこれだと、A1=東京都港区六本木6101になってしまいます。 ⇒恐縮です。(ハイフンの全角、半角対応) =IF(ISERROR(FIND("-",ASC(A1))),A1,LEFT(ASC(A1),FIND("-",ASC(A1))-1))
その他の回答 (8)
失礼:ハイフォンの手前まででしたか・・・。 [イミディエイト] ? CutStr("東京都港区赤坂3", "-", 1) 東京都港区赤坂3 ? CutStr("東京都港区六本木6-10-1", "-", 1) 東京都港区六本木6 Public Function CutStr(ByVal Text As String, _ ByVal Separator As String, _ ByVal N As Integer) As String Dim strDatas() As String strDatas = Split("" & Separator & Text, Separator, , 0) CutStr = strDatas(N * Abs((N <= UBound(strDatas)))) End Function と、そのような場合は、このようにハイフォンを加えてエラーを回避。 で、 =LEFT(A1,SEARCH("-",A1&"-")-1) No6さんの手法を私も採用。
お礼
ありがとうございました。 No8さんを使わせていただきますが、 教えていただいて有難うございました。
- sige1701
- ベストアンサー率28% (74/260)
訂正します >SEARCH関数の検査値に「-」があればいいので SEARCH関数の対象文字に「-」があればいいので
- sige1701
- ベストアンサー率28% (74/260)
エラー処理としては =IF(COUNTIF(A1,"*-*")<>0,LEFT(A1,SEARCH("-",A1)-1),A1) とか =IF(ISERROR(SEARCH("-",A1)),A1,LEFT(A1,SEARCH("-",A1)-1)) で良いと思いますが 今回の場合「-」がないためエラーとなるので SEARCH関数の検査値に「-」があればいいので =LEFT(A1,SEARCH("-",A1&"-")-1)
補足:番地が半角だと仮定して・・・。 この仮定が常に成り立つ工夫は可能だと思います。 東京都港区六本木116-10-1 もあるでしょうからハイフォンの位置では・・・。 それなら、むしろ数字の開始位置を・・・。 LEN方式以外ですと・・・。
- ore-summer
- ベストアンサー率29% (133/454)
=IF(COUNTIF(A1,"*-*")<>0,(MID(A1,1,(SEARCH("-",A1)-1))),A1) はいかかがでしょう。 ただしハイフンの半角、全角が一致していないとだめですが。
番地が半角だと仮定して・・・。 東京都港区赤坂3 ----+----!----+ <--- 15バイト -------- <--- 8文字 ですから7文字を抽出すればいいですね。 =MID(A1, 1,LENB(A1)-LEN(A1)) で、可能だとおもいます。 Q、データは元のデータを返すようにしたいのですが、どうしたらいいでしょうか? A、割愛。
- n-jun
- ベストアンサー率33% (959/2873)
IF文で切り分け。 =IF(ISERROR(SEARCH("-",A1)),A1,MID(A1,1,(SEARCH("-",A1)-1))) とか?
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。(ハイフンの全角、半角に対応) =SUBSTITUTE(SUBSTITUTE(A1,"-",""),"-","")
補足
有難うございます。 でもこれだと、A1=東京都港区六本木6101になってしまいます。 A1=東京都港区六本木6、A2=東京都港区赤坂3という表示を 1つの関数で出来ないかと思ってるんですが…
お礼
できました~! 使わせていただきます。 再度対応していただいてありがとうございました。