• ベストアンサー

数値でも文字列でもない? 【Excel】

シート内の値はCSV形式のものをコピーしたもので、文字列の表示(左詰め)になっています。 因みにセル間の足し算や引き算はできます。 しかし 数値の最大値を計算しようと思い MAX関数にて計算しても”0”の表示 文字列なのかと思い MAXA関数にて計算しても”0”の表示 関数(その他SUMやCOUNTA)での計算ができません。 そこで質問ですが、 この場合のセルの表示形式はどうなっているのでしょうか? また計算する方法を教えて下さい。 お願いします。<(_ _)>

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

  • ベストアンサー
  • fmajin
  • ベストアンサー率61% (75/122)
回答No.5

「表示形式」というのは、そもそも「数値」を任意の方法で、表示するための機能で、「数値」と「文字列」のデータ種を変更するものではない、とお考えください。表示形式の中にある「文字列」というのは、特殊なもので、機能も不十分です。 たとえば表示形式を「文字列」にして、数値を入力すると、それは「文字列」として解釈されます。このあと、表示形式を「数値」などにしても、数値データに変わるわけではありません。文字列→数値データへの変換作業が必要になります。 で、Excel2002を使用されているのでしたら、文字列として認識されている数字セルの左上に、緑色の三角印が表示されていませんか? それらの範囲を選択すると、選択範囲の右上にスマートタグが表示されるはずです。そのボタンをクリックすると、対処法が選べ、「数値に変換する」を選べば、数値に変換できます。 変換したいセル範囲が1列だけならば、[データ]-[区切り位置]コマンドを実行すると簡単です。同コマンドを実行すると、ダイアログが表示されますが、そのまま[OK]ボタンをクリックすれば、数値に変換されます。表示形式が「標準」等になっている必要がありますが、これは大丈夫ですよね。

kissxkiss
質問者

お礼

アドバイスありがとうございます。 補足に対する回答をいただけなんとなく分かりました。 あくまでもなんとなくでして、『Excel2000』に対して不満は残りますけど。。 処置方法もとても参考になりました。 これなら列を増やすことをせずに済みそうですね。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

この現象は再現できます。 A1セルに'1 A1セルに'2 A1セルに'3 と入れます。 ’は見えなくなりますが、左詰めです。 書式-セル-配置を右詰にします。見た目は 数字の1,2,3を入れたように見えます。 =A1+A2は2になります。 =MAX(A1:A3)は0です。 =MAXA(A1:A3)も同じです。 =MAXA("1","2","3")とした時だけ3になります。 セルの書式を文字列にしても=MAX(A1:A3)は0です。 エクセルは演算の時だけ文字数字は数値に直して計算します。 文字列数字と数字の最大の違いは、書式設定の中の3桁ごとのカンマや¥マーク付けなど数字用の書式が効かないことのようです。%も効かない。 CSVファイルを読み込ませる時に注意が必要です。

kissxkiss
質問者

お礼

アドバイスありがとうございます。 >=MAXA("1","2","3")とした時だけ3になります。 これが一番納得できませんね。う~ん。。 『="1"』ダブルコーテーションを使った際にも違いがありそうですね。CSV形式の読み込みには注意します。

回答No.4

はじめまして。 表示形式については、特に変更していない場合は「標準」になっていると思います。 #2であるように、セルの書式設定で確認できると思います。 計算方法も、他の方と同じですが、Excel2002を使用でしたら、ファイル->開くで、CSV形式を指定して開くと、ウィザードが起動して、区切り文字や表示形式の指定をして開く事ができます。

kissxkiss
質問者

お礼

アドバイスありがとうございます。 実は『Excel2000』を使用していまして...。 2002にVersion upすることを検討します...。

kissxkiss
質問者

補足

皆様回答ありがとうございます。 ここで少し補足させて下さい。 MAXA関数でも計算されないのは「文字列」として認識されているということは分かりました。 セルの表示形式は現在「標準」になっています。 質問としては表示形式と内部の認識の違いについてなのですが。 表示形式を「数値」に変えたとしても「文字列」として認識されているというのは分かりますが、数値として表示されるのに計算されないというのが不明な点です。 それと計算方法については皆さんの方法で実施可能ですが、シート数が膨大なのでもう少し簡単に変更できるやり方があれば教えて頂ければ幸いです。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

MAXAの場合、論理値(TRUE=1,FALSE=0)、文字列=0として 計算だと思いました。 数字が文字列になっているなら数字化の必要があります。 空いている列に1を入力、コピーして 「編集」「形式を選択して貼り付け」「乗算」「OK」で 貼り付けたセルの値に1を掛けた結果を返します。 数字の文字列は数字になるのでMAXで計算できるはずです。

kissxkiss
質問者

お礼

アドバイスありがとうございます。 >MAXAの場合、論理値(TRUE=1,FALSE=0)、文字列=0として 計算だと思いました。 単純に文字列の値も計算されるのだと思っていました。 勘違いしてました。 >数字化の必要 方法として面白いと思いました。 マクロでコピーしているので先に『1』を入れてから値を乗算にて代入すればその時点で数値になりそうですね。 ありがとうございました。

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.2

表示形式は「セルの書式設定」で確認できませんか? 強制的に数値に変更するなら(A1)に値が入っているとして(B1)に =A1*1 とすると、数値に変更されると思います。

kissxkiss
質問者

お礼

アドバイスありがとうございます。 文字列を数値として計算する方法として覚えておきます。

回答No.1

どういう形式になっているかは、 そのファイルを見ないとなんともいえないのですが、 なにも考えずにただ計算したい結果だけ求めるなら 仮にC列にその計算したい数値があるとします。 その場合、D列を追加し、数値にして、 「=C1*1」にすれば、数値になります。 (D列を採用する場合は、計算式なので、コピーして ”値だけ貼り付け”をお忘れなく)

kissxkiss
質問者

お礼

アドバイスありがとうございました。 方法として参考にさせて頂きます。

関連するQ&A

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

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

  • Excelで数値が文字列になっています

    Excel2010で「このセルにある数値がテキスト形式か、またはアポストロフィで始まっています」という警告が表示されたりして、計算が出来ません。 打ち直ししたり、「エラーチェックルール」で「文字列形式の数値、、またはアポストロフィで 始まる数値」のチェックを外したりして計算は出来るようになります。 「表示形式を変えてもセルの中の値は変化しません。数値データは数値のまま、文字列データは文字列のままです。」とは本当ですか? 本当ならば、数字の保存形式が文字列データかどうかを確かめる方法はありますか? なお、ISNUMBERという関数ではTRUEと出ます。

  • エクセルの関数について

    エクセルで、合計は、SUM関数を使いますが、数値がゼロのときに、 ゼロを表示しないようにするため、IF関数で、IF(A1=0,"",A1) と表示すると、今度は、その数値を使い足し算をしたとき、 エラーになってしまいます。(ゼロのときの値が""のため) 1.足し算、引き算の結果がゼロのとき、何も表示したくない 2.そのセルをさらに足し算、引き算したときにエラーにならない 方法を教えてください。

  • セルの数式を計算させないで文字列として表示させたいのですが

    例えばB1セルに=sum(A1:A5) と打つとその計算結果が表示されます。 そして僕は、その下のB2セルに、「=sum(A1:A5)」と、文字列として表示させたいのです。 どうしてかと言いますと、B1セルには「=sum(A1:A5)」と打ったんだよ ということを B2セルに表示させておきたいのです。 そうすればそれをプリントして、暇なときに見たりして ああ、このセルには「=sum(A1:A5)」と打ったんだな、とわかり、 いろんな関数を覚えれると思ったからです。 しかし、B2セルにB1セルをコピーしてしまうと、B2セルは=sum(A1:A5)となってしまい、 当たり前ですけど計算結果が表示されてしまい、 「=sum(A1:A5)」を文字列として表示できないのです。 何かうまい方法はないものでしょうか? VBAで出来そうな気はするのですが出来ませんでしょうか?

  • 数値計算と文字列

    JavaScript 数値計算の式と値を表示させたいです。 10+5=15 document.write("10+5"+10+5);というのを関数で表わせないでしょうか? function foo(計算式){ document.write(計算式の文字列+計算結果); } 1+4-15など2つ以上の数値も対応したいです。

  • Excelの数値を文字列にするにはどうしたらいいですか?

    セルの[表示形式]→[ユーザー定義]を利用して #/12 と設定して分数を表示しているセルがあります。 例えば 8/12 という表示になっていても、中身は計算式ですから、数値としては 0.666666・・・ となっている訳です。 これを、表示通りの文字列 8/12 または大文字で 8/12 と変換する方法はありませんか? ぜひ教えてください。 よろしくお願いします。

  • excel 文字列に他セルの数値を引用したい

    excel2003を使用しています。 簡単な収支報告書をつくってます。 A1~A5に値が入っていてA6にsum関数で合計が入っています。 B1~B5に値が入っていてB6にsum関数で合計が入っています。 Aが収入・Bが支出です。 たとえばA6は10000、B6は8000と入ってます。 A10のセルに「10000 - 8000 = 2000」といった感じで表示をしたいのです。 もちろん値は引用したいので、「A6 - B6 = (A6-B6)」という感じだと思います。そして、引く(-)とかイコール(=)は文字列として加えてあげるんですよね。 この時に実際の書き方はどのようにしたらよいのでしょうか?(2000の部分をそこで引用計算出来なければ、見えないところで計算させてC6などの引用でもいいと思いますが) ちなみにA10一つのセルに表示したいのは、レイアウト上セル幅を動かしたり出来ないからです。 文字列にセルの値を引用出来るでしょうか?

  • Excelで数値を文字列にした時

    例えば0001の前に「’」をつけると、0001って文字列になりますよね。 で、A1に「0001」って表示されて、オートフィルを使ってドラッグすると A2以降に0002~の番号がふられます。(今回はA1:A10に0001~0010まで ふっているということで) で、この0001とか0002って文字列のはずですよね。 なのにB1のセルに=A1+A2にするとちゃんと「3」て出てくるんですよ。 でも、COUNT関数でA1:A10を指定すると「0」が表示され、COUNTA関数で A1:A10を指定すると「10」が表示されてるってことはやっぱA1:A10のデータ は文字列ですよね。 他にもフィルタオプションで「>=’0005」(シングルクォーテーションは半角) とかって指定してもちゃんと抽出されたりと、 この「’」をつけるというのは数値を完全に文字列にしているのでしょか? ご存知の方教えてください。

  • 文字を数値として認識させる方法

    列で足し算をしたいのですが、その列に文字が含まれています。 その文字は無視して、足し算をしたいのですが、文字の入っているセルを書式設定で「数値」にしても、VALUE!となって計算できません。 入っている文字を「0」とみなして、残りのセルに入ってる数字の足し算をができれば一番いいのですが、どなたか方法をご教示いただけないでしょうか? よろしくお願いします。

  • Excelにて列の一番下にある数値を表示する関数

    質問させていただきます。 エクセルの関数で「○列に入力されている数値の中で常に一番下にある数値を表示する」関数などありますでしょうか? 例えば B列に数値を入力していき、一番下?最終行?にある数値を自動で表示させたいです。下の例では「80」をとあるセルに表示させたいです。  A  B  C  D  ・・・・・ 1  100 2   99 3  150 4   80 5 6 ・ ・ =MAXという関数は見つけることはできたのですが・・・ =MAXの関数では、最大値しか表示できないので・・・ 色々と調べてみたのですが、調べ方が悪いのか探し出せませんでした。 お手数ですがよろしくお願いします。

専門家に質問してみよう