EXCEL2003について質問です。
似た類の質問は結構みるのですが、根本的な原因がわからないので
わかる方がいたらエクセルの仕組みを教えてください。

頭に0が入った記号を含む数字から任意の記号を一括で抜こうとしたときに、文字列設定なのに頭の0が抜けてしまう原因です。

例えば
(1)新規のシートでまずは0120-111と入力します。
ハイフンを手動で消すと、数字として扱われて120111になります。
これはわかります。
(2)次に、初めにセルの書式を「文字列設定」にしてから同様のことをすると、0120111となって文字列に扱いになりました。
これもわかります。
(3)今度は(2)でハイフンを手動ではなく「置換」で取ると結果は120111と
0が取れているにも関わらずセルの書式は文字列のままです。

なぜ(3)で勝手に0が外れてしまうんでしょうか?
桁数もバラバラ、頭が0でない、記号がない場合もある数字のリストの中で一個一個手動ではなく範囲指定したセルを一括で変更する方法って
ないんですかね?

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

A 回答 (4件)

これはExcel-VBAでの変数の扱いを分かっていると、理解できる事柄


なんですが・・・。

Excelのセルデータは、あくまで「オブジェクト」として持っており
これを表示するときに「どう表示するか」を「セルの書式設定」で
決定します。逆に言えば、セルの書式設定はデータの内容に対して
影響を及ぼさないんですね。

で、文字列で書式設定されたセルに左ゼロデータを書き込むと、その
時点では「文字列」として扱われますが、何かを処理しようとした
途端、「オブジェクト」として取り込まれて処理が行われます。
「オブジェクト」として取り込まれると、数字だけのデータは数字と
して処理が始まりますので、前ゼロが消えてしまうんです。

オブジェクト内で前ゼロを残したい場合は、制御文字"'"を使うしか
ありません(アポストロフィ"'"がExcelで時々顔を出すのは、Lotus
1-2-3互換機能を残している為だけじゃないんです)。前ゼロに関して
は、Excelの困った動きの一つなんですが、「仕様です」と言わざるを
得ないのです。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
的確に知りたいことを答えていただいて大いに参考になりました。
そうですか、エクセルの仕様なんですね、
Excel-VBAはあまり詳しくないですが「何かを処理しようとした途端」
というのが今回の「置換」にあたるんですね。
他のよくわからなかったエクセルでおこる現象でも
この原因が影響してそうな気がしました。

お礼日時:2009/06/09 08:29

Microsoftが明確に仕様といってるみたいですね。


http://support.microsoft.com/kb/404387/ja


上記を元に以下の手順は如何でしょうか。
1.置換用シート(仮にSheet2とする)を用意
2.Sheet2のA1セルに置換元シート(仮にSheet1とする)のA1セルの文字置換を行うセル式を設定
 例: =SUBSTITUTE(Sheet1!A1,"-","")
3.Sheet2のA1セルをコピーし、Sheet2の任意のセル範囲を選択し貼り付け
4.それをそのままコピー
5.Sheet1のA1セルで右クリック「形式を選択して貼り付け」
6.「値」を選択し「OK」

上記手順で
置換元の全てのセルが置換されるかと思います。

参考URL:http://support.microsoft.com/kb/404387/ja
    • good
    • 1
この回答へのお礼

なるほど、SUBSTITUTEを使う簡単な方法があったんですね。
電話番号から-を抜きたかったんですけど
これで一個一個手動で作業しなくて良くなりました。
回答番号3の原因と合わせて完全に解決しました。
大変助かりました。
ありがとうございました。

お礼日時:2009/06/09 08:44

書式は文字列でもデータが数値になるようですね。



既存データの前に ' を入力して置換すれば文字列として残るようです
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2009/06/09 08:20

本当ですね。

試してみるとご指摘の通りでした。勝手に数字と判断するのですかね。

一つの方法は(ご存知と思いますが)
'0120-0120 と入力する方法です。これで文字列として扱えて
=left(セル,1) も "0"になります。 置換でも0は取れません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2009/06/09 08:19

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q歯を削るときなんで痛く感じるのですか? 歯を削るだけなら痛くないのに

歯を削るときなんで痛く感じるのですか?
歯を削るだけなら痛くないのに

Aベストアンサー

歯は基本的に硬組織と呼ばれる硬い結晶で出来ています。一番表面はエナメル質と呼ばれ この硬い結晶成分のみでできています。この部分は削っても痛みは全くありません。
2層目は象牙質(dentin)と呼ばれやや硬い組織で出来ています。そして歯の中央・最深部は歯髄・いわゆる神経と呼ばれる軟組織(普通の神経・血管組織)となっています。
この2層目の象牙質には 歯髄から細い繊維が入り込んでいてエナメル質直下まで 神経組織が伸びています。従って 歯を削る時にこの象牙質を削ると いっしょに神経組織まで削ってしまう事になり 強い痛みを発する事になるんです。普通 象牙質だけを削るよりも、この神経繊維の末端・つまりエナメル質と象牙質の境目を削る時の方がはるかに強く痛みを感じますねぇ~ 痛みを感じない部分から突然痛みを感じる部分に入った瞬間に急激な痛み・あの独特の痛みがあるわけです。
もちろん 歯を削る時の痛みは、神経だけの問題ではありません。タービンと呼ばれる機器・ドリルによって削る事が多いですが、この切削具の振動・回転する摩擦熱等が歯の知覚組織に伝わる事も痛みの原因となります。最近では、タービンを使わないレーザー光線による切削も多くなり、削る時の痛みは大幅に軽減されています。また、機器の振動を抑える工夫もなされており、機器の振動と似た振動を他の箇所に与える事により、痛みの閾値を上げてしまう(わかりやすく言うと 振動で神経を麻痺させて痛みを感じにくくする事)方法も行われています。

さて、通常の治療で歯を削る時は、神経のある歯(虫歯が小さい場合)や 神経を取る処置の場合、麻酔を使うことがほとんどでしょう。
えまく麻酔が効けば 痛みは全く感じなくなります。ただ、歯科の麻酔は歯の神経を麻痺させねばなりません。歯の神経の出口は 歯の根の先端・つまり骨の中にあるんです。
これを麻酔することはなかなかに難しい事なんです。普通 顎の骨は硬く厚い骨が多く なかなか麻酔薬が内部に浸潤してくれません。かなりの力を入れて圧力をかけないと 硬い骨を通り越してくれませんので、歯科の麻酔はそれだけでも痛いのです(^o^;...この時 骨の厚さによって麻酔が効く効かないが別れますね~
実は同じように 歯のエナメル質の厚さによっても削る時の痛みに差があるのです。例えば同じ歯でも、切端部・先っぽの方はエナメル質が厚いので少々削っても痛みません。逆に根元に近い部分はエナメル質が薄く 象牙質がすぐ直下にあるために痛みが感じやすいと言えます。
また、年齢によっても痛み方に大きな差があります。歯は生えたばかりはまだ幼弱で 歯髄が大きく象牙質が薄いのです。それだけ削る時に神経に近くなってしまい痛みが出やすいですねぇ~
逆に生えてから何十年も経った歯は・・・・つまり老人の歯は 多少削っても痛みません。これは長い間に神経が退化したり象牙質が石灰化して硬化したために 痛みを感じる神経が退化して・あるいは無くなってしまったからです。麻酔を使わずにどんなに削っても 全く痛まないことも しばしばあります。

いずけにしても痛みの感じ方には大きな個人差があります。痛いと感じたなら 左手を挙げて・・・・・ヽ(;^^)/ まぁ、歯科医師にお伝え下さい。

歯は基本的に硬組織と呼ばれる硬い結晶で出来ています。一番表面はエナメル質と呼ばれ この硬い結晶成分のみでできています。この部分は削っても痛みは全くありません。
2層目は象牙質(dentin)と呼ばれやや硬い組織で出来ています。そして歯の中央・最深部は歯髄・いわゆる神経と呼ばれる軟組織(普通の神経・血管組織)となっています。
この2層目の象牙質には 歯髄から細い繊維が入り込んでいてエナメル質直下まで 神経組織が伸びています。従って 歯を削る時にこの象牙質を削ると いっしょに神経組織...続きを読む

QExcelのセルに数字と記号が混在している中から数字だけ選択してその数字を他のセルに記載する

Excelのセル(A)に数字と記号が混在していて、セル(A)の中から記号を除いて数字だけを選択してその数字をセル(B)に記載することはできるのでしょうか。ご教授頂ければ幸いです。「教えて!」よろしくお願いいたします。

Aベストアンサー

No.3です。
投稿を確認していると言葉足らずに気づきました。

>まずAlt+F11キー → メニュー → 挿入 → VBE画面のカーソルが点滅しているところに・・・
では判りにくいと思います。
>Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面の・・・
(「標準モジュール」を選択する部分が抜けていました)

どうも失礼しました。m(_ _)m

Q歯を削る(レーザー、カリソルブ、水流、ドリル)比較について

【質問・要点】
昨日、インレーが取れました。そこで、少し削って新しいインレーを入れると思うのですが、以下4つを考えたのですが、いったい、どれが最も良い治療法なのでしょうか?

レーザー
カリソルブ
水流で削る
ドリルで削る

【一応私が考える判断基準】
最も歯を削る体積が小さい治療法、
術後、2次齲蝕が最も少ない治療法
最も痛くない治療法

他に、もっと良い治療法やアドバイスがあれば、ご教示、何卒、宜しくお願い致します。

Aベストアンサー

歯科医です。
>レーザー
>カリソルブ
>水流で削る
>ドリルで削る
沢山質問されていますが
ここでまとめて。
まず、レーザーでインレーが入れられるほど削るのはできないです。削除量が圧倒的にすくなくて、綺麗な形態に削ることができないから。
カリソルブも同様です。
水流で削るのは歯に対して現在そういう器具はありません。
ドリルで削る・・・・ドリルというのは恐らくエアタービンもしくはエンジンのどちらかをさしておられる
のでしょうか。タービンで削ることが一番でしょうね。

インレーがはずれたのではなく
新しい虫歯であるのなら削除量のことを考える余地があります。しかし
何分にもすでにインレーの体積分は歯が失われているので
削除量を少なくする事に意義は見出せません。
さらに虫歯になっていなければ大抵の場合はほとんど削らなくてもよいでしょう。
取れたところがさらに虫歯になっているのであれば
削除量云々言う前に
虫歯をとりさることが肝要です。二次カリエスにならないためにはこれがもっとも大切なことです。
痛くない治療法・・・は麻酔を的確に使用して治療することでしょう。

それから
インレーはわりと易しい技工物ですので
一般的なレベルの技工士さんであれば
十分な適合の良いきれいなインレーを作りますよ。

異種金属が口腔内にあることの是非は討論の余地があるのですが
一般的に言って
接しているところでなければ
大きな問題はおきないです。
接するところではそこに小さな電池ができるようなものなので
電流が流れます。

それよりなにより
一日も早く治療を受けてください。
放置しておくことに良い点は一つもありません。

歯科医です。
>レーザー
>カリソルブ
>水流で削る
>ドリルで削る
沢山質問されていますが
ここでまとめて。
まず、レーザーでインレーが入れられるほど削るのはできないです。削除量が圧倒的にすくなくて、綺麗な形態に削ることができないから。
カリソルブも同様です。
水流で削るのは歯に対して現在そういう器具はありません。
ドリルで削る・・・・ドリルというのは恐らくエアタービンもしくはエンジンのどちらかをさしておられる
のでしょうか。タービンで削ることが一番でしょうね。

イン...続きを読む

Qセルに最初からある文字列を表示させておいて、そのセルを選択したら、その文字列の後から3桁数字を入力できるようにしたい

タイトルが長くてすみませんm(_ _)m
エクセル(97)に関しての質問です。

例えば、セルの中に最初から「15-G」という文字列を
表示させておいて、(ダブルクリックして編集という
形じゃなくて)そのセルを選択しただけで、
その文字列の後から3桁の数字を入力できるように
したいのですがいい方法はないでしょうか?

他にやってみた方法で、ユーザー定義(私が考えた定義→「"15-G"@」)でセルに3桁の数字(例えば567)を入力しますと、「15-G567」というように表示させる事が出来たのですが、何も入力されてない時は当たり前ですが空白のままです。
出来れば、最初から「セルの中の始めに15-Gという文字列を」表示させておきたいのですが…

Aベストアンサー

diashun です。
諦めずに挑戦するお気持ち、敬意を払います。
さて、エラー箇所を特定するためにデバッグモードでVBAを動かしてみましょう。
1.「Sheet1」のVBE編集画面を開いてください。
「Private Sub CommandButton1_Click()」の行とプロジェクトツリーの境界で右クリックしてください。
これでその境界部分に茶色の●が表示され、「Private Sub CommandButton1_Click()」の行も茶色の帯がつきましたか?
これは「ブレークポイント」といい、プログラムの実行を任意に中断する場合に指定します。
2.Excelの「Sheet1」に戻り、「CommandButton1」をクリックします。(この時、コントロールツールボックスのデザインモードを終了しておいてください)
3.VBEの[Sheet1」のブレークポイントのところで黄色い帯が表示されてプログラムの実行が中断されていますか?
ここまで「OK」でしょうか?
4.次の行からプログラムの実行を継続させます。
「F8」キーを一回押してください。
黄色い帯が次行(Set_String1)へ移動しましたか?
さらに「F8」キーを押すと「Module1」の「Set_String1」プロシージャVBE画面へ遷移するはずですが、ここまで「OK」ですか?
5.「F8」キーを一回ずつ押して一行ずつ実行してください。
エラー箇所があれば何らかのエラーダイアログとメッセージが表示されるはずです。その時「終了する」と「デバッグする」のボタンも表示されるので「デバッグする」のボタンを押すと、エラー行の場所が黄色い帯で表示されますので、その行内容とエラー表示メッセージの文言をお知らせ下さい。

>「Module1」の所が紺色に反転しています・・・は関係ないと思います。

ただ念のため「ThisWorbook」「Sheet1」「Module1」のVBEが下記の通り間違いないか、再確認もしておいてください。
●「ThisWorbook」のコード
Option Explicit

Private Sub Workbook_Open()
Dim strDefAry() As String
Dim i As Integer
ReDim strDefAry(0 To 9) As String '仮に10種類の文字列(ランダムな文字)を登録します。

strDefAry(0) = "15-G"
strDefAry(1) = "11-A"
strDefAry(2) = "15-V"
strDefAry(3) = "10-H"
strDefAry(4) = "11-R"
strDefAry(5) = "13-Y"
strDefAry(6) = "19-X"
strDefAry(7) = "00-D"
strDefAry(8) = "01-W"
strDefAry(9) = "15-K"

For i = 0 To 9
Sheet1.ListBox1.AddItem strDefAry(i)
Next i

Sheet1.ListBox1.Visible = True
ThisWorkbook.Sheets(1).Activate

End Sub

●「Sheet1」のコード
Option Explicit

Private Sub CommandButton1_Click()
Set_String1
End Sub

●「Module1」のコード
Option Explicit

Public Sub Set_String1()
Dim strCell As String, lngRowNum As Long, strDefStr As String
Dim i As Integer

strCell = InputBox("入力する列を「A,B,C,・・・」と入力して下さい。", "列入力")
strDefStr = Sheets(1).ListBox1.Text
lngRowNum = ActiveCell.Row
Call Set_String2(strCell, strDefStr, lngRowNum)
End Sub

Public Sub Set_String2(strCell As String, strDefStr As String, lngRowNum As Long)
Dim i As Integer

Range(Cells(lngRowNum, strCell), Cells(lngRowNum, strCell)).Activate
Range(Cells(lngRowNum, strCell), Cells(lngRowNum, strCell)) = strDefStr
End Sub

あと、Excelの「Sheet1」に「CommandButton1」と「ListBox1」は貼り付けられていますね?
以上、またご連絡をお待ちします。
でも、お忙しいならいつでもいいですよ。
気長にお付き合いしますので、(^_^)

diashun です。
諦めずに挑戦するお気持ち、敬意を払います。
さて、エラー箇所を特定するためにデバッグモードでVBAを動かしてみましょう。
1.「Sheet1」のVBE編集画面を開いてください。
「Private Sub CommandButton1_Click()」の行とプロジェクトツリーの境界で右クリックしてください。
これでその境界部分に茶色の●が表示され、「Private Sub CommandButton1_Click()」の行も茶色の帯がつきましたか?
これは「ブレークポイント」といい、プログラムの実行を任意に中断する場合に指定します。
2....続きを読む

Q勉強の為に睡眠削るのは確かにダメですが 勉強スケジュール上、このままでは間に合わないという状況では、

勉強の為に睡眠削るのは確かにダメですが
勉強スケジュール上、このままでは間に合わないという状況では、削るのは仕方なくないですか?エナジードリンクなり、使って

Aベストアンサー

まあその前に 遊びの時間は削るはな
その上で足りなければ トイレの時間中や バスや電車の移動中 そして場合によると食事中なども勉強する。
それでも足りない時は 睡眠5時間とかになるかな。

コーヒー 音楽 エナジードリンク ハーブ 辛い食べ物 いろいろ使いながら。
最低必要な睡眠時間ってのは人によっても違うが 短期的なら4時間睡眠でも案外行けると思う。
ただ 何というか 考え方が狭くなるように思う。
ヒラメキが出ないのだな。

別に問題はないと思うのだ。
こういう経験も大切だし 焦りさえしなければ十分得るものはある。
脳にも緩急は必要だし 時にフルスロットルも良い・・が あまり長くやると痛む。

よほど深く眠らないと4時間で2週間以上続けるのは難しかった。
そして6時間程度寝ないと 自律神経系は慣れでなんとかなるみたいなんだが どうもホルモンバランスが悪くなる感じ。
そこは注意すべきかと。

Q数字を文字列に変えて頭に0を足せますか?

データベースをエクセルに変換して、編集していたのですが、うっかり文字列にするのを忘れてしまい、電話番号の頭の0がすべて消えてしまいました。
09011111111→901111111 のような感じです。
すでにかなりいじってしまった為、一からやり直すこともできず、データベースは4000件程になっています。
電話番号の行をいまさら文字列に変えても頭の0は復活しないのですが、
これらの行を指定して、すべてのセルの数字の頭に「0」を追加する事はできますでしょうか。

Aベストアンサー

数字のままでいいなら
「セルの書式設定」「表示形式」タブ「ユーザー定義」で
00000000000
と入力

文字にするなら
=TEXT(A1,"00000000000")
としてコピー、形式を選択して貼り付け、値
貼り付けるセルは表示形式を文字列にしておいてください。

Q固定された木材を削る道具は?

部屋のドアを、内開きから外開きに変える計画を立てています。上、左右のドア枠は内側と外側のサイズが同じなのですが、下側のドア枠は削る必要があります。ドアと枠は共に木製です。
そこで質問なのですが、ドア枠のように固定された木材を削る道具は、どういったものが最適でしょうか?
回答、よろしくお願いします。

Aベストアンサー

こんにちは。
どれくらい削るかにもよりますが。

ごくわずかであれば、電動〈仕上げ)サンダーっていう、電動紙やすりみたいな機械があります。
レンタルしてるかもしれないですね。

カンナを使うなら、角は(何種類かの目の粗さの)木工ヤスリを使って、仕上げは紙やすりで。

ところで、ドアの方を削るわけにはいかないんでしょうか?
大工さんが間違えてドア枠を作って取り付けてしまった時に、ドア下部を削ってましたよ。(^^;
問題がなければ、ドアを削った方が得策かと思いますが。

Qexcel2007 セルの中の数字の頭に0を

excel2007でセルに入力された

2124542

などの数字の頭に0を加える作業をしたいと思っています。

たくさんのセルがあるのでそれを全部ひとつひとつやっていたら
大変だと思いましたので
いい方法がないか知ってる方がいましたらお願いします。

Aベストアンサー

桁数が決まっている場合
セルの書式設定の表示形式をユーザー設定で
00000000
とする。

桁数が決まっていない場合(桁数に関係なく数値の頭に0をひとつだけ表示したい場合)
セルの書式設定の表示形式をユーザー設定で
"0"0
とする。

文字列として頭に0をつける場合
となりのセルに
="0"&A1
のようにして、そのセルをコピーし、形式を選択して貼り付けで値として貼り付ける。

Q歯を削る時痛かったを英語で?

教えて頂きたいのですが、歯医者さんで虫歯を削る時に痛かったと英語で言いたいのですが
I was pain when I shave bat tooh.
であってますか?
削るというのもshaveでいいのかわからないのですが、いい単語があれば教えて頂きたいです!

Aベストアンサー

こんにちは。4/11のご質問ではお礼のお返事を有難うございまして。

ご質問:
<I was pain when I shave bat tooh.であってますか?>

以下の点で訂正を要します。

1.I=painではないのでbe動詞はここでは不適です。

2.動詞はhadなどを使って、
I had a pain「痛みがあった」→「痛かった」
とするのが自然です。

3.shaveはどちらかというと「削ぎ落とす」「削ぐ」の意味に近くなります。歯医者でいう「削る」とは、「穴をあけること」ですから、ここはdrillが適切です。

4.I shave:「私が削る」のではないので、ここでは使役動詞haveなどを使って「削ってもらう」にします。
例:
I have my tooth drilled.
「私の歯を、削らせる」→「削ってもらう」

ここでdrilledと過去分詞になっているのは、目的語Oであるmy toothと、補語Cであるdrilledの関係が、受動の関係になるからです。
例:
my tooth is drilled「歯が、削られる」

5.虫歯はbad toothと綴りを正します。

6.以上を踏まえて原文に忠実な訂正例は
I had a pain when I had my tooth drilled by dentist.
「歯医者に歯を削ってもらった時、痛かった」
となります。

7.他にも以下のような表現もあります。
I felt some pain when I had my tooth drilled.
「歯医者に歯を削ってもらった時、少し痛かった」

以上ご参考までに。

こんにちは。4/11のご質問ではお礼のお返事を有難うございまして。

ご質問:
<I was pain when I shave bat tooh.であってますか?>

以下の点で訂正を要します。

1.I=painではないのでbe動詞はここでは不適です。

2.動詞はhadなどを使って、
I had a pain「痛みがあった」→「痛かった」
とするのが自然です。

3.shaveはどちらかというと「削ぎ落とす」「削ぐ」の意味に近くなります。歯医者でいう「削る」とは、「穴をあけること」ですから、ここはdrillが適切です。

4.I shave...続きを読む

Qエクセル 文字列セルに条件付書式をセル参照したい

いつもお世話になっております
質問の表題が変になりましたが、よろしくご教示お願いします。

A1セルに文字列「’00000」があります。
B1セルに数値に変換した「00000」があります。

条件付書式で、B1セルを数値の条件で1~19999 は赤、20000~29999は黄色とかを設定しています。

A1セルは、数値でないので条件付ができませんが、B1の書式、セル色だけ参照できませんか?
ほかにA1のセルに文字列があっても色指定できる
 
ネットワーク共有のファイルで、複数人で使用し、数値を打つと色が出るようにしております。

よろしくお願いします。

Aベストアンサー

>A1セルは、数値でないので条件付ができませんが
A1セルの (文字列指定数値)を  シリアル数値 で判断させれば、B1は不要

下記で解決出来るのでは?

A1のセルの条件付き書式 
「数式が」
=AND((A1)*1>0,(A1)*1<20000)


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング