- 締切済み
エクセルのセル内の数値(文字列)の正しい表示方法は?
長いですが、最初から説明させてください。DM発送用の宛名ラベルを印刷する為、アクセス2000で作った顧客管理のデータをテキストファイルにし、エクセル2000から開きました。エクセルから開くときに、テキストファイルウィザードが出ます。その該当部分にチェックを入れてOKを押すと、拡張子がテキストですがエクセルに入力したような画面になります。その中で、郵便番号と住所のセル列についてですが、頭が0で始まる郵便番号の0が全部消えて、ハイフンも出ません。(ウィザードで表示されているときにはきちんと頭がゼロのものも表示されていました)また、丁目や番地の部分が、全然関係のない何桁もある数値の表示に変わってしまいました。アクセスに入力したときにはフォームに入力でしたので郵便番号のハイフンは不要でした。また丁目や番地も半角数字でハイフンで繋いでいました。今までは外注に出していましたが、今後は自社でラベルを印刷してDMを作る必要がでてきました。今変わってしまった部分を作成しなおそうとしています。でも、何千件もあるものを直すのは気が遠くなるのですが、何とか頭のゼロが消えているものやハイフンを一発挿入する技はありませんか。また、ハイフンの抜けた番地の、桁数が多い数字になってしまったところは改善できませんか。丁目や番地もどうやら全角で入れているものについては変化していないようです。半角で入力したものが全く関係のない桁数の多い数字で表示されています。うまく説明ができずにもどかしいです。どなたか詳しい方、ご指導願えたらとても助かります。よろしくおねがいいたします。質問するにあたり、こちらの情報が不備な点はご指摘いただければ答えられるものはお答えします。
- みんなの回答 (11)
- 専門家の回答
みんなの回答
- nikuq_goo
- ベストアンサー率46% (335/715)
7桁の文字列を入力とするなら =CONCATENATE(LEFTB(セル,3),"-",RIGHTB(セル,4)) とすればセルの左から3文字+”-”+セルの右から4文字 とすることが出来ます。 3~7桁の数値を入力とするなら セルの書式設定でユーザ任意とし 000-0000と定義すれば郵便番号に見えます。 (###-####だとゼロサプレス(先頭の0を見せない)してしまいます) 前者はデータを加工してしまいます。しかし文字列なのでコピー等が楽です。 後者は数値をそのまま使えるのでexcelとして見たり印刷したりするだけなら問題ありません。 また文字列関数には沢山の種類がありますので前述の方法以外にもあります。 セルに=を打ち込むと左上に式の一覧を出せるプルダウンメニューが出ます。そこでその他の関数から文字列と選んで見てください。簡単な説明が出てますので案外使えるものです^^
- nikuq_goo
- ベストアンサー率46% (335/715)
1~7桁全部試しましたが 1~3桁はそのまま表示 4は044-44 5は555-55 6は066-6666 7は777-7777 8(?)は8888-8888 になりました。多分環境は同じでしょう。 郵便番号としてはそれで正しいのかもしれません。 どうしてもの応用技としては ###-#### でなく 000-0000 にすればよいことに気づきました。どちらかにするか文字列として取り込み、文字列関数を利用して3桁-四桁にすることも出来ます。 文字列関数の使い方が必要でしたら、また補足ください。
お礼
ご丁寧に何度もありがとうございます。これから退社ですが、もういちどトライしてみました。お聞きするばかりでマル投げもちょっとと思うので、会社にあるエクセルの参考書を見てみました。文字列関数というのは使ったことがなく、いくつかありましたがTEXT関数が使えるのかと思いやってみました。あらたに空欄の列をつくり、そこに作成した値を入力できるようにして、TEXT(郵便番号のセル番地,"###-####)や、#を*に変えたりゼロにしたりしてみたのですが、どれもうまくいきません。text関数ではなかったのでしょうか。ほんとにご講義に感謝します。申し訳ありませんが、もう少しおつきあいください。
- nikuq_goo
- ベストアンサー率46% (335/715)
試してみました。 郵便番号を数値でテキストウイザード通してください。 文字列にするのは住所だけ^^ これで見た目5~7桁とかになりますが書式設定すれば3桁-4桁になります。
お礼
おそくなりすみません。ただ今試してみました。すぐに試したかったのですが別の仕事が入ってしまって。。 わくわくしながらやってみたのですが、たしかにテキストウィザードのときに郵便番号の列をG/標準にし、丁目番地を文字列にして通すと住所の列はOKですし、郵便番号のところは「見た目」が5~7桁になりました。よし!と思って書式設定をしたら、確かにハイフンはついてきました!が!頭の0が入っていません。でも試されてそちらでは出来ているということは、どこか私の設定が抜けている?のでしょうか。。ずいぶんと引きずってしまってほんとにすみません。(私はかなり勉強させていただいています)
- nikuq_goo
- ベストアンサー率46% (335/715)
no6の回答にも書いたものを手順化します。 >”その他-郵便番号”を表示形式として選択して下さい。 (1)前述の対策で郵便番号のセルが0123456と表示されるえぅせる状態となる。 (2)郵便番号の列をクリック。列を反転させる。 (3)右クリック-セルの書式設定 (4)セルの書式設定-表示形式 (5)分類-その他 (6)その他-郵便番号 これで郵便番号形式の表示になります。 頭の0も出ることを確認して下さい
お礼
NO7のご回答に対する返事にも最後のほうに書いたのですが、ご指導くださった方法にて試しましたが、ハイフンはでませんでした。ただ、ウイザードのときに郵便番号の列を選択し、「文字列」形式にしたので頭のゼロはちゃんと付いてどれも7桁表示になっていました。その状態で書式設定をしましたが、だめでした。先日ご指導くださったやり方「***-****」を含め全て試してみましたがまったく変わりませんでした。きっとどこかが違うのでしょうね。もうこうなったらお手上げ状態でしょうか。ほんとに長いことありがとうございました!とても勉強になりました!
- nikuq_goo
- ベストアンサー率46% (335/715)
ようやく間違いにたどり着けたみたいです。 ^^ accessのファイルの出力の仕方、excelの入力の仕方に問題はありません。 3/3ページをヨーク見てください。 右上のラジオボタンの更に右?に例のように列が出ているはずです。クリックしてみましょう・・・ 回答は出ましたか?^^
お礼
(=^o^=)♪ おはようございます。さっそく出社しPCを起動させてやってみました!!そうだったのか!!ここが自由に指定できるのですね!!!だから郵便番号のところと、丁目番地のところを文字列に設定してみました。そうしたら、全く関係のない、計算されてしまった数値ではなくハイフンでつながれた丁目番地になっていました!!! ありがとうございました!あとは郵便番号のハイフンだけです。。(苦笑)どうしても表示形式を変えてもハイフンだけは付きません。何度もすみません。もし解決できなければ仕方がないので手打ちで入れます。。(笑)長すぎたのでこのあとお返事をいただいたら、締め切ります。ありがとうございました!!!
- nikuq_goo
- ベストアンサー率46% (335/715)
#2です。 >1 ウイザードで「文字列指定」をする。← しました。 csv形式のデータをexcelで開く際の注意は”拡張子.csvだとウイザードが実行されない”です。拡張子を.txtのcsv形式(カンマ区切り)のファイルを入力としてウィザードを起動し3/3ページで各列毎に文字列であることを明示してください。 3/3ページで指定するのは各列毎ですよ!^^ >再変換とは、1にて作成したファイル(エクセルを起動させてさきほどのウイザードで作ったテキストを開く) すみません。アクセスの出力ファイルをexcelで文字列形式で開くということを想定して書きました。 アクセスの出力ファイルをexcelで開く際に変換ウイザードが起動するようにしてください。 >表示形式を***-****にしてOKをしてみましたが、セルにはそのまま「***-****」と表示されてしまいます。 更にすみません。 "ユーザ定義-###-####"を想定したのですがこれだと頭の0が出ませんね、”その他-郵便番号”を表示形式として選択して下さい
お礼
何度もありがとうございます。ただいま自宅に帰ってまいりました。明日また会社にて試してみようと思うのですが、いまひとつわからないのが、「3/3ページで各列毎に文字列であることを明示してください。」の部分です。ウィザードの最後のページ(つまり3/3ですね?)の右上にでている設定だと思うのですが、一番上が確か「標準」、そのほかに日付とか文字列とかその他とか有ったと思います。その「文字列」のラジオボタンをクリックするだけでは駄目、ということですよね?各列ごとに設定、とはどのようにするのでしょうか。会社内でもアクセス自体を使える人は居なく(それなのに退職者が残していったアクセスのファイルを誰もが検索や宛名出しに使用しています)ここでファイルに万が一のことがあれば困ると思い、質問したのですが、私にはかなり難しいですがとても勉強になります。ありがとうございます。もうひとつ、「アクセスの出力ファイルをexcelで文字列形式で開く」というのはどのようにするのでしょうか。私のやり方ではないのでしょうか。(私はアクセスのメインメニュー画面からデータ掃出をさせてデスクトップに格納したテキストファイルをエクセルから開いています)
- nonpq
- ベストアンサー率30% (64/210)
>>アクセスの「顧客管理」メインメニューの中にある「データメンテ」をクリックし、「検索」をクリックして「顧客データ掃出」すると、テキストファイルができますよね これは前任者の方が独自に作成されたメニュー機能で、アクセス固有の操作ではありません。 エクセルに出力したほうが操作がお得意なようなので、ここはやはりエクセルにデータを落とす前提で話したほうがいいのかと思います。その場合、エクセルのファイルはなくてかまいません。 まず、アクセスの画面上でデータベースウィンドウは見えていますか?それが確認できない場合、操作上かなりの制約を設定されていると思われます。データベースウィンドウやアクセス固有のメニューバーが見えない場合にはまたアクセス上でいろいろな設定やマクロをいじる必要が出そうです。その場合にはエクセル上でデータを変換する方法に切り替えたほうがいいか再度検討する必要がありそうですね。 とりあえず、どんな画面構成かもう一度教えていただけると幸いです。
お礼
何度もご丁寧にありがとうございます。アクセスは会社で使用していて、ただいま自宅にもどりましたので、明日また会社で確認してからお答えさせていただきます。アクセスの画面上でデータベースウインドウが見えているかどうか、というのはどういうことなのだろう。。。??と考えています。書くのはものすごく説明が大変なのですが、会社内のあるPCに退職者が構築したデータベースが入っていて、それを私のPCを始め何人かのPCにコピーしました。ところが、元の元までまったく同じくコピーされなかったせいかどうか知りませんが(それ以前に完全コピーができるのかどうかもわかりません)顧客リストを追加する場合、マスタPCではちゃんとその分だけ増えているのに、私のPCで開いてみるとさきほど入れたはずの新規登録リストがきちんと登録されていないのです。ということは、表面で見えるところは新規追加されたように見えるけれども深いところではきちんと設定されていない、ということでしょうか。なぜ私が今こんなことをしてるかというと、そのマスタPCがイカれてしまってデータベースが壊れてしまったのです。そこで、ある社員が私のPCに入力されてあるコピーデータベースをUSBメモリにコピーして、マスタPCに貼り付けたのです。しかし元のとおりにはなりませんでした。とても奥が深いので私では心細いのですが、他の社員ではもっと心細い(爆)ので私がひそかにチャレンジしようかと思った次第です。。
- nonpq
- ベストアンサー率30% (64/210)
テキスト変換せず、アクセスのメニューからエクスポートで直接エクセルファイルに落としてみてはいかがですか? テキスト変換した郵便番号はエクセル上ではただの数字の羅列と取られるようなので、頭0は当然消えてしまうし、場合によってはハイフンはマイナスとして減算されてしまうのかも。 住所の丁目・地番について、数字部分のみが独立したフィールドでアクセスのテーブルに設定されていると、やはり数字になってしまうので、まず、アクセスのクエリで○○町などのフィールドとXX-XX-XXのフィールドを繋げて置くほうが無難だと思います。 説明が下手でごめんなさい。 実際操作しながら都度質問いただけたら協力したいと思いますが。
お礼
ありがとうございます。私の説明が悪い(よくわかっていない為だと思います)のですが、アクセスの「顧客管理」メインメニューの中にある「データメンテ」をクリックし、「検索」をクリックして「顧客データ掃出」すると、テキストファイルができますよね。それをエクセルから開いて使用していました。毎月DMをほしいお客様、いらなくなったお客様がいるのでその都度データの更新をしていまして、今回は何部DM印刷を外注にだすのかを毎月エクセルから開いて調べています。そのやり方ではなく、アクセスメニューからそのままエクスポート先をエクセルを選んでやってみる、ということですね?アクセス自体に全く詳しくなく、私が入社したときには退職していた者が構築したファイルを使っています。町名と番地のフィールドを同じにするほうが無難ですか。なるほど! /直接エクスポートしようと思ったのですが、すでに作ってあるエクセルファイルにですよね?そうでないとエクスポートできませんよね?それでは、受け皿のエクセルファイルはどのようなものを用意したらいいのでしょうか。よろしくおねがいいたします。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
「テキストファイルウィザード」の途中で,「列の形式」というの があります。ここで全部の列について「文字列」を選んで下さい。 うっかり「標準」を選ぶと,Excelが勝手なことを始めて、質問のよ うにえらいことになります。
お礼
ありがとうございます。そうですよね、はやり普通はそれでいいのですよね?ところが、この方法をしたのですが、郵便番号の頭のゼロはないし、住所の登録も####になってしまい、セルの幅を調節すると2003/6/13のような日付形式になってしまうのです。ところが頭が数字ではないものから始まっているセルは正常に表示されています。最初が数字の場合にどうやら日付のようになってしまっているみたいです。アクセスへの追加登録は社員が誰でもやっているので、番地を全角で入れている場合と半角で入れている場合があり、どちらでも今までは支障がありませんでした。外注に出しているときにはその外注先で使っている宛名出し(?)ソフトがファイルメーカーというものらしく、今まではこんなトラブルがありませんでした。
- nikuq_goo
- ベストアンサー率46% (335/715)
アクセスの出力結果はまだ手元にありますよね? テキストファイルウイザード3/3で文字列指定をしましょう 1.郵便番号 元々の出力データは七桁の文字列であったのに対し、excelで入力する際に誤って数値を指定してしまったのですね?文字列で再変換し、表示形式を***-****にすれば良いだけです。 2.過去のn-m-z入力を一括でn丁目m番地zにしたい これもn-mやらn-m-zが数値や計算式として捕らえられた結果です。まず文字列として変換しましょう。 その後変換を駆使してがんばるとよいでしょう。 ちなみにn-mはn月m日に変換されます^^
お礼
ありがとうございます。もういちど教えて下さい。 1 ウイザードで「文字列指定」をする。← しました。 2 再変換し表示形式を。。 ← 再変換とは、1にて作成したファイル(エクセルを起動させてさきほどのウイザードで作ったテキストを開く)の郵便番号の箇所で6桁になっているところをとりあえず試しに一箇所だけ範囲指定し、表示形式を***-****にしてOKをしてみましたが、セルにはそのまま「***-****」と表示されてしまいます。私の操作がどこかおかしいでしょうか。
- 1
- 2
お礼
こんばんは。遅い時間にどうもありがとうございます。今は在宅しておりますので、明日出社したらやってみます。 とてもためになりました。辛抱強く、ご丁寧な応対、ご回答をどうもありがとうございました!!