Excel97です。
電話番号のデータからハイフンを取りたいので
置換で検索する文字列に「-」、置換後の文字列に
何も入れないで置換を押したら頭1ケタの0(ゼロ)まで
消えてしまいました。書式設定は文字列にしました。
ハイフンを消す方法は他にもあるとは思いますが、
どうして上記のような現象になってしまうのか
知りたいです。お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

こんにちは。

maruru01です。
おそらく、"-"を""(空の文字列)に置換後、いったん数値として認識しているからではないでしょうか。書式設定が標準のセルに、「0123」と入力すると、「123」と表示されるのと同じで、最初に先頭の「0」を取った状態にしてからセルに表示するので、いくらセルの書式を文字列にしてもダメなんじゃないでしょうか。
私の憶測ですが。
ちなみに、"-"をとったものを別のセルに書くには、次のような面倒な方法があります。
A1に「03-1111-2222」と入力してあったとして、B1に

  =REPLACE(REPLACE(A1,FIND("-",A1,1),1,""),FIND("-",REPLACE(A1,FIND("-",A1,1),1,""),1),1,"")

と入れれば、B2に「0311112222」と表示されます。
多分これより簡単な方法を他の回答者が教えてくれると思いますので、あくまで参考程度に。
では。
    • good
    • 0
この回答へのお礼

早々に回答をいただいたのにお礼遅くなってすみません。
ありがとうございました。
それにしてもなんで0消えちゃうんでしょうね。
maruru01さんが例えに出してらした、「0123」も文字列にすれば
問題なくゼロも表示されますよね。それと同じなら
消えるのはおかしくないですか?

お礼日時:2001/10/28 13:14

こんにちは



 以下のページがご参考になるのでは?

【エクセル技道場】-関数-セル内のスペースを削除
http://www2.odn.ne.jp/excel/waza/function.html#S …

参考URL:http://www2.odn.ne.jp/excel/waza/function.html#S …
    • good
    • 0
この回答へのお礼

ありがとうございました。
早速ブックマークに登録しました。
しかしやはりここでも置換の方法が書いてありましたね。
実は会社でそんなにExcelとかに詳しくない人に
教えるにはこの方法が一番だと思ったのですが
関数を使わないとできないというのは残念ですね。

お礼日時:2001/10/28 13:22

間違っていたらごめんなさい。

私のエクセルの経験から、
エクセルのセルは、数字の連なりの中に「-」が入った
データを入力すると、全体を文字と解するのではないで
しょうか。
類似して、数字の連なりの中に「英字」が入ったデータが
入力されても、文字と解するのではないでしょうか。
そしてセルの左詰で表示されます。
(例)1123a12
したがって、置換により、データの中に「-」がなくなると
数字データと解釈され、先頭の「0」は省かれ、右詰に
表示される。そこで
例えば、A列に電話番号が入っているとする。(10行までとする。)
対策としては,
(1)B列に空白列を挿入する。
(2)ツール-マクロ-VBEをクリックし、
VBEの画面を出し、該当シートをクリックし、
  左上でWorksheet、右上でActivateをクリックして選択する。
  (1)と(5)が出るから、その間に(2)、(3)、(4)を打ち込んで
  下さい。
  Private Sub Worksheet_Activate()           (1)
  For i=1 to 10        (2)
Cells(i,2)="'" & Cells(i,1)  (3)
Next i             (4)
End Sub             (5) 
内容は、A列の先頭に「’」(シングルクオーテイション)をつけ、B列にセットするプログラムを作っている。
(3)VBE画面で、「実行」(横三角マークをクリック)する。
 するとB列の各データの先頭に「’」がつく。
(4)B列について、普通の置換(「-」から空)を行う。
上記(2)のVBのところが、操作か関数で出来れば良いが小生は判らず、ごめんなさい。誰か教えてください。
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2001/10/28 13:16

こんばんわyuko6さん、xruzです。


A1に電話番号があった場合、A2に=SUBSTITUTE(A1,"-","")と入れればできるはずですが。。。
できない場合はA2をセルの書式で「文字列」にしてみてください。
SUBSTITUTE関数は変換値を文字列として返すので0が消えない(はず?)。

がんばってくださいね。
    • good
    • 0
この回答へのお礼

お礼遅くなってすみません。
この方法は簡単そうですね。
それにしても何で消えちゃうんでしょう。
納得がいきません。

お礼日時:2001/10/28 13:15

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Q文字列一番右がハイフンのものだけハイフン削除したい

Excel2003を使用しています。以下のリストがあるとします。

01-100-10
01-100-1
01-100-11
01-100-11-
01-100-11-
01-100-11-
01-100-11-
01-100-11
01-100-11
01-100-11
01-100-1
01-100-12-
01-100-1-
01-100-13
01-100-13

このような文字列がずらーっと並んでいまして、その中で文字列一番右のハイフンを削除したいのです。一番右がハイフンでないものはそのままです。

ハイフンを削除するのは置換で出来ますが、それだと真ん中のハイフンも消えてしまいます。

Excelの関数はあまり得意でないので、いろいろ考えたのですがよくわかりませんでした。ご存知の方、ご教授願えないでしょうか。よろしくお願いいたします。

Aベストアンサー

一番右が必ずハイフン(-)なら、
=IF(RIGHT(A1,1)="-",LEFT(A1,LEN(A1)-1),A1)
でしょうか。

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Qエクセル97・ワード97・アウトルック97が入ったCD-ROMを小屋から発見しました。何につかえるでしょうか?

小屋の中を整理していたら7年前に買った
エクセル97・ワード97・アウトルック97が入った一枚のCD-ROMを発見しました。
(オフィス○○○○とはどこにも書いてありません)
現在持っている自作パソコンでOEM版のXPホームはあるんですが
エクセルなど高いので買っていませんでしたので
これを気に自作パソコンにインストールしたいと思っています。
そこで質問なんですが。
(1)これはエクセル2003とかにアップグレードすることができるのでし ょうか?
(2)XPでも使えるのでしょうか?
(3)機能的に97は使えるのでしょうか?
(4)その他 何か教えてください

回答お願いします。

Aベストアンサー

追伸です。

http://www.microsoft.com/japan/office/system/upgrade.mspx#EAAA
97はぎりぎりアップグレード版の対象になっているようです。

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

Qエクセルで -(ハイフン)だけのセルを置換したいのですが、、、

エクセル2000です。
-だけのセルと1-2や、A-Bなど、数字や文字が混在している表があります。
その中の、-(ハイフン)だけのセルを置換したいのですが、方法はありますでしょうか?
わかる方がいましたら教えてください。
よろしくお願いします。

Aベストアンサー

私もやってみたのですが・・・

置換するボックスの中にある、
「完全に同一なセルだけを検索する」
のチェックボックスにチェックを入れて、検索する文字列を「-」にしたら、「-」だけのセルが引っかかりましたよぉ~

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

Qあるケタの数字を別の文字列に変更するには?

下記の番号の3500 もしくは 4500 の番号を **** にして表示をしたい
ただし、3500 4500は 何の数字になるかはわかりません。
要するに、この場所に来る数字を****に変更したいという事です。
場所とは、左から数字で数えて、12ケタ、13ケタ、14ケタ、15ケタ目です。

12-1234-12345-4500-1
12-1234-12345-5500-1

【エクセルバージョン】
2002

Aベストアンサー

桁数が決まってるならREPLACE関数で左から15文字目から4文字を"****"に置き換える
=REPLACE(A1,15,4,"****")

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

Qエクセル 英数字の後のハイフンの置換

エクセルの表でA列に

「〇○センター10ーA」
「株式会社OkーWaveオーケー1号店」

「〇○センター10-A」
「株式会社Ok-Waveオーケー1号店」

のように、英数字の間にある「ー」のみ「-」のハイフンに置換するには、どうしたら良いでしょうか?

何万件とデータがあるので関数などがあれば教えていただきたいです。

Aベストアンサー

この手の地道な作業こそマクロの出番です。
この機会に手を出してみては?

Sub Sample()
  '数字の置換
  Call fReplace("0", "9")
  '英大文字の置換
  Call fReplace("A", "Z") 
  '英小文字の置換
  Call fReplace("a", "z")
End Sub
Function fReplace(sStart, sEnd)
  For i = Asc(sStart) To Asc(sEnd)
    Columns("A:A").Replace What:=Chr(i) & "ー", Replacement:=Chr(i) & "-"
  Next i
End Function


人気Q&Aランキング

おすすめ情報