• ベストアンサー
  • すぐに回答を!

Excelの「’」とセルの書式設定(文字列)の違い

こんばんわ。 Excelの文字列表示について、教えてください。 数字を入力する際に、先頭に「'」を入力すると 文字列として入力することが出来ますが、 数字が入っているセルのセルの書式設定から 「文字列」に表示形式を変更することとの 違いはなんなんでしょうか? やり方は違うけれど、結果は同じということでしょうか? 「'」を入力すると、データが文字そのものに変わり、 表示形式を変更すると、見た目だけ(左揃えになるなど) 文字列のように見えるだけで、データは 数字のままということなんでしょうか?? また、文字列として入力された数字を Value関数で数値に変換してしまうのと セルの書式設定で「数値」に変更するというものも 同じように、違いが良く分かりません。。。 もう、頭の中が「??」だらけです。 違いを教えていただけたら・・・と思います。 どうぞよろしくお願いいたします<m(__)m>

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数1498
  • ありがとう数3

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

  • ベストアンサー
  • 回答No.2

No.1さんのに補足させて頂きます。 先に文字列に設定してから、10や20を入力した場合ですと文字列として扱われ、計算されません。TYPE()しても2が返されます。 Excelでは、表示形式を「後」から変更した場合、完全には変わらない場合があります。 「'」ですが、これは数値を文字にすると言うより、入力した内容のままで表示させたい場合に使用すると考えたらよいと思います。 例えば、「1/1」と入力すると「1月1日」となり日付に変換されます。「1/1」と表示させたければ、表示形式で「m/d」等としなければなりませんが、「'1/1」と入力すれば、表示形式を一々変更する必要がありません。 Excelに余計な解釈をさせないためとも言えるかと思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

>先に文字列に設定してから、10や20を入力した場合ですと文字列として扱われ、計算されません。 !!本当ですね!!ビックリです。 入力前に設定をしていれば、 'を付けた時と同じになりますね・・・ う~ん・・・Excelは不思議です(+_+) でも、すごくわかりやすくって なんとなくわかっていたような気がします。 本当にありがとうございました! 勉強になりました<m(__)m> また何かありましたら、色々教えてくださいね!

関連するQ&A

  • セルの書式が標準なのに文字列にできるのはなぜ?

    会社のシステムで吐き出したデータですが セルの書式設定が標準なのに文字列となっています。 マクロを利用して、あるセルの値を別セルへ転記すると、 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示になってしまいます。 会社のシステムが吐き出したエクセルはセルの書式が標準なのに 中の数字が文字列でいられるのが疑問です。 会社のシステムの吐き出したデータは Microsoft Excel 2.1ワークシートで 全てのセルの書式設定は「標準」です。 で例えば 12345678901234 は 12345678901234 と表示されていて 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) 0101という値のセルでも 表示は0101ですが 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) それらのセルの値をマクロとかで別セルに転記すると 転記先では1.23457E+13 と表示されてしまいます。 (0101は101になります。) まっさらなエクセルに自分で手入力すると ・セルの書式設定が標準だと 12345678901234 ↓ 1.23457E+13になります。 ・セルの書式設定が数値だと 12345678901234 ↓ 12345678901234 ・セルの書式設定が文字列だと 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) なのに会社のシステムの吐き出しデータは セルの書式設定が標準なのにもかかわらず 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) となっています。 手入力で書式設定が標準の状態でセルに12345678901234 と表示させるには先頭に ' をつける方法しか知りませんが ' が無いのに表示されています。 でもこの該当セルをマクロで別セル(書式設定:標準)に転記すると 1.23457E+13 となります。 またシステムが吐き出したエクセルの同じシート内に 以下のマクロで転記すると ↓ Sub 転記() 行 = 2 Do If Cells(行, 6).Value = "" Then Exit Do If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Range("A2") Else Cells(行, 7).Value = Range("A3") End If 行 = 行 + 1 Loop End Sub ↓ このマクロだと A列~F列が書式設定が標準なのに文字列として表示されているのですが 転記先のG列が書式設定が標準であっても 12345678901234 (数値が文字列と保存されています と注釈有) と同じ状態のまま転記できます。 新しいBOOKのシート2に 会社の吐き出しデータをシートコピーした後、 (セルの書式設定:標準だが文字列で表示されている) そのBOOKに登録されているマクロで シート2のセルからシート1のセル(書式設定:標準)に転記すると 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示 となってしまいます。 ちょっと混乱しています。 理屈等教えていただければと思います。お願いします。

  • VBAでセルデータの転記(文字列)

    VBAでセルのデータを下記のように他のセルに持っていく場合、文字として入れてある数字(例えば先頭に0がつくようなもの)は、自動的に数値に変えられて0が消えてしまいます。 また、長いものは指数表示になってしまい、15桁を超えるものは後ろが0になってしまいます。 持っていく先のセルを文字列に設定しておけばいいのでしょうが、持っていく元データが全て文字列ではなく、数値の場合もあります。 元データが数値であれば数値として、文字列であれば文字列として持っていくにはどうすればいいのでしょうか? Sub test() Cells(3, 3).Value = Cells(1, 1).Value End Sub

  • 文字列から数値への変換

    セルの書式設定(表示形式タブ)で文字列を数値に変えるのと、 VALUE関数で文字列を数値に変えるのとでは何か違いがありますか? (excel2000です。)

その他の回答 (2)

  • 回答No.3
  • imogasi
  • ベストアンサー率27% (4595/16449)

エクセルのCell関数にPrefixと言うのがあり、 ’は左詰め、^は中央配置、”は右詰などになっています。ですから本来セルの配置を表す記号ではないか、それが結果として、文字列に設定すると言う書式表示の効果を残していると思う。DOSロータス123はこれを使ってましたが、ロータス123時代からの、互換を考慮したものではないかと睨んでいます(不確か)。 ですからMSエクセルの本来の文字列の書式は、書式-セルー文字列でしょう。 エクセルが文字列の書式状態を持っているかは、エクセルインサイド情報を不知の私には判りません。 コードとしては、文字列(1はJISで49)と計算できる数はどこかで2進数に変換されるはずです。しかしエクセルは、御節介機能があるのでよく外から見えません。数値と言うコード立っていて、計算する直前まで文字列数字で持っているかも知れません。 エクセルインサイド情報が判らないと判りません。 何ごとにも原理追求型の人には苦しいでしょうが、深入りしない方が良いのでは。エクセルのもっと上部構造で勉強することが沢山ありますから。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

>’は左詰め、^は中央配置、”は右詰 知りませんでした・・・! 奥が深いですね。。。 私はロータスのことが全く知らないので、 ピンとこなかったのですが ロータスとの互換の可能性もあるのかもしれないですね。 >深入りしない方が良いのでは。 (^_^;)そうですね・・・。 でも仕事上、人に説明をしなくてはならない場合がありますので どうしても勉強せざるを得ません・・・。 ありがとうございました。

  • 回答No.1
  • nocurry
  • ベストアンサー率38% (27/71)

回答にならないかもしれませんが、簡単に確認してみました。 A B 10 '10 20 '20 と入力し、A列の表示形式を文字列に変更します。 その後、=A1+A2 =B1+B2をそれぞれ計算させると、 A列のほうは、30と数値が返ってきますが、 B列のほうは、0が返ってきます。 これから考えると、文字列と設定しても、EXCELでは数値として計算できるようです。 ちなみに、=VALUE(B1) で得た10という数値も計算できるようになります。 EXCEL2000で確認しましたので、 それ以前のバージョンですと、計算できないのかもしれませんが・・・。 

共感・感謝の気持ちを伝えよう!

質問者からのお礼

早速の回答、ありがとうございました! そうなんです。 表示形式で文字列にしていても、 計算が出来てしまうし、なんのこっちゃ??と思っていました。 一体どういうことなのかさっぱり??です。 お忙しいのに、確認作業をしていただいて 本当にありがとうございました<m(__)m>

関連するQ&A

  • 【Excel】セルの書式設定で標準と文字列の違い

    「セルの書式設定」の「表示形式」での「標準」と「文字列」の違いについてです。 「文字列」は「[文字列]は、数値も文字列として扱います。セルには入力した値がそのまま表示されます」 とあります。 しかし「文字列」に数値を入力するとセルの左上に、グリーンの▼印がでてきて、「数値が文字列として保存されています」というエラー表示がでます。 数値も文字列として扱われるはずですがなぜなのでしょう。いちいち「エラーを無視する」にしなければならないので面倒だなと思いますので、今度は「標準」で入力しようと思いますが、 「標準」は「セルの値に対して一般の書式を適用します(特定の書式を指定しません)」 とのことです。一般の書式、特定の書式が何を指すのか分かりません。 文字列が、数値として扱われない理由と、「標準」「文字列」のそれぞれの特徴を教えてください。

  • Excel、セルの書式設定について

    バージョンは2003を使っています。 セルの書式設定→表示形式→ユーザー定義で 「○○@」と入れると 何も入力しなければそのままですが 何かを入力すると、必ずその入力した文字列の前に○○が表示されますが 数字はできないのでしょうか? 漢字はできたのですが 半角数字を同じようにやったら 「入力した表示形式が正しくありません。 あらかじめ組み込まれている表示形式のいずれかを使用してみてください…」 というエラーになりました。 1000セル以上に数字を入力予定なのですが 1セルに20桁で、前半15桁は同じ羅列です。 15桁のみ入力してコピペしてというやり方でもいいのですが そうすると、1セル1セル入力の際にクリックしないといけないので…。

  • エクセルで数字を文字列として確定する

    エクセルで顧客ID10桁の管理をしたいと思っています。 アルファベットなどではなく、数字だけを使用した10桁の顧客IDで 先頭は必ずゼロが4つ並びます。 入力をする際に数値としての要素は、全く必要ないので 純粋に文字列として扱いたいのですが セルの書式で「文字列」としても セルの左上に緑色の三角が表示され ダブルクリックをすると先頭のゼロが削除されてしまいます。 ものすごく作業に不便さを感じるのですが 普通に「abcdefg」と文字列を入力した場合と 全く同じ扱いとするようにはできないのでしょうか? エクセルに詳しい方教えてください。 ちなみに使用しているエクセルは2010です。

  • エクセルで時間セルをVBで文字列として取り込むには

    エクセルです。 時間セルがあって、エクセル上での表示では 12:30:15 という風に表示するようにセルの書式設定でしているのですが、そのセルを VBで取り出そうとして、 A = Cells( 1,1 ) とかってすると、Aには、0.66656 とかって数字が入ってきてしまいます。 Aは文字列として、DIM A as String とかってしているのですけどね これをちゃんとAに、12:30:15 という形の文字列として入れるのにはどうしたらいいのでしょか

  • エクセル 文字列で入力した数字を数値にする

    エクセルで、文字列の設定で入力した数字は、[セルの書式設定]で、数値として設定しても、文字列のままになります。 (セルの左上に、文字列と分かる緑の三角が付いたままになり、表を作ってもグラフの表示は出来ません。) 数値として数字を入力をした後、[セルの書式設定]で文字列にして、再び[セルの書式設定]で数値にすると、数値にはなります。 (この場合、文字列にしても、セルの左上に緑の三角が付かず、このまま表を作ると数値(小数点以下が0の場合は小数点以下が削除されます。)の扱いとなりグラフの表示が出来ます。) 文字列で入力した数字は、数値にはならないのでしょうか? よろしくお願いいたします。

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

    エクセルのセル書式設定について教えてください。 セルA1に文字列「052」と入力すると、B2に「0 5 2」と表示されるようにするには、 書式設定をどう設定したら良いですか? ちなみに、A1を文字列ではなく数値で設定し、B2をユーザー定義「# # # #」で登録すると、 A1は「52」、B2は「5 2」と表示されてしまいます。 A1を「052」と表示させる為には、文字列として設定しなくてはいけないが、 そうするとB2の値も「052」と表示されてしまいます。 どなたか良い方法を教えてください。

  • エクセル 文字列のセルが###表示になります

    エクセル2000です。 文字列のセルで <SELECT name=show><OPTION selected value=_unselected_カラーを選択して下さい>カラーを選択して下さい</OPTION><OPTION value=カラー:BLACK&BLACK>カラー: BLACK&BLACK</OPTION><OPTION value=カラー:GOLD&GOLD>カラー: GOLD&GOLD</OPTION></SELECT> だと、表示されるのに、 <SELECT name=show><OPTION selected value=_unselected_カラーを選択して下さい>カラーを選択して下さい</OPTION><OPTION value=カラー:BLACK&BLACK>カラー: BLACK&BLACK</OPTION><OPTION value=カラー:GOLD&GOLD>カラー: GOLD&GOLD</OPTION><OPTION value=カラー:CLOME SILVER>カラー: CLOME SILVER</OPTION></SELECT> だと、#########表示になります。 セルの幅を広げても変化ありません。 数式バーにカーソルを置くと(文字を入力する状態にすると)数式バーにもセルにも内容は表示されますが、確定するとセルは###表示に戻ります。(確定後も数式バーには内容が表示されています) セルの書式設定は、どちらも文字列で、配置なども全く同じです。"折り返して表示"や"縮小して表示"なども試しましたが、変わりません。 セルの書式設定で表示形式を色々試してみたところ、サンプル表示で###になるのは、「標準・会計・文字列」でした。その他の表示形式にすると(数値など)にすると正しく表示されます。 表示形式を「数値」にしてもよいのですが、できれば「文字列」で統一しておきたいのですが・・・。 原因はわかりますでしょうか?

  • エクセル2003で数値を文字列に

    Windowsのエクセル2003です。 すでに入力されている文字列13桁以上を 文字列に変換できないでしょうか? 入力していくうちに先頭に0が必要な場合も出てきて 困っています。桁数はまちまちなので書式設定でも出来そうにありません。VALUEやTEXTもうまくいきません。 書式で文字列にしても文字化けしてしまいます。 何かいい方法はございませんか?

  • 【excel】セル内の選択文字列の書式設定

    excelにて、 セル内の選択文字列の書式をいつも手動で決まった形式に変更しています。 具体的にいうと、1個のセル内で 前半は通常の書式設定(10pt&太字)ですが、 後半から8pt&標準の太さという風です。 この途中からの書式変更の作業をマクロ登録で簡略できないものかと思ってやってみたのですが、 1個のセル全体の書式はマクロ登録できるのですが、 選択文字列の登録ができません。 書式によってセルを別個にすれば問題ないのでしょうが、それはできれば避けたくて。。。 拙い説明になってしまいましたが、 どうかお知恵を拝借させていただきたいと存じます。 よろしくお願いいたします。

  • Excelのセルの表示形式で、文字列を入力すれば、特定の文字等を前後に加えることはできるか?

    いつも、ご丁寧な回答を有難うございます。  Excel2000を利用しています。  セルの書式設定、表示形式で、文字列を入力すれば、特定の文字等を前後に加えることはできますか?  例えばあるセルに「●●クリニック」「△△医院」と、文字列を入力すると、  「病院:●●クリニック」「病院:△△医院」のように、どのような文字列が入力されても、無条件で「病院:」が接頭するようにしたいのです。願わくば、  「病院:●●クリニック(通院中)」のように「(通院中)」も接尾させたいです。  入力された文字列による条件判断などは行いません。  このような仕組みが、表示形式でできますでしょうか。(入力するのが数値なら可能です。"病院:"#,###"(通院中)"のように) ご回答よろしくお願いします。

専門家に質問してみよう