• ベストアンサー

Excelのセルデータを日付に変わらないようにする

Excelで、日本語の住所データを英語に変換しようとしています。 ASC関数などで数字を半角にするところまではしたのですが、 その後、セルの書式で「文字列」にしているにも関わらず 「丁目」「番地」などを置換すると「1-1-1」という感じのデータは、 強制的にに日付データになってしまいます。 対応方法などご存知の方いらっしゃいましたらご教示いただけましたら幸いです。 VBAで対処する方法でも大丈夫です。

  • kt12
  • お礼率64% (48/75)

質問者が選んだベストアンサー

  • ベストアンサー
  • intin
  • ベストアンサー率33% (8/24)
回答No.6

置換をした結果、 日付っぽい見た目になったデータが、勝手に日付に変わってしまうのは、 エクセルの仕様です。 ですから、 置換を使う限りはどうしようもありません。 VBAを使わない前提であれば、 下記のような感じで、 =substitute(substitute(A1,”丁目”,”-”),”番地”,”-”) 関数を使うといいですよ。 VBAを使っても、もちろんできると思います。

参考URL:
http://www.excelspeedup.com/jyuusyowochikan/
kt12
質問者

お礼

ご回答いただきましてありがとうございます。 仕様なのですね。 substitute関数についてもありがとうございます。 試してみたところ、おっしゃるとおり日付に置き換わることはありませんでした。 昼間こちらを見ることができなかったので試しに下記のようなコードをVBAで書いて対応しました。 Dim i As Long, str As String str = "番地" For i = 530 To 1743 If InStr(Cells(i, "W"), str) > 0 Then Cells(i, "W") = Replace(Cells(i, "W"), str, "-") End If Next i

その他の回答 (6)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.7

>「丁目」「番地」などを置換すると「1-1-1」という感じのデータは、強制的にに日付データになってしまいます。  それは、文字列の置き換えをするのに置換を使っているからです。  関数を使って置き換えればその様な事は起きません。 =ASC(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"丁目","-"),"番地","-"),"号",))

kt12
質問者

お礼

ご回答ありがとうございます。 置換を使っているからだったのですね。 この関数の組み合わせだと大分一気に解決しますね。

  • hayasi456
  • ベストアンサー率40% (2402/5878)
回答No.5

ご使用のexcelは? ASC関数の設定が原因? シート全体をセルの書式で「文字列」にし 郵便番号、電話番号、Eメールアドレスの列はデータの入力規則 日本語で「オフ(英語モード)」にしています。 https://121ware.com/spsearch/public/app/servlet/qadoc?QID=016607 http://kokoro.kir.jp/excel/nkisoku_ime.html 住所、氏名などの列は「ひらがな」にしています。 都道府県市町村等と同じセルに「丁目」「番地」も入力すれば確実でしょう。 数字を半角にしたいならばデータの入力規則 日本語で 「半角カタカナ」を選択 ご存じかもしえませんが 郵便番号を入力し変換すると町名まで表示できます。 http://soft1.jp/trouble/w/w067.html http://www.sakyou.com/ManualShop/Windows/08_EnterMode/10_Post-dictionary/17_Win7PRO/index.html

kt12
質問者

お礼

ご回答ありがとうございます。 郵便番号については、下記からCSVデータを用いて英語表記に変換していたのですが、問題はその後の「1丁目1番地1号」などの変換についてでした。 http://www.post.japanpost.jp/zipcode/download.html

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

Excelのバージョンは? 住所データの番地のみのセルが有るのでしょうか? >ASC関数などで数字を半角にするところまではしたのですが、・・・・「1-1-1」という感じのデータは、 強制的にに日付データになってしまいます。 元のデータが全角の文字列として1-1-1となっているものをASC関数で半角の文字列の1-1-1に変換できます。 =ASC("1-1-1") → 1-1-1 Excel 2013で検証した結果では"1-1-1"の代わりにセル番地を指定しても強制的に日付データになりませんでした。 尚、Excel 2002でも検証しましたがASC関数で全角文字を半角文字に変換しても強制的に日付データにはなりませんでした。 あなたのExcelに不具合が生じているかも知れません。

kt12
質問者

お礼

いろいろと検証していただきましてありがとうございます。 Excelは、Windows版の2010です。 他の方の回答の通り、置換の場合には日付になってしまうようです。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.3

》 「1-1-1」という感じのデータは、強制的にに日付データに… 貴方の当面のお悩みは感じられますが、それと「英語に変換」との関係は?

kt12
質問者

補足

dogs_catsさんのお礼に記載したとおりでございます。

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.2

文字列で対応出来るはずですが、下記でも可能かと思います。 数式に&""をつけ加えると文字列になります。 一例は Aに住所 Bに番地まで Cに番地 C2式 =ASC(SUBSTITUTE(A2,B2,""))&"" B2式(不要な式ですが、念のため) =LEFT(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A2)&1234567890))-1)

kt12
質問者

お礼

ご回答ありがとうございます。 「東京都千代田区千代田1丁目1番地1号」的なデータを分割、アルファベット表記にする必要があり、「1丁目1番地1号」の部分を「1-1-1」にする際に上記の問題が発生しておりました。 今回は、VBAにてReplace関数にて解決しましたが、 substitute関数も試した結果日付と認識されることはありませんでした。

  • kia1and2
  • ベストアンサー率20% (482/2321)
回答No.1

数字の前に ’ 記号をいれて入力すると、1-1-1って表示されます。 

kt12
質問者

お礼

ご回答ありがとうございます。 これは存じておりすが、1000件以上あるので、置換等で対応したかったのですよね。

関連するQ&A

  • エクセルで、半角に置換すると日付に

    使用機種はxp、エクセル2003で作業をしています。 住所録の番地部分のみのセルなのですが、 「1ー2ー1」←このように、全角「長音」でつないである部分を「半角ハイフン」にしたいため、検索&置換しています。 セルの書式設定は「文字列」になっているのに、どうしても年月日に変換されてしまうセルがでてきてしまいます。 どうしたら文字列のままで置換できるでしょうか。 よろしくお願いいたします。

  • エクセル 半角変換

    関数で半角に変換するのはどうしたらいいんでしょうか? ASC関数を用いるというのはわかるのですが・・・。 表があってその中に半角と全角が混在している場合に、または 統一性をもたせたい場合においてチェック機能としての役割で 利用したいのですが。 ASC関数ではASC(セル)ですよね。 例えばA1セルに『100』という全角数字があるとすれば B1セルにASC(A1)とすればB1に『100』という半角数字がでますよね。 そうではなくてワードの置換機能のような使い方はどうやるのでしょうか? わかりにくい質問ですみません。

  • Excel VBA を使って 日付の表示

    お世話になります。VBAを使ってSQLDBからデーターの読込みを行っているのですが、読込まれたセルが日付やカンマ編集する方法が判りません。 どなたかHELPをお願い致します。  例) Sheet1 の A列 が日付          B列が 数字 宜しくお願いします。

  • 日付半角にする

    宜しくお願いしました。エクセルで日付の列を半角にしたいのですがASCで試したら5桁の数字になってしまいました。どのようにすればいいのでしょうか?宜しくお願いします。

  • Excelで日付の書式を指定文字列に変換

    Excelで日付の書式を指定文字列に変換 セルから日付情報を得て、文字列でyyyymmddに変換するには、どのようにすればいいでしょうか。VBA・関数のどちらでもかまいません。よろしくお願いします。

  • エクセルでセルに 2010/1/2 とあります。書式は日付です。これを

    エクセルでセルに 2010/1/2 とあります。書式は日付です。これを20100102と8桁の文字列に置き換えたいのですがどうしたらよいでしょう。「/」を置換で削除して文字列に変えると 201012としかなりません。お願いします。

  • エクセルのセルの書式設定について

    エクセルで住所録を作成するときのことについて。住所1、住所2というように列を分けます。住所2に丁目や番地を入力します。半角英数で入力しますが、大体日付に変わってしまいます。セルの書式設定で、表示形式を文字列にします。それで、希望通りの文字が入力できます。ところが、そのセルの左上隅に、なにか▼のような記号?がでるので、とても気になります。あれは何ですか?

  • 【エクセルの質問】日付の書式を設定したい

    日付が20070124というように連続した8桁の数字で入力されています。 セルの書式設定から表示形式を確認すると文字列で設定されています。 文字列で設定されていても2007/01/24というように年月日を区切るのに/が使われていれば日付として認識されますが連続して数字が羅列されている場合、どのように日付として変換したらいいのでしょうか?データ量が多いのでできれば関数などで一度に設定できれば助かるんですが。 ご存知の方がいたらご教授をお願いいたします。

  • Excelで番地を入れると日付に変わってしまう。

    Excelで番地を「3-11-9」と入れると「2003/11/09」という日付に変わってしまいます。 何度セルの書式設定をしなおしても、「3-11-9」を入れると「2003/11/09」となりセルの書式まで変わってしまいます。何が原因なのかわかりません。 これは住所を入力しているのですが、他の番地「255-5」などは変わりません。

  • Excelにおける日付

    仕事用に他部署からデータをExcelでいただいたのですが、1万件近くのデータが入っており、このデータの日付が全て7桁の数値として入力されているため、活用できず困っています。 Excelに詳しい方のお知恵を拝借したく、質問に参りました。 行いたい処理は、Excelのあるセルに「20050301」という7桁の数字が入力されている場合、これを別の1つのセル内に「2005年3月1日」という日付として認識させたいのです。 そういったことはできるのでしょうか? セルの書式で、表示形式をユーザー定義・####年##月##日とすれば、「2005年03月01日」と表示させることは簡単にできますが、そうではなく、7桁の数字を日付として認識させ、日付関数を使って日数の計算をしたいのです。 A1セルに「20040301」、B1セルに「20050301」と入力されているとしたら、これをそれぞれ「2004年3月1日」、「2005年3月1日」と認識させ、その間の日数が365日という結果を算出するのが目的です。 ダイレクトにできなければ、途中にいくつかの列を経由しても構いません。 よろしくお願いします。

専門家に質問してみよう